:root{--bg:#040912;--bg2:#071321;--panel:#0a1726;--panel2:#0d2033;--line:#17344d;--text:#eef8ff;--muted:#83a0b7;--blue:#20a9ff;--blue2:#6ed2ff;--green:#47f0a0;--red:#ff657b;--shadow:0 26px 80px rgba(0,0,0,.42);--radius:16px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 72% 7%,#0a2945 0,transparent 26%),linear-gradient(180deg,#040912,#06111d 48%,#040910);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh;overflow-x:hidden}.noise{position:fixed;inset:0;pointer-events:none;opacity:.022;z-index:99;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E")}.site-main{min-height:70vh}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,5vw,84px);position:sticky;top:0;z-index:50;background:rgba(4,9,18,.66);backdrop-filter:blur(18px);border-bottom:1px solid rgba(102,201,255,.08);transition:.2s ease}.topbar.is-scrolled{background:rgba(4,9,18,.92);box-shadow:0 12px 35px rgba(0,0,0,.23)}.brand{color:#fff;text-decoration:none;display:flex;gap:12px;align-items:center;font-size:21px;font-weight:900;letter-spacing:-.5px}.brand strong{color:var(--blue)}.brand-small{font-size:16px}.brand-mark{width:28px;height:28px;display:flex;align-items:end;gap:2px}.brand-mark i{display:block;background:linear-gradient(180deg,#eef8ff,var(--blue));width:5px;border-radius:2px 2px 0 0}.brand-mark i:nth-child(1){height:9px}.brand-mark i:nth-child(2){height:17px}.brand-mark i:nth-child(3){height:25px}.brand-mark i:nth-child(4){height:14px}.topnav{display:flex;gap:30px;align-items:center}.topnav>a{color:#9db3c7;text-decoration:none;font-size:13px;font-weight:750}.topnav>a:hover{color:#fff}.nav-toggle{display:none;width:42px;height:42px;border:1px solid #1a3b55;border-radius:10px;background:#081724;padding:10px}.nav-toggle span{display:block;height:2px;background:#bdeaff;margin:4px 0;border-radius:2px}.btn{border-radius:9px;border:1px solid transparent;padding:12px 19px;font-weight:900;letter-spacing:.02em;font-size:12px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:10px;cursor:pointer}.btn-outline{background:transparent;border-color:#244b69;color:#a9c6da}.btn-outline small{font-size:8px;color:#5f7e95}.btn-primary{background:linear-gradient(135deg,#138be4,#22b7ff);color:#fff;box-shadow:0 12px 35px rgba(31,164,255,.26)}.btn-ghost{color:#d8eafa;border-color:#26445f;background:rgba(7,22,36,.6)}.is-disabled{cursor:not-allowed;opacity:.72}.hero{min-height:730px;position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.78fr);gap:55px;align-items:center;padding:70px clamp(24px,7vw,120px) 135px;overflow:hidden;border-bottom:1px solid rgba(102,201,255,.08)}.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(61,154,215,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(61,154,215,.035) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,black,transparent 90%)}.hero-content{position:relative;z-index:5;max-width:760px}.eyebrow{display:flex;align-items:center;gap:10px;color:#72cfff;font-size:11px;font-weight:900;letter-spacing:.18em;margin-bottom:22px}.eyebrow span{width:25px;height:2px;background:var(--blue)}.hero h1{margin:0;font-size:clamp(52px,6vw,92px);line-height:.94;letter-spacing:-.055em;max-width:900px}.hero h1 em{font-style:normal;color:transparent;background:linear-gradient(90deg,#39b9ff,#b5eaff);background-clip:text;-webkit-background-clip:text}.hero p{max-width:690px;color:#9bb2c6;font-size:18px;line-height:1.7;margin:28px 0 32px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.hero-actions .btn{padding:15px 23px}.status-chip{display:inline-flex;align-items:center;gap:9px;margin-top:28px;color:#7894aa;font-size:10px;font-weight:850;letter-spacing:.12em}.pulse{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 6px rgba(69,239,155,.08),0 0 18px rgba(69,239,155,.55)}.hero-glow{position:absolute;border-radius:50%;filter:blur(90px);opacity:.24}.hero-glow-a{width:450px;height:450px;background:#078fea;right:9%;top:9%}.hero-glow-b{width:300px;height:300px;background:#07466f;left:-8%;bottom:-8%}.city-silhouette{position:absolute;left:0;right:0;bottom:0;height:230px;opacity:.2}.city-silhouette:after{content:"";position:absolute;left:0;right:0;bottom:0;height:80px;background:linear-gradient(180deg,transparent,#040912)}.city-silhouette span{position:absolute;bottom:0;left:var(--x);height:var(--h);width:var(--w);background:linear-gradient(180deg,rgba(52,158,221,.85),rgba(7,26,42,.3));border-top:1px solid rgba(144,220,255,.35)}.game-panel{position:relative;z-index:7;background:linear-gradient(180deg,rgba(11,29,47,.95),rgba(5,16,28,.96));border:1px solid rgba(91,193,255,.19);border-radius:20px;padding:16px;box-shadow:var(--shadow);max-width:445px;justify-self:end}.game-panel:before{content:"INTERFACE BASE";position:absolute;right:15px;top:-25px;font-size:9px;letter-spacing:.16em;color:#6e95af}.game-panel-top{display:flex;justify-content:space-between;align-items:center;padding:3px 2px 14px}.player-card{display:flex;align-items:center;gap:10px}.avatar{width:43px;height:43px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,#126db2,#22b8ff);font-size:12px;font-weight:900}.player-card b,.player-card small{display:block}.player-card b{font-size:12px}.player-card small{color:#68849a;font-size:9px;margin-top:2px}.online-dot{font-size:8px;font-weight:900;color:#65e9a5;letter-spacing:.1em}.online-dot i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#45ef9b;margin-right:5px;box-shadow:0 0 10px #45ef9b}.wallet-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}.wallet-row>div{background:#071522;border:1px solid #14354e;border-radius:9px;padding:10px}.wallet-row small,.wallet-row strong{display:block}.wallet-row small{font-size:7px;color:#638399;font-weight:900;letter-spacing:.1em}.wallet-row strong{font-size:11px;margin-top:5px}.wallet-row>div:nth-child(1) strong,.wallet-row>div:nth-child(2) strong{color:#60eea5}.hud-map{height:245px;border-radius:12px;position:relative;overflow:hidden;display:grid;place-items:center;background:linear-gradient(38deg,transparent 47%,rgba(49,124,168,.32) 48% 52%,transparent 53%),linear-gradient(-38deg,transparent 47%,rgba(49,124,168,.18) 48% 52%,transparent 53%),repeating-linear-gradient(90deg,transparent 0 43px,rgba(58,113,148,.15) 44px 47px),repeating-linear-gradient(0deg,transparent 0 38px,rgba(58,113,148,.12) 39px 42px),radial-gradient(circle at 50% 52%,#153c59,#081520 70%)}.hud-map>span{font-weight:950;letter-spacing:.2em;text-align:center;color:rgba(160,219,255,.15);font-size:35px}.pin{width:18px;height:18px;background:#36b7ff;position:absolute;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 0 25px #22aaff}.pin:after{content:"";width:6px;height:6px;border-radius:50%;background:#fff;position:absolute;left:6px;top:6px}.mission-card{margin-top:10px;border:1px solid #173c58;background:#081724;border-radius:10px;padding:12px}.mission-card small{font-size:8px;color:#5baee0;font-weight:900}.mission-card b{display:block;font-size:12px;margin:3px 0}.mission-card p{font-size:9px;color:#718ca1;margin:0 0 8px;line-height:1.4}.mission-card span{font-size:8px;color:#4cb9f4;font-weight:900;letter-spacing:.1em}.stats{width:min(1100px,calc(100% - 48px));margin:-45px auto 0;position:relative;z-index:10;display:grid;grid-template-columns:repeat(4,1fr);background:rgba(9,23,37,.94);border:1px solid #18374f;border-radius:14px;box-shadow:var(--shadow)}.stats article{padding:25px 30px;border-right:1px solid #163149}.stats article:last-child{border-right:0}.stats strong,.stats span{display:block}.stats strong{color:#58c6ff;font-size:19px}.stats span{color:#708ba0;font-size:10px;margin-top:5px;text-transform:uppercase;letter-spacing:.1em}.section{padding:120px clamp(24px,7vw,110px);max-width:1500px;margin:auto}.section-heading{text-align:center;max-width:780px;margin:0 auto 52px}.section-heading.left{text-align:left;margin-left:0}.section-heading>span,.section-kicker{color:#27aef9;font-size:10px;font-weight:900;letter-spacing:.2em}.section-heading h2{font-size:clamp(34px,4vw,58px);letter-spacing:-.045em;margin:12px 0}.section-heading p{color:#7894aa;line-height:1.7;font-size:15px}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.feature-card{min-height:220px;padding:26px;border-radius:14px;border:1px solid #153249;background:linear-gradient(145deg,rgba(13,29,45,.92),rgba(7,18,30,.92));position:relative;overflow:hidden;transition:.2s ease}.feature-card:hover{transform:translateY(-3px);border-color:#215276}.feature-card:after{content:"";position:absolute;width:120px;height:120px;right:-50px;top:-50px;border-radius:50%;background:#0f91e3;filter:blur(50px);opacity:.08}.feature-card .icon{width:43px;height:43px;display:grid;place-items:center;border:1px solid #1c4e70;border-radius:10px;background:#0b2234;font-size:20px}.feature-card h3{font-size:18px;margin:20px 0 10px}.feature-card p{font-size:13px;line-height:1.65;color:#7f9aaf;margin:0 0 22px}.feature-card>span{font-size:8px;font-weight:900;letter-spacing:.15em;color:#3faeea}.roadmap-section{padding-top:70px}.roadmap{display:grid;gap:10px}.road-item{display:grid;grid-template-columns:64px 1fr auto;gap:17px;align-items:center;padding:19px 21px;border:1px solid #142e44;border-radius:11px;background:#07131f}.road-item>b{min-width:48px;height:48px;padding:0 8px;border-radius:9px;display:grid;place-items:center;background:#0b1f30;color:#55788f;font-size:11px}.road-item strong,.road-item small{display:block}.road-item strong{font-size:13px}.road-item small{color:#6e899e;font-size:11px;margin-top:4px}.road-item>span{font-size:8px;font-weight:950;letter-spacing:.13em;color:#547087}.road-item.done{border-color:#176046;background:linear-gradient(90deg,rgba(19,71,53,.32),#07131f 65%)}.road-item.done>b{background:#0d4936;color:#5cf0a6}.road-item.done>span{color:#5cf0a6}.road-item.current{box-shadow:inset 3px 0 #45ef9b}.road-item.next{border-color:#1a5d87}.road-item.next>b{background:#0d3550;color:#53c1ff}.road-item.next>span{color:#53c1ff}.page-header{max-width:1300px;margin:auto;padding:80px clamp(24px,7vw,100px) 35px}.page-header h1{font-size:clamp(34px,5vw,62px);letter-spacing:-.04em;margin:10px 0}.page-header p{color:var(--muted);max-width:760px;line-height:1.7}.alert{max-width:1100px;margin:20px auto;padding:13px 16px;border-radius:10px;border:1px solid;font-size:13px}.alert-success{background:rgba(38,145,93,.14);border-color:#246b4b;color:#7af0b2}.alert-error{background:rgba(179,55,75,.13);border-color:#713444;color:#ff9bad}.footer{max-width:1500px;margin:auto;border-top:1px solid #11283b;padding:34px clamp(24px,7vw,110px) 50px;display:flex;align-items:center;justify-content:space-between;color:#587489}.footer-brand,.footer-meta{display:flex;align-items:center;gap:15px}.footer-meta{flex-direction:column;align-items:flex-end;gap:4px}.footer span,.footer small{font-size:10px}.not-found{min-height:70vh;display:grid;place-items:center;align-content:center;text-align:center;padding:30px}.not-found>span{font-size:100px;font-weight:950;color:#103d5d}.not-found h1{font-size:38px;margin:0}.not-found p{color:#7591a6}.not-found .btn{margin-top:15px}@media(max-width:900px){.nav-toggle{display:block}.topnav{display:none;position:absolute;top:68px;left:16px;right:16px;padding:14px;background:#071522;border:1px solid #183c57;border-radius:13px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch;gap:5px}.topnav.is-open{display:flex}.topnav>a,.topnav>.btn{padding:12px}.hero{grid-template-columns:1fr;padding-top:55px}.game-panel{justify-self:stretch;max-width:100%}.stats{grid-template-columns:repeat(2,1fr)}.stats article:nth-child(2){border-right:0}.feature-grid{grid-template-columns:repeat(2,1fr)}.footer{align-items:flex-start}.footer-brand{align-items:flex-start;flex-direction:column}.footer-meta{align-items:flex-end}}@media(max-width:600px){.topbar{height:68px;padding:0 18px}.brand{font-size:18px}.brand-mark{transform:scale(.9)}.hero{padding:48px 20px 95px;min-height:auto;gap:38px}.hero h1{font-size:49px}.hero p{font-size:15px}.hero-actions{display:grid}.hero-actions .btn{width:100%}.wallet-row{grid-template-columns:1fr}.hud-map{height:210px}.stats{width:calc(100% - 30px);grid-template-columns:1fr 1fr;margin-top:-35px}.stats article{padding:17px}.stats strong{font-size:15px}.section{padding:85px 20px}.feature-grid{grid-template-columns:1fr}.road-item{grid-template-columns:58px 1fr}.road-item>span{display:none}.footer{padding:28px 20px 40px;display:block}.footer-meta{align-items:flex-start;margin-top:18px}.footer-brand{display:block}.footer-brand>span{display:block;margin-top:8px}}

/* =========================================================
   NEO CITY — ETAPA 08 / DESIGN SYSTEM V1
   ========================================================= */
:root{
  --nc-night:#050b14;
  --nc-graphite:#0a1423;
  --nc-panel:#0d1a2b;
  --nc-panel-2:#101f33;
  --nc-line:rgba(117,190,255,.16);
  --nc-text:#f5f9ff;
  --nc-muted:#8da3ba;
  --nc-blue:#00a8ff;
  --nc-sky:#59d8ff;
  --nc-purple:#7b61ff;
  --nc-success:#27d980;
  --nc-warning:#ffb547;
  --nc-danger:#ff5263;
  --nc-radius-sm:10px;
  --nc-radius-md:16px;
  --nc-radius-lg:24px;
  --nc-shadow:0 18px 55px rgba(0,0,0,.35);
  --nc-focus:0 0 0 3px rgba(0,168,255,.28);
}

button,input,select,textarea{font:inherit}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:var(--nc-focus)}

.section-shell{width:min(1180px,calc(100% - 40px));margin-inline:auto}
.design-system-page .site-main{background:radial-gradient(circle at 78% 4%,rgba(0,168,255,.09),transparent 34%),var(--nc-night)}
.design-hero{min-height:420px;display:grid;grid-template-columns:1.35fr .65fr;gap:48px;align-items:center;padding-top:86px;padding-bottom:64px}
.design-hero h1{font-size:clamp(2.6rem,6vw,5rem);line-height:.98;margin:16px 0 22px;max-width:850px;letter-spacing:-.055em}
.design-hero h1 em{font-style:normal;color:var(--nc-sky)}
.design-hero p{max-width:720px;color:var(--nc-muted);font-size:1.08rem;line-height:1.75}
.kicker{font-size:.74rem;font-weight:900;letter-spacing:.18em;color:var(--nc-sky)}
.design-logo-card{min-height:270px;border:1px solid var(--nc-line);background:linear-gradient(145deg,rgba(13,26,43,.96),rgba(7,15,27,.85));border-radius:var(--nc-radius-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:var(--nc-shadow);position:relative;overflow:hidden}
.design-logo-card:after{content:"";position:absolute;width:180px;height:180px;background:var(--nc-blue);filter:blur(90px);opacity:.15}
.design-logo-card strong{font-size:2rem;letter-spacing:.08em;z-index:1}.design-logo-card strong b{color:var(--nc-sky)}.design-logo-card small{color:var(--nc-muted);letter-spacing:.22em;margin-top:6px;z-index:1}
.neo-emblem{display:grid;grid-template-columns:repeat(2,22px);gap:5px;transform:rotate(45deg);margin-bottom:26px;z-index:1}.neo-emblem i{width:22px;height:22px;border-radius:4px;background:linear-gradient(135deg,var(--nc-sky),var(--nc-blue));box-shadow:0 0 25px rgba(0,168,255,.28)}
.design-section{padding-top:44px;padding-bottom:44px}.section-heading.compact{margin-bottom:22px}.section-heading.compact h2{font-size:clamp(1.75rem,4vw,2.5rem);margin-top:8px}
.token-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.color-token{padding:14px;border:1px solid var(--nc-line);background:rgba(10,20,35,.72);border-radius:var(--nc-radius-md)}.color-token i{display:block;height:96px;border-radius:11px;background:var(--swatch);border:1px solid rgba(255,255,255,.08);margin-bottom:14px}.color-token b,.color-token code{display:block}.color-token b{font-size:.95rem}.color-token code{color:var(--nc-muted);font-size:.75rem;margin-top:4px}
.component-stage,.card-surface{border:1px solid var(--nc-line);border-radius:var(--nc-radius-lg);background:linear-gradient(145deg,rgba(13,26,43,.78),rgba(7,15,27,.7));padding:28px;box-shadow:var(--nc-shadow)}.component-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.component-row+.component-row{margin-top:22px}
.btn-secondary{background:rgba(89,216,255,.1);border:1px solid rgba(89,216,255,.26);color:var(--nc-sky)}.btn-danger{background:linear-gradient(135deg,#ff5263,#cf3144);color:#fff;border:1px solid rgba(255,255,255,.08);box-shadow:0 9px 28px rgba(255,82,99,.16)}.btn:disabled{opacity:.42;cursor:not-allowed;transform:none!important}
.badge{display:inline-flex;align-items:center;min-height:30px;padding:0 11px;border-radius:999px;border:1px solid transparent;font-size:.7rem;font-weight:900;letter-spacing:.08em}.badge-info{background:rgba(0,168,255,.1);border-color:rgba(0,168,255,.25);color:var(--nc-sky)}.badge-success{background:rgba(39,217,128,.1);border-color:rgba(39,217,128,.25);color:var(--nc-success)}.badge-warning{background:rgba(255,181,71,.1);border-color:rgba(255,181,71,.25);color:var(--nc-warning)}.badge-danger{background:rgba(255,82,99,.1);border-color:rgba(255,82,99,.25);color:var(--nc-danger)}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.field{display:flex;flex-direction:column;gap:8px}.field>span{font-size:.78rem;font-weight:800;letter-spacing:.04em;color:#dcecff}.field input,.field select,.field textarea{width:100%;border:1px solid rgba(125,169,208,.22);border-radius:12px;background:#07111f;color:var(--nc-text);padding:14px 15px;transition:border-color .2s,box-shadow .2s,background .2s}.field input::placeholder{color:#587087}.field input:hover{border-color:rgba(89,216,255,.38)}.field input:focus{border-color:var(--nc-blue);background:#081524}.field small{font-size:.72rem;color:var(--nc-muted)}.field-error input{border-color:rgba(255,82,99,.7)}.field-error small{color:var(--nc-danger)}
.design-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.ui-card{min-height:210px;border:1px solid var(--nc-line);border-radius:var(--nc-radius-lg);background:linear-gradient(145deg,rgba(13,26,43,.88),rgba(8,17,29,.78));padding:24px;position:relative;overflow:hidden}.ui-card small{display:block;color:var(--nc-muted);font-size:.68rem;font-weight:900;letter-spacing:.13em}.ui-card strong{display:block;font-size:1.75rem;margin:8px 0 10px}.ui-card p{color:var(--nc-muted);font-size:.88rem;line-height:1.55}.ui-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:rgba(0,168,255,.1);color:var(--nc-sky);margin-bottom:28px}.ui-card-accent:after{content:"";position:absolute;right:-45px;top:-45px;width:130px;height:130px;border-radius:50%;background:var(--nc-purple);filter:blur(50px);opacity:.18}.progress{height:7px;background:#07101c;border-radius:999px;overflow:hidden;margin:17px 0 8px}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--nc-blue),var(--nc-sky));border-radius:inherit}
.rules-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.rules-grid article{padding:22px;border-left:2px solid var(--nc-blue);background:rgba(10,20,35,.55);border-radius:0 var(--nc-radius-md) var(--nc-radius-md) 0}.rules-grid b{color:#fff}.rules-grid p{color:var(--nc-muted);font-size:.9rem;line-height:1.6;margin:6px 0 0}
@media(max-width:900px){.design-hero{grid-template-columns:1fr}.design-logo-card{min-height:220px}.token-grid{grid-template-columns:repeat(2,1fr)}.design-card-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}}
@media(max-width:580px){.section-shell{width:min(100% - 24px,1180px)}.design-hero{padding-top:58px;gap:28px}.token-grid{grid-template-columns:1fr 1fr}.color-token i{height:72px}.component-stage,.card-surface{padding:18px}.rules-grid{grid-template-columns:1fr}.btn{width:100%;justify-content:center}}

/* =========================================================
   NEO CITY — ETAPA 09 / CADASTRO DO JOGADOR
   ========================================================= */
.auth-page .site-main{background:radial-gradient(circle at 18% 10%,rgba(0,168,255,.12),transparent 32%),radial-gradient(circle at 86% 65%,rgba(123,97,255,.10),transparent 28%),var(--nc-night)}
.auth-shell{min-height:calc(100vh - 78px);display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.78fr);gap:clamp(40px,8vw,110px);align-items:center;padding-top:72px;padding-bottom:90px}
.auth-copy h1{font-size:clamp(3rem,6vw,5.7rem);line-height:.96;letter-spacing:-.06em;margin:18px 0 28px}.auth-copy h1 em{font-style:normal;color:var(--nc-sky)}.auth-copy>p{max-width:680px;color:var(--nc-muted);font-size:1.05rem;line-height:1.75}
.auth-feature-list{display:grid;gap:10px;margin-top:38px;max-width:650px}.auth-feature-list article{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:center;border-left:2px solid rgba(0,168,255,.5);padding:11px 16px;background:rgba(8,20,34,.46);border-radius:0 12px 12px 0}.auth-feature-list article>span{font-size:.7rem;font-weight:950;color:var(--nc-sky);letter-spacing:.08em}.auth-feature-list b,.auth-feature-list small{display:block}.auth-feature-list b{font-size:.88rem}.auth-feature-list small{color:var(--nc-muted);font-size:.74rem;margin-top:3px;line-height:1.45}
.auth-card{border:1px solid var(--nc-line);border-radius:var(--nc-radius-lg);background:linear-gradient(160deg,rgba(14,30,49,.96),rgba(6,14,25,.98));padding:clamp(24px,4vw,38px);box-shadow:0 30px 100px rgba(0,0,0,.48);position:relative;overflow:hidden}.auth-card:before{content:"";position:absolute;width:240px;height:240px;right:-120px;top:-120px;border-radius:50%;background:var(--nc-blue);filter:blur(90px);opacity:.13;pointer-events:none}.auth-card-head{position:relative}.auth-card-head h2{font-size:2rem;margin:16px 0 7px}.auth-card-head p{margin:0 0 26px;color:var(--nc-muted);font-size:.88rem;line-height:1.6}.auth-card .alert{margin:0 0 18px;max-width:none}
.auth-form{display:grid;gap:18px;position:relative}.auth-password-grid{gap:14px}.check-field{display:grid;grid-template-columns:18px 1fr;gap:11px;align-items:start;color:var(--nc-muted);font-size:.76rem;line-height:1.55;cursor:pointer}.check-field input{width:16px;height:16px;margin:2px 0 0;accent-color:var(--nc-blue)}.check-field b{color:#dff4ff}.check-field-error{color:#ff9aa5}.form-error-text{display:block;color:var(--nc-danger);font-size:.72rem;margin-top:-12px}.auth-submit{width:100%;min-height:50px;margin-top:2px}.auth-card-footer{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;padding-top:22px;margin-top:22px;border-top:1px solid rgba(117,190,255,.1);font-size:.73rem;color:var(--nc-muted)}.muted-link{color:#5bcfff}
@media(max-width:980px){.auth-shell{grid-template-columns:1fr;max-width:760px}.auth-copy{padding-top:10px}.auth-copy h1{font-size:clamp(3rem,10vw,5rem)}.auth-feature-list{display:none}}
@media(max-width:600px){.auth-shell{width:min(100% - 24px,1180px);padding-top:38px;padding-bottom:60px}.auth-card{padding:20px 16px}.auth-password-grid{grid-template-columns:1fr}.auth-copy>p{font-size:.93rem}}


/* =========================================================
   NEO CITY — ETAPA 10 / CONFIRMAÇÃO DE E-MAIL
   ========================================================= */
.verify-shell{min-height:calc(100vh - 78px)}.verify-card{max-width:560px;width:100%;justify-self:end}.verify-icon{width:82px;height:82px;border-radius:24px;display:grid;place-items:center;margin:24px auto;background:rgba(0,168,255,.10);border:1px solid rgba(89,216,255,.28);color:var(--nc-sky);font-size:2rem;font-weight:950;box-shadow:0 0 45px rgba(0,168,255,.10)}.verify-help{color:var(--nc-muted);font-size:.82rem;line-height:1.65;text-align:center;margin:0 0 24px}.verify-result-shell{grid-template-columns:minmax(0,1fr) minmax(380px,.64fr)}.verify-result-card{text-align:center}.verify-result-card h2{margin:4px 0 10px}.verify-result-card>p{color:var(--nc-muted);line-height:1.65}.verify-icon.is-success{background:rgba(39,217,128,.10);border-color:rgba(39,217,128,.28);color:var(--nc-success)}.verify-icon.is-error{background:rgba(255,82,99,.10);border-color:rgba(255,82,99,.28);color:var(--nc-danger)}@media(max-width:980px){.verify-card{justify-self:stretch;max-width:none}.verify-result-shell{grid-template-columns:1fr}}
/* =========================================================
   NEO CITY — ETAPA 11 / LOGIN DO JOGADOR
   ========================================================= */
.login-shell{grid-template-columns:minmax(0,1fr) minmax(390px,.70fr)}.login-card{max-width:540px;width:100%;justify-self:end}.auth-footer-links a{color:var(--nc-sky);font-weight:800;text-decoration:none}.auth-footer-links a:hover{text-decoration:underline}.auth-divider{opacity:.4}.player-page .site-main{background:radial-gradient(circle at 18% 5%,rgba(0,168,255,.1),transparent 28%),var(--nc-night)}.player-shell{padding-top:70px;padding-bottom:100px}.player-welcome{display:grid;grid-template-columns:88px 1fr;gap:24px;align-items:center;margin-bottom:38px}.player-avatar{width:88px;height:88px;border-radius:24px;display:grid;place-items:center;background:linear-gradient(145deg,var(--nc-blue),#6c7cff);font-size:2rem;font-weight:950;box-shadow:0 20px 50px rgba(0,168,255,.18)}.player-welcome h1{font-size:clamp(2.2rem,5vw,4.5rem);letter-spacing:-.05em;margin:8px 0 12px}.player-welcome p{max-width:760px;color:var(--nc-muted);line-height:1.7;margin:0}.player-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.player-status-card .badge{margin-bottom:22px}.player-note{margin-top:20px}.player-note h2{margin:14px 0 8px}.player-note p{margin:0;color:var(--nc-muted);line-height:1.65}@media(max-width:980px){.login-shell{grid-template-columns:1fr}.login-card{max-width:none;justify-self:stretch}.player-grid{grid-template-columns:1fr}}@media(max-width:620px){.player-welcome{grid-template-columns:1fr}.player-avatar{width:70px;height:70px;border-radius:20px}.auth-footer-links{gap:7px}.auth-divider{display:none}}
.logout-form{margin:0;display:flex;align-items:center}.logout-form .btn{font:inherit;font-size:12px;font-weight:900;letter-spacing:.02em}@media(max-width:900px){.topnav>.logout-form{width:100%}.logout-form .btn{width:100%}}

/* NEO CITY - ETAPA 13 */
.auth-inline-help{display:flex;justify-content:flex-end;margin-top:-4px;margin-bottom:4px}
.auth-inline-help a,.auth-footer-links a{color:var(--nc-cyan,#59d8ff);font-weight:700;text-decoration:none}
.auth-inline-help a:hover,.auth-footer-links a:hover{text-decoration:underline}

/* =========================================================
   NEO CITY — ETAPA 15 / PERFIL DO JOGADOR
   ========================================================= */
.profile-shell{padding-top:64px;padding-bottom:100px}.profile-hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:26px;align-items:center;padding:28px}.profile-avatar-wrap{width:112px;height:112px}.profile-avatar-large,.profile-avatar-image{width:112px;height:112px;border-radius:28px}.profile-avatar-large{display:grid;place-items:center;background:linear-gradient(145deg,var(--nc-blue),#6c7cff);font-size:2.65rem;font-weight:950;box-shadow:0 22px 58px rgba(0,168,255,.2)}.profile-avatar-image{display:block;object-fit:cover;border:1px solid rgba(89,216,255,.25)}.profile-hero-copy h1{font-size:clamp(2.2rem,4.5vw,4.1rem);letter-spacing:-.055em;margin:8px 0 5px}.profile-hero-copy>p{color:var(--nc-muted);margin:0}.profile-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:17px}.profile-back{white-space:nowrap}.profile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:20px}.profile-card{min-height:340px}.profile-list{display:grid;gap:0;margin:20px 0 0}.profile-list>div{display:grid;grid-template-columns:minmax(110px,.7fr) minmax(0,1.3fr);gap:12px;padding:13px 0;border-top:1px solid rgba(117,190,255,.09)}.profile-list dt{color:var(--nc-muted);font-size:.72rem}.profile-list dd{margin:0;text-align:right;color:#e8f6ff;font-size:.77rem;font-weight:750;overflow-wrap:anywhere}.profile-actions{margin-top:20px;display:flex;justify-content:space-between;gap:28px;align-items:center}.profile-actions h2{margin:13px 0 8px}.profile-actions p{max-width:720px;margin:0;color:var(--nc-muted);line-height:1.65}.profile-actions-buttons{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.card-link{display:inline-flex;margin-top:14px;color:var(--nc-sky);font-size:.78rem;font-weight:850;text-decoration:none}.card-link:hover{text-decoration:underline}@media(max-width:980px){.profile-hero{grid-template-columns:auto 1fr}.profile-back{grid-column:1/-1;width:100%}.profile-grid{grid-template-columns:1fr}.profile-card{min-height:auto}.profile-actions{align-items:flex-start;flex-direction:column}.profile-actions-buttons{justify-content:flex-start}}@media(max-width:620px){.profile-shell{width:min(100% - 24px,1180px);padding-top:38px}.profile-hero{grid-template-columns:1fr;padding:20px}.profile-avatar-wrap,.profile-avatar-large,.profile-avatar-image{width:82px;height:82px}.profile-avatar-large,.profile-avatar-image{border-radius:22px}.profile-avatar-large{font-size:2rem}.profile-list>div{grid-template-columns:1fr;gap:5px}.profile-list dd{text-align:left}.profile-actions-buttons,.profile-actions-buttons .btn{width:100%}}

/* =========================================================
   NEO CITY — ETAPA 16 / CRIAÇÃO DO PERSONAGEM
   ========================================================= */
.character-shell{padding-top:64px;padding-bottom:100px}.character-heading{display:flex;justify-content:space-between;gap:30px;align-items:flex-end;margin-bottom:28px}.character-heading h1{font-size:clamp(2.5rem,5vw,4.8rem);letter-spacing:-.06em;line-height:.98;margin:10px 0 12px;max-width:880px}.character-heading p{color:var(--nc-muted);line-height:1.7;max-width:790px;margin:0}.character-grid{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:20px;align-items:stretch}.character-preview{min-height:610px;display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;position:relative;overflow:hidden}.character-preview:before{content:"";position:absolute;width:330px;height:330px;border-radius:50%;background:rgba(0,168,255,.14);filter:blur(85px);top:90px}.character-preview>*{position:relative}.character-silhouette{height:260px;width:180px;position:relative;margin:34px auto 18px}.character-head{position:absolute;width:82px;height:92px;left:49px;top:0;border-radius:46% 46% 42% 42%;background:linear-gradient(160deg,#17344b,#0b1c2c);border:1px solid rgba(94,213,255,.22);box-shadow:0 0 45px rgba(0,168,255,.14)}.character-body{position:absolute;width:168px;height:175px;left:6px;bottom:0;border-radius:72px 72px 22px 22px;background:linear-gradient(160deg,#153049,#081725);border:1px solid rgba(94,213,255,.18)}.character-preview h2{font-size:1.65rem;margin:8px 0}.character-preview>p{max-width:390px;color:var(--nc-muted);font-size:.84rem;line-height:1.65}.character-start-stats{display:grid;grid-template-columns:repeat(3,1fr);width:100%;gap:8px;margin-top:26px}.character-start-stats span{padding:13px 8px;border:1px solid rgba(117,190,255,.12);border-radius:12px;background:rgba(4,13,23,.48)}.character-start-stats small,.character-start-stats strong{display:block}.character-start-stats small{color:var(--nc-muted);font-size:.58rem;letter-spacing:.09em}.character-start-stats strong{font-size:.82rem;margin-top:4px}.character-form-card{max-width:none}.character-form-card .field select{width:100%;min-height:48px;padding:0 13px;border:1px solid var(--nc-line);border-radius:10px;background:#071522;color:#eaf7ff;outline:none}.character-form-card .field select:focus{border-color:var(--nc-blue);box-shadow:0 0 0 3px rgba(0,168,255,.1)}.field span small{color:var(--nc-muted);font-weight:600}.character-disclaimer{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:14px 16px;border-radius:12px;border:1px solid rgba(89,216,255,.13);background:rgba(0,168,255,.05);font-size:.74rem;line-height:1.55}.character-disclaimer strong{color:var(--nc-sky)}.character-disclaimer span{color:var(--nc-muted)}.character-existing{display:grid;grid-template-columns:110px 1fr;gap:26px;align-items:center;max-width:760px}.character-id-badge{width:110px;height:110px;border-radius:28px;display:grid;place-items:center;background:linear-gradient(145deg,var(--nc-blue),#6c7cff);font-size:2rem;font-weight:950;letter-spacing:-.05em;box-shadow:0 20px 55px rgba(0,168,255,.18)}.character-existing h2{font-size:2rem;margin:12px 0 5px}.character-existing p{color:var(--nc-muted);margin:0}.character-existing p strong{color:#fff}@media(max-width:920px){.character-grid{grid-template-columns:1fr}.character-preview{min-height:480px}.character-heading{align-items:flex-start;flex-direction:column}.character-heading>.btn{width:auto}}@media(max-width:620px){.character-shell{width:min(100% - 24px,1180px);padding-top:38px}.character-preview{min-height:420px;padding:20px 16px}.character-silhouette{transform:scale(.82);margin:10px auto 0}.character-start-stats{grid-template-columns:1fr}.character-existing{grid-template-columns:1fr}.character-id-badge{width:82px;height:82px;border-radius:22px}}

/* Etapa 17 - Identidade civil do personagem */
.identity-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.7fr);gap:24px;align-items:start}.neo-id-card{position:relative;overflow:hidden;border:1px solid rgba(78,169,255,.28);border-radius:28px;padding:28px;background:linear-gradient(145deg,rgba(13,26,48,.98),rgba(7,14,28,.98));box-shadow:0 24px 70px rgba(0,0,0,.32)}.neo-id-card:before{content:"";position:absolute;inset:-40% auto auto 55%;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(35,139,255,.18),transparent 68%);pointer-events:none}.neo-id-topline,.neo-id-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;position:relative;z-index:1}.neo-id-brand{display:flex;align-items:center;gap:12px}.neo-id-brand span{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:linear-gradient(145deg,#218cff,#0d5bd7);font-weight:900;color:#fff;box-shadow:0 10px 24px rgba(24,121,255,.25)}.neo-id-brand strong{letter-spacing:.12em}.neo-id-body{display:grid;grid-template-columns:170px 1fr;gap:26px;margin:34px 0;position:relative;z-index:1}.neo-id-photo{height:210px;border-radius:22px;border:1px solid rgba(255,255,255,.09);background:linear-gradient(180deg,rgba(30,94,160,.18),rgba(255,255,255,.025));display:flex;flex-direction:column;align-items:center;justify-content:flex-end;overflow:hidden;padding-top:20px}.identity-head{width:68px;height:68px;border-radius:50%;background:linear-gradient(180deg,#7b8ca4,#536176)}.identity-body{width:132px;height:112px;margin-top:8px;border-radius:60px 60px 18px 18px;background:linear-gradient(180deg,#6d7f98,#3d4b60)}.neo-id-data small,.neo-id-row span{display:block;font-size:.7rem;letter-spacing:.12em;color:var(--muted);font-weight:700}.neo-id-data h2{font-size:clamp(1.65rem,3vw,2.45rem);margin:4px 0 18px}.neo-id-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.neo-id-row{padding:12px 14px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.025);border-radius:14px}.neo-id-row.wide{margin-bottom:14px}.neo-id-row strong{display:block;margin-top:5px}.neo-id-footer{padding-top:18px;border-top:1px solid rgba(255,255,255,.08);font-size:.76rem;color:var(--muted)}.neo-id-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em;color:#9dccff}.identity-info{padding:26px}.identity-info h2{margin:14px 0 10px}.identity-rule{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.07)}.identity-rule span{text-align:right;color:var(--muted)}@media(max-width:900px){.identity-layout{grid-template-columns:1fr}.neo-id-body{grid-template-columns:120px 1fr}.neo-id-photo{height:170px}.neo-id-columns{grid-template-columns:1fr}}@media(max-width:600px){.neo-id-card{padding:20px}.neo-id-body{grid-template-columns:1fr}.neo-id-photo{width:140px;height:160px}.neo-id-topline,.neo-id-footer{align-items:flex-start;flex-direction:column}.neo-id-columns{grid-template-columns:1fr}}

/* Etapa 18 - Aparência inicial do personagem */
.appearance-shell{width:min(1180px,calc(100% - 48px));margin:0 auto;padding:70px 0 100px}.appearance-layout{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(0,1.22fr);gap:24px;align-items:start}.appearance-preview,.appearance-form{padding:26px}.appearance-preview{position:sticky;top:104px;text-align:center}.appearance-preview h2{margin:20px 0 8px}.appearance-preview>p{color:var(--nc-muted);line-height:1.6}.avatar-preview{width:220px;height:310px;margin:28px auto 10px;position:relative;display:flex;align-items:center;flex-direction:column}.avatar-face{width:112px;height:132px;border-radius:48% 48% 44% 44%;background:#b98261;position:relative;z-index:2;box-shadow:inset 0 -16px 24px rgba(0,0,0,.08)}.avatar-hair{width:118px;height:50px;border-radius:55px 55px 18px 18px;background:#191b20;position:absolute;top:-7px;z-index:3}.avatar-hair.style-fade{height:32px}.avatar-hair.style-medio{height:66px}.avatar-hair.style-cacheado{height:62px;border-radius:50%}.avatar-hair.style-longo{height:118px;border-radius:55px 55px 30px 30px}.avatar-hair.style-raspado{height:18px;top:0}.avatar-body{width:180px;height:170px;margin-top:8px;border-radius:72px 72px 24px 24px;background:linear-gradient(180deg,#1867a8,#0d3153)}.avatar-body.preset-executivo{background:linear-gradient(180deg,#242b36,#090d13)}.avatar-body.preset-casual{background:linear-gradient(180deg,#657287,#343c49)}.avatar-body.preset-esportivo{background:linear-gradient(180deg,#1a9b7a,#0b4c3e)}.skin-claro .avatar-face{background:#efc5a5}.skin-medio_claro .avatar-face{background:#d9a17c}.skin-medio .avatar-face{background:#b98261}.skin-medio_escuro .avatar-face{background:#8b5a3e}.skin-escuro .avatar-face{background:#5d3929}.hair-preto .avatar-hair{background:#151515}.hair-castanho .avatar-hair{background:#4c2d1d}.hair-loiro .avatar-hair{background:#b89454}.hair-ruivo .avatar-hair{background:#8e3e25}.hair-grisalho .avatar-hair{background:#858b94}.appearance-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.appearance-summary span{padding:12px;border:1px solid rgba(255,255,255,.07);border-radius:12px;color:var(--nc-muted);font-size:.75rem}.appearance-summary strong{display:block;color:#fff;margin-top:5px}.appearance-choice{border:0;padding:0;margin:0 0 24px}.appearance-choice legend{font-weight:850;margin-bottom:11px}.choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.choice-card{position:relative}.choice-card input{position:absolute;opacity:0;pointer-events:none}.choice-card span{display:flex;min-height:48px;align-items:center;justify-content:center;text-align:center;border:1px solid rgba(255,255,255,.09);border-radius:12px;background:rgba(255,255,255,.025);color:var(--nc-muted);font-size:.78rem;font-weight:760;cursor:pointer;transition:.18s ease}.choice-card input:checked+span{border-color:var(--nc-blue);background:rgba(0,168,255,.1);color:#fff;box-shadow:0 0 0 2px rgba(0,168,255,.08)}@media(max-width:900px){.appearance-layout{grid-template-columns:1fr}.appearance-preview{position:static}.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.appearance-shell{width:min(100% - 24px,1180px);padding-top:38px}.choice-grid{grid-template-columns:1fr}.avatar-preview{transform:scale(.88);margin-top:10px;margin-bottom:-10px}}

/* Etapa 20 - Seleção de personagem */
.character-select-shell{width:min(1180px,calc(100% - 48px));margin:0 auto;padding:70px 0 110px}.character-select-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:30px}.character-select-heading h1{font-size:clamp(2.5rem,5vw,4.7rem);letter-spacing:-.06em;line-height:.98;margin:10px 0 12px;max-width:860px}.character-select-heading p{margin:0;color:var(--nc-muted);max-width:760px;line-height:1.65}.character-select-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.character-choice-card{overflow:hidden;border:1px solid rgba(117,190,255,.14);border-radius:24px;background:linear-gradient(160deg,rgba(11,27,44,.97),rgba(5,14,24,.98));box-shadow:0 20px 55px rgba(0,0,0,.2);transition:.22s ease}.character-choice-card:hover{transform:translateY(-3px);border-color:rgba(76,188,255,.34)}.character-choice-card.is-active{border-color:rgba(71,240,160,.42);box-shadow:0 22px 70px rgba(34,210,136,.08)}.character-choice-visual{min-height:270px;position:relative;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;background:radial-gradient(circle at 50% 34%,rgba(30,159,255,.23),transparent 32%),linear-gradient(180deg,#0b2033,#07111d)}.character-choice-visual:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(87,181,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(87,181,255,.035) 1px,transparent 1px);background-size:30px 30px;mask-image:linear-gradient(to bottom,#000,transparent 92%)}.character-choice-status{position:absolute;top:18px;left:18px;right:18px;z-index:4;display:flex;align-items:center;justify-content:space-between}.character-choice-status small{font-size:.65rem;letter-spacing:.12em;color:var(--nc-muted);font-weight:850}.mini-avatar{width:180px;height:235px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;position:relative;z-index:2}.mini-avatar-face{width:96px;height:110px;border-radius:48% 48% 43% 43%;background:#b98261;position:relative;box-shadow:inset 0 -15px 20px rgba(0,0,0,.08)}.mini-avatar-hair{width:101px;height:43px;border-radius:52px 52px 16px 16px;background:#151515;position:absolute;top:-6px;left:-3px}.mini-avatar-hair.style-fade{height:28px}.mini-avatar-hair.style-medio{height:56px}.mini-avatar-hair.style-cacheado{height:54px;border-radius:50%}.mini-avatar-hair.style-longo{height:98px;border-radius:50px 50px 26px 26px}.mini-avatar-hair.style-raspado{height:15px;top:0}.mini-avatar-body{width:160px;height:118px;margin-top:6px;border-radius:68px 68px 18px 18px;background:linear-gradient(180deg,#1867a8,#0d3153)}.mini-avatar-body.preset-executivo{background:linear-gradient(180deg,#242b36,#090d13)}.mini-avatar-body.preset-casual{background:linear-gradient(180deg,#657287,#343c49)}.mini-avatar-body.preset-esportivo{background:linear-gradient(180deg,#1a9b7a,#0b4c3e)}.skin-claro .mini-avatar-face{background:#efc5a5}.skin-medio_claro .mini-avatar-face{background:#d9a17c}.skin-medio .mini-avatar-face{background:#b98261}.skin-medio_escuro .mini-avatar-face{background:#8b5a3e}.skin-escuro .mini-avatar-face{background:#5d3929}.hair-preto .mini-avatar-hair{background:#151515}.hair-castanho .mini-avatar-hair{background:#4c2d1d}.hair-loiro .mini-avatar-hair{background:#b89454}.hair-ruivo .mini-avatar-hair{background:#8e3e25}.hair-grisalho .mini-avatar-hair{background:#858b94}.character-choice-content{padding:24px}.character-choice-name{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.character-choice-name small,.character-choice-stats small,.character-choice-economy small{color:var(--nc-muted);font-size:.6rem;letter-spacing:.11em;font-weight:800}.character-choice-name h2{margin:5px 0 2px;font-size:1.65rem}.character-choice-name p{margin:0;color:var(--nc-muted)}.citizen-code{font:800 .72rem ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;color:var(--nc-sky);padding:8px 10px;border:1px solid rgba(72,182,255,.15);border-radius:10px;background:rgba(0,168,255,.05)}.character-choice-stats,.character-choice-economy{display:grid;gap:8px;margin-top:20px}.character-choice-stats{grid-template-columns:repeat(3,1fr)}.character-choice-economy{grid-template-columns:repeat(2,1fr)}.character-choice-stats span,.character-choice-economy span{padding:12px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.025);border-radius:12px}.character-choice-stats strong,.character-choice-economy strong{display:block;margin-top:5px}.character-choice-details{display:flex;gap:8px;flex-wrap:wrap;margin:17px 0}.character-choice-details span{font-size:.68rem;color:var(--nc-muted);padding:7px 9px;border:1px solid rgba(255,255,255,.07);border-radius:999px}.character-choice-details strong{color:#fff}.character-select-button{width:100%;min-height:48px}.character-select-button:disabled{cursor:default;opacity:.78}.city-entry-preview{margin-top:24px;padding:24px;display:flex;align-items:center;justify-content:space-between;gap:26px;border-color:rgba(71,240,160,.14)}.city-entry-preview h2{margin:11px 0 7px}.city-entry-preview p{margin:0;color:var(--nc-muted);line-height:1.6;max-width:760px}.empty-character-state{max-width:720px;text-align:center;margin:0 auto;padding:50px 30px}.empty-character-icon{width:86px;height:86px;border-radius:28px;display:grid;place-items:center;margin:0 auto 22px;background:linear-gradient(145deg,var(--nc-blue),#6c7cff);font-size:2.2rem;font-weight:950}.empty-character-state h2{font-size:2rem;margin:14px 0 8px}.empty-character-state p{color:var(--nc-muted);margin:0 auto 22px;max-width:520px}.ui-alert{border-radius:14px;padding:14px 16px;margin:0 0 20px;border:1px solid rgba(255,255,255,.08);font-weight:700}.ui-alert-success{background:rgba(71,240,160,.08);border-color:rgba(71,240,160,.24);color:#a7ffd1}.ui-alert-danger{background:rgba(255,101,123,.08);border-color:rgba(255,101,123,.24);color:#ffb2bd}@media(max-width:940px){.character-select-grid{grid-template-columns:1fr}.character-select-heading{align-items:flex-start;flex-direction:column}.city-entry-preview{align-items:flex-start;flex-direction:column}.city-entry-preview .btn{width:100%}}@media(max-width:600px){.character-select-shell{width:min(100% - 24px,1180px);padding-top:38px}.character-choice-content{padding:19px}.character-choice-name{flex-direction:column}.character-choice-stats{grid-template-columns:repeat(3,1fr)}.character-choice-economy{grid-template-columns:1fr}.character-choice-visual{min-height:245px}}

/* =========================================================
   NEO CITY — ETAPA 21 / ENTRADA NA CIDADE
   ========================================================= */
.city-entry-page { min-height: 100vh; background: #050912; }
.city-entry-shell { position: relative; min-height: calc(100vh - 80px); overflow: hidden; padding: 32px clamp(20px, 5vw, 72px) 42px; isolation: isolate; }
.city-entry-backdrop { position: absolute; inset: 0; z-index: -2; background: radial-gradient(circle at 74% 18%, rgba(32, 143, 255, .22), transparent 26%), linear-gradient(180deg, #071425 0%, #07101d 55%, #04070d 100%); }
.city-entry-glow { position: absolute; width: 540px; height: 540px; right: 4%; top: 8%; border-radius: 50%; background: radial-gradient(circle, rgba(0, 170, 255, .18), transparent 66%); filter: blur(18px); }
.city-entry-skyline { position: absolute; left: -4%; right: -4%; bottom: 16%; height: 44%; opacity: .42; background: repeating-linear-gradient(90deg, #12233a 0 36px, #0d1a2b 36px 58px, #172b43 58px 105px, #0b1727 105px 138px); clip-path: polygon(0 40%, 4% 40%, 4% 20%, 8% 20%, 8% 48%, 12% 48%, 12% 12%, 17% 12%, 17% 36%, 21% 36%, 21% 5%, 26% 5%, 26% 44%, 31% 44%, 31% 24%, 36% 24%, 36% 48%, 42% 48%, 42% 8%, 47% 8%, 47% 36%, 52% 36%, 52% 18%, 57% 18%, 57% 43%, 63% 43%, 63% 4%, 68% 4%, 68% 30%, 74% 30%, 74% 16%, 79% 16%, 79% 42%, 84% 42%, 84% 9%, 89% 9%, 89% 30%, 94% 30%, 94% 18%, 100% 18%, 100% 100%, 0 100%); }
.city-entry-skyline.skyline-b { bottom: 11%; height: 31%; opacity: .22; transform: scaleX(1.08); filter: blur(1px); }
.city-entry-road { position: absolute; left: -15%; right: -15%; bottom: -18%; height: 38%; background: linear-gradient(180deg, #101722, #05070a); transform: perspective(600px) rotateX(64deg); border-top: 1px solid rgba(255,255,255,.08); }
.city-entry-road::after { content: ''; position: absolute; left: 50%; top: 8%; width: 8px; height: 88%; background: repeating-linear-gradient(180deg, rgba(255,255,255,.5) 0 30px, transparent 30px 68px); }
.city-entry-topbar { display: flex; justify-content: space-between; align-items: center; gap: 24px; max-width: 1380px; margin: 0 auto 34px; }
.city-entry-brand { text-align: right; }
.city-entry-brand strong { display: block; margin-top: 6px; letter-spacing: .16em; color: #dfefff; }
.city-entry-alert { max-width: 1380px; margin: 0 auto 20px; }
.city-entry-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(390px, .85fr); gap: clamp(28px, 4vw, 62px); align-items: center; min-height: 650px; max-width: 1380px; margin: 0 auto; }
.city-entry-character-card { min-height: 590px; display: flex; align-items: flex-end; justify-content: center; position: relative; padding: 30px; }
.entry-avatar { position: absolute; left: 50%; bottom: 118px; transform: translateX(-50%); width: 260px; height: 430px; filter: drop-shadow(0 28px 40px rgba(0,0,0,.55)); }
.entry-avatar-head { position: absolute; top: 22px; left: 50%; transform: translateX(-50%); width: 118px; height: 142px; border-radius: 50% 50% 46% 46%; background: #b97f5f; box-shadow: inset 0 -15px 24px rgba(50,18,8,.12); }
.entry-avatar.skin-claro .entry-avatar-head { background: #e8c3a6; } .entry-avatar.skin-medio_claro .entry-avatar-head { background: #d8a27f; } .entry-avatar.skin-medio .entry-avatar-head { background: #b97f5f; } .entry-avatar.skin-medio_escuro .entry-avatar-head { background: #8d5d42; } .entry-avatar.skin-escuro .entry-avatar-head { background: #613f30; }
.entry-avatar-hair { position: absolute; inset: -8px 5px auto; height: 48px; border-radius: 55% 55% 30% 30%; background: #1a1717; }
.entry-avatar.hair-castanho .entry-avatar-hair { background: #493223; } .entry-avatar.hair-loiro .entry-avatar-hair { background: #a98247; } .entry-avatar.hair-ruivo .entry-avatar-hair { background: #71351f; } .entry-avatar.hair-cinza .entry-avatar-hair { background: #7f8790; }
.entry-avatar-hair.style-fade { height: 32px; inset-inline: 12px; } .entry-avatar-hair.style-medio { height: 62px; } .entry-avatar-hair.style-cacheado { height: 65px; border-radius: 50%; box-shadow: -22px 8px 0 -8px currentColor, 22px 8px 0 -8px currentColor; } .entry-avatar-hair.style-longo { height: 112px; inset-inline: 0; } .entry-avatar-hair.style-raspado { height: 18px; opacity: .72; }
.entry-avatar-body { position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); width: 228px; height: 292px; border-radius: 72px 72px 25px 25px; background: linear-gradient(145deg, #17283d, #091422 70%); border: 1px solid rgba(62,170,255,.18); }
.entry-avatar-body.preset-executivo { background: linear-gradient(145deg, #1c2635, #070b12 68%); } .entry-avatar-body.preset-casual { background: linear-gradient(145deg, #23324a, #101a28 70%); } .entry-avatar-body.preset-esportivo { background: linear-gradient(145deg, #123a54, #071521 70%); }
.city-entry-character-copy { position: relative; z-index: 2; width: min(620px, 100%); padding: 22px 26px; background: linear-gradient(180deg, rgba(8,18,31,.18), rgba(8,18,31,.86)); border: 1px solid rgba(255,255,255,.08); backdrop-filter: blur(10px); border-radius: 20px; box-shadow: 0 25px 60px rgba(0,0,0,.28); }
.city-entry-character-copy h1 { margin: 10px 0 4px; font-size: clamp(34px, 4vw, 58px); line-height: .98; }
.city-entry-character-copy p { color: #9eb0c5; max-width: 550px; }
.entry-nickname { margin: 0 0 12px; color: #62c3ff !important; font-weight: 700; }
.city-entry-panel { padding: clamp(24px, 3vw, 38px); background: rgba(8,16,28,.89); border-color: rgba(61,166,255,.2); box-shadow: 0 30px 70px rgba(0,0,0,.4); backdrop-filter: blur(18px); }
.entry-panel-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 26px; }
.entry-panel-heading h2 { margin: 6px 0 0; font-size: 30px; }
.entry-online-dot { display: inline-flex; align-items: center; gap: 8px; font-size: 11px; letter-spacing: .08em; color: #8cecb5; white-space: nowrap; }
.entry-online-dot i { width: 8px; height: 8px; border-radius: 50%; background: #33db7f; box-shadow: 0 0 14px #33db7f; }
.city-entry-stats, .city-entry-money { display: grid; gap: 10px; margin-bottom: 14px; }
.city-entry-stats { grid-template-columns: repeat(3, 1fr); }
.city-entry-money { grid-template-columns: repeat(2, 1fr); }
.city-entry-stats > div, .city-entry-money > div { padding: 16px; border-radius: 14px; background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.07); }
.city-entry-stats small, .city-entry-money small { display: block; color: #71879f; font-size: 10px; letter-spacing: .12em; margin-bottom: 7px; }
.city-entry-stats strong { font-size: 20px; } .city-entry-money strong { color: #8edaff; font-size: 18px; }
.city-entry-checklist { display: grid; gap: 10px; padding: 18px 0 24px; margin-top: 10px; border-top: 1px solid rgba(255,255,255,.07); border-bottom: 1px solid rgba(255,255,255,.07); }
.city-entry-checklist span { color: #adc0d4; font-size: 14px; } .city-entry-checklist i { display: inline-grid; place-items: center; width: 20px; height: 20px; margin-right: 9px; border-radius: 50%; background: rgba(51,219,127,.12); color: #63e49b; font-style: normal; font-weight: 800; }
.city-entry-action, .city-entry-ready { padding-top: 22px; }
.city-entry-action small { display: block; color: #71879f; text-align: center; margin-top: 10px; }
.city-entry-button { width: 100%; min-height: 54px; font-size: 15px; letter-spacing: .03em; }
.city-entry-ready h3 { margin: 12px 0 5px; } .city-entry-ready p { color: #859ab0; font-size: 14px; }
.city-entry-footer { max-width: 1380px; margin: 24px auto 0; display: flex; justify-content: space-between; color: #60758b; letter-spacing: .08em; }
.city-entry-footer span { color: #8fd7ff; font-weight: 800; }
@media (max-width: 980px) { .city-entry-grid { grid-template-columns: 1fr; } .city-entry-character-card { min-height: 520px; } .city-entry-panel { max-width: 700px; width: 100%; margin: 0 auto; } }
@media (max-width: 640px) { .city-entry-shell { padding-inline: 16px; } .city-entry-topbar { align-items: flex-start; } .city-entry-brand { text-align: left; } .city-entry-grid { min-height: 0; } .city-entry-character-card { min-height: 470px; padding-inline: 0; } .entry-avatar { width: 220px; height: 365px; bottom: 125px; transform: translateX(-50%) scale(.88); transform-origin: bottom center; } .city-entry-character-copy h1 { font-size: 34px; } .entry-panel-heading { flex-direction: column; } .city-entry-stats { grid-template-columns: 1fr 1fr 1fr; } .city-entry-money { grid-template-columns: 1fr; } .city-entry-footer { flex-direction: column; gap: 6px; } }

/* =========================================================
   Neo City • Etapa 22 • Base Babylon.js
   ========================================================= */
.neo-world-page .site-main {
    padding: 0;
}

.world-shell {
    min-height: calc(100vh - 78px);
    background: #030812;
    color: #f5fbff;
}

.world-topbar {
    min-height: 76px;
    padding: 14px clamp(18px, 3vw, 42px);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    border-bottom: 1px solid rgba(89, 190, 255, .16);
    background: rgba(4, 12, 24, .96);
}

.world-topbar > div:first-child {
    display: grid;
    gap: 2px;
}

.world-topbar strong { font-size: 1.04rem; }
.world-topbar small { color: #7f9bb5; }
.world-topbar-actions { display: flex; align-items: center; gap: 12px; }

.world-engine-status {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #9eb8cc;
    font-size: .78rem;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.world-engine-status i {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #25d890;
    box-shadow: 0 0 16px rgba(37, 216, 144, .7);
}

.world-viewport {
    position: relative;
    height: calc(100vh - 154px);
    min-height: 560px;
    overflow: hidden;
}

.world-canvas {
    display: block;
    width: 100%;
    height: 100%;
    outline: none;
    background: #040b16;
}

.world-loading {
    position: absolute;
    inset: 0;
    z-index: 8;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: radial-gradient(circle at center, rgba(8, 37, 64, .92), rgba(3, 8, 18, .98));
    transition: opacity .35s ease, visibility .35s ease;
}

.world-loading.is-hidden { opacity: 0; visibility: hidden; pointer-events: none; }
.world-loading.is-error { color: #ffb9b9; }
.world-loading span { color: #8eabc1; font-size: .9rem; }

.world-loader-ring {
    width: 54px;
    height: 54px;
    border: 3px solid rgba(80, 188, 255, .15);
    border-top-color: #28a9ff;
    border-radius: 50%;
    animation: neoCitySpin .75s linear infinite;
}

@keyframes neoCitySpin { to { transform: rotate(360deg); } }

.world-debug-card {
    position: absolute;
    top: 22px;
    left: 22px;
    z-index: 4;
    width: min(330px, calc(100% - 44px));
    padding: 20px;
    border: 1px solid rgba(71, 183, 255, .2);
    border-radius: 18px;
    background: rgba(4, 14, 28, .78);
    backdrop-filter: blur(14px);
    box-shadow: 0 18px 50px rgba(0, 0, 0, .3);
}

.world-debug-card h2 { margin: 10px 0 7px; font-size: 1.18rem; }
.world-debug-card p { margin: 0 0 16px; color: #8fa9bd; font-size: .88rem; line-height: 1.5; }
.world-debug-card dl { display: grid; gap: 8px; margin: 0; }
.world-debug-card dl div { display: flex; justify-content: space-between; gap: 16px; padding-top: 8px; border-top: 1px solid rgba(255,255,255,.06); }
.world-debug-card dt { color: #6f8ba3; font-size: .78rem; }
.world-debug-card dd { margin: 0; font-size: .78rem; font-weight: 700; }

.world-hint {
    position: absolute;
    left: 50%;
    bottom: 18px;
    z-index: 4;
    transform: translateX(-50%);
    width: max-content;
    max-width: calc(100% - 32px);
    padding: 9px 14px;
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 999px;
    background: rgba(3, 9, 18, .72);
    color: #8fa9bd;
    font-size: .76rem;
    text-align: center;
    backdrop-filter: blur(10px);
}

@media (max-width: 760px) {
    .world-topbar { align-items: flex-start; flex-direction: column; }
    .world-topbar-actions { width: 100%; justify-content: space-between; }
    .world-viewport { height: calc(100vh - 206px); min-height: 500px; }
    .world-debug-card { top: 14px; left: 14px; width: min(290px, calc(100% - 28px)); }
    .world-hint { font-size: .68rem; }
}

/* =========================================================
   Neo City • Etapa 23 • Primeiro Distrito 3D
   ========================================================= */
.world-shell.stage23 .world-viewport { min-height: 620px; }
.world-shell.stage23 .world-canvas { background: linear-gradient(#77b9e6, #d6e9f3); }
.world-city-card {
    position: absolute; top: 20px; left: 20px; z-index: 4;
    width: min(306px, calc(100% - 40px)); padding: 18px;
    border: 1px solid rgba(109,195,255,.28); border-radius: 18px;
    background: rgba(4,16,31,.76); backdrop-filter: blur(14px);
    box-shadow: 0 18px 50px rgba(0,0,0,.24);
}
.world-city-card h2 { margin: 10px 0 3px; font-size: 1.25rem; }
.world-city-card p { margin: 0 0 15px; color: #92a9bc; font-size: .82rem; }
.city-card-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.city-card-grid > div { padding: 9px 10px; border: 1px solid rgba(255,255,255,.07); border-radius: 10px; background: rgba(255,255,255,.035); }
.city-card-grid small { display: block; color: #6e8ba3; font-size: .62rem; letter-spacing: .08em; }
.city-card-grid strong { display: block; margin-top: 2px; font-size: .82rem; }
.world-character-hud {
    position: absolute; right: 20px; bottom: 20px; z-index: 4;
    display: grid; grid-template-columns: auto minmax(150px, 1fr) auto; align-items: center; gap: 12px;
    min-width: 390px; padding: 12px 14px; border: 1px solid rgba(93,184,245,.2); border-radius: 16px;
    background: rgba(4,14,27,.78); backdrop-filter: blur(14px); box-shadow: 0 16px 46px rgba(0,0,0,.24);
}
.hud-avatar { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 13px; background: linear-gradient(145deg,#119cf0,#2746d8); font-size: 1.2rem; font-weight: 900; }
.hud-character-copy { display: grid; gap: 1px; }
.hud-character-copy small, .hud-money small { color: #68849c; font-size: .58rem; letter-spacing: .11em; }
.hud-character-copy strong { font-size: .85rem; }
.hud-character-copy span { color: #8aa1b3; font-size: .68rem; }
.hud-money { padding-left: 14px; border-left: 1px solid rgba(255,255,255,.08); text-align: right; }
.hud-money strong { display: block; color: #7ce4aa; font-size: .88rem; }
.world-location-pill {
    position: absolute; top: 20px; left: 50%; z-index: 4; transform: translateX(-50%);
    padding: 8px 12px; border: 1px solid rgba(255,255,255,.13); border-radius: 999px;
    background: rgba(5,17,31,.66); color: #c6d8e5; backdrop-filter: blur(10px);
    font-size: .67rem; font-weight: 800; letter-spacing: .08em; white-space: nowrap;
}
.world-location-pill span { display: inline-block; width: 7px; height: 7px; margin-right: 7px; border-radius: 50%; background: #36d68a; box-shadow: 0 0 12px rgba(54,214,138,.65); }
.world-shell.stage23 .world-hint { bottom: 22px; left: 20px; transform: none; }
@media (max-width: 820px) {
    .world-location-pill { top: auto; bottom: 84px; }
    .world-character-hud { left: 14px; right: 14px; bottom: 14px; min-width: 0; grid-template-columns: auto 1fr; }
    .hud-money { display: none; }
    .world-shell.stage23 .world-hint { display: none; }
    .world-city-card { top: 14px; left: 14px; width: min(260px, calc(100% - 28px)); }
}
@media (max-width: 520px) {
    .world-city-card { width: 210px; padding: 13px; }
    .city-card-grid { grid-template-columns: 1fr 1fr; }
    .world-location-pill { max-width: calc(100% - 28px); overflow: hidden; text-overflow: ellipsis; }
}

/* =========================================================
   Neo City • Etapa 24 • Céu, Sol, Iluminação e Sombras
   ========================================================= */
.world-shell.stage24 .world-canvas {
    background: linear-gradient(180deg, #4f91c4 0%, #c9e2ef 72%, #dcebdc 100%);
}
.world-shell.stage24 .world-city-card {
    border-color: rgba(117, 205, 255, .34);
    background: linear-gradient(145deg, rgba(4, 18, 35, .82), rgba(8, 29, 50, .72));
}
.world-environment-card {
    position: absolute;
    top: 20px;
    right: 20px;
    z-index: 4;
    display: grid;
    grid-template-columns: repeat(3, minmax(86px, 1fr));
    gap: 8px;
    padding: 10px;
    border: 1px solid rgba(255, 211, 116, .22);
    border-radius: 15px;
    background: rgba(4, 15, 29, .72);
    backdrop-filter: blur(12px);
    box-shadow: 0 14px 38px rgba(0, 0, 0, .20);
}
.world-environment-card > div {
    min-width: 0;
    padding: 8px 10px;
    border-radius: 10px;
    background: rgba(255, 255, 255, .035);
}
.world-environment-card small {
    display: block;
    color: #7892a7;
    font-size: .58rem;
    letter-spacing: .10em;
}
.world-environment-card strong {
    display: block;
    margin-top: 3px;
    color: #ffdfa0;
    font-size: .72rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.world-shell.stage24 .world-location-pill {
    border-color: rgba(255, 213, 127, .16);
}
@media (max-width: 1040px) {
    .world-environment-card { top: auto; right: 20px; bottom: 92px; }
}
@media (max-width: 820px) {
    .world-environment-card { display: none; }
}


/* =========================================================
   Neo City • Etapa 25 • Chão e Estrutura Urbana
   ========================================================= */
.world-shell.stage25 .world-canvas {
    background: linear-gradient(180deg, #4f91c4 0%, #c9e2ef 68%, #83976a 100%);
}
.world-shell.stage25 .world-city-card {
    border-color: rgba(98, 212, 178, .30);
}
.world-shell.stage25 .world-location-pill span {
    background: #57e2a1;
    box-shadow: 0 0 14px rgba(87, 226, 161, .7);
}
