/* (c) 2026 City Nightfall. All rights reserved. No part of this game, its code or its art may be copied or reused without written permission. */
:root{--night-950: #0f0a1c;--night-900: #160f2a;--night-800: #211741;--night-700: #2d2057;--purple: #7b2ff7;--purple-soft: #c9a8ff;--pink: #ff4f8b;--cyan: #3fe0ff;--orange: #ff9a4d;--gold: #ffcf5c;--ink: #f5f2fb;--ink-soft: #b9afd4;--line: rgba(201, 168, 255, .16);--display: "Unbounded", "Poppins", system-ui, sans-serif;--body: "Poppins", "Segoe UI", system-ui, sans-serif;--radius: 22px;--wrap: min(1180px, 100% - 40px)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--night-950);color:var(--ink);font-family:var(--body);line-height:1.55;overflow-x:hidden;-webkit-font-smoothing:antialiased}img{max-width:100%;height:auto;display:block}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}h1,h2,h3,p{margin:0}h2{font-family:var(--display);font-weight:800;font-size:clamp(1.7rem,4.6vw,3.1rem);line-height:1.12;letter-spacing:-.01em;text-wrap:balance}h2 em{font-style:normal;background:linear-gradient(92deg,var(--pink),var(--orange));-webkit-background-clip:text;background-clip:text;color:transparent}h3{font-family:var(--display);font-weight:600;font-size:1.05rem}:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 24px;border-radius:999px;font-weight:700;text-decoration:none;color:#fff;background:linear-gradient(135deg,var(--pink),var(--purple));box-shadow:0 10px 30px -8px #ff4f8ba6,inset 0 1px #ffffff59;transition:transform .18s,box-shadow .18s,filter .18s;white-space:nowrap}.btn:hover{transform:translateY(-2px) scale(1.02);filter:brightness(1.08);box-shadow:0 16px 40px -8px #ff4f8bcc,inset 0 1px #ffffff59}.btn:active{transform:translateY(0) scale(.98)}.btn-big{padding:18px 34px;font-size:1.1rem}.btn-small{padding:9px 18px;font-size:.9rem}.btn-ghost{background:#ffffff12;box-shadow:inset 0 0 0 1.5px #ffffff47;backdrop-filter:blur(6px)}.btn-ghost:hover{box-shadow:inset 0 0 0 1.5px var(--cyan),0 0 24px -4px var(--cyan)}.cta-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.fineprint{color:var(--ink-soft);font-size:.86rem}.kicker{font-weight:700;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan)}.nav{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;gap:18px;padding:12px max(20px,calc((100% - 1180px)/2));transition:background .25s,box-shadow .25s}.nav-solid{background:#0f0a1cd1;backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line)}.brand{display:inline-flex;align-items:center;gap:10px;font-family:var(--display);font-weight:800;font-size:.98rem;letter-spacing:.02em;margin-right:auto}.brand-moon{width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 68% 36%,transparent 46%,var(--gold) 48%);box-shadow:0 0 16px #ffcf5c99}.nav-links{display:flex;gap:4px}.nav-links button{padding:8px 12px;border-radius:999px;font-weight:600;font-size:.9rem;color:var(--ink-soft);transition:color .15s,background .15s}.nav-links button:hover{color:#fff;background:#ffffff14}@media(max-width:760px){.nav-links{display:none}}.hero{position:relative;min-height:min(100svh,940px);display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;isolation:isolate}.sky{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#1a0f3d,#4a1a6e 34%,#c2416b 62%,#ff9a4d 82%,#ffd08a);animation:dusk 9s ease-in forwards}.sky:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#07051a,#150c33 40%,#2a1157 72%,#4b1a6b);opacity:0;animation:night 9s ease-in forwards}@keyframes night{to{opacity:1}}@keyframes dusk{to{filter:saturate(1.1)}}.stars{position:absolute;inset:0;z-index:1;opacity:0;animation:night 9s 2s ease-in forwards;background-image:radial-gradient(1.5px 1.5px at 12% 18%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 28% 9%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 44% 22%,#ffe9c9 50%,transparent 51%),radial-gradient(1px 1px at 61% 12%,#fff 50%,transparent 51%),radial-gradient(2px 2px at 77% 26%,#cfe9ff 50%,transparent 51%),radial-gradient(1px 1px at 88% 8%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 6% 36%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 36% 38%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 69% 40%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 94% 33%,#ffe9c9 50%,transparent 51%),radial-gradient(1px 1px at 52% 5%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 19% 30%,#cfe9ff 50%,transparent 51%)}.stars:after{content:"";position:absolute;inset:0;background-image:inherit;transform:translate(4%,7%) scale(1.3);opacity:.6;animation:twinkle 3.4s ease-in-out infinite alternate}@keyframes twinkle{to{opacity:.15}}.sun{position:absolute;z-index:1;left:50%;bottom:30%;width:clamp(180px,26vw,340px);aspect-ratio:1;border-radius:50%;transform:translate(-50%);background:radial-gradient(circle,#fff3c4,#ffcf5c 38%,#ff7a4d 70%,#ff4f8b00 72%);box-shadow:0 0 120px 40px #ff9a4d73;animation:sunset 9s cubic-bezier(.5,0,.8,.6) forwards}@keyframes sunset{70%{opacity:.5}to{bottom:-34%;opacity:0}}.skyline{position:absolute;z-index:2;left:-2%;right:-2%;bottom:0}.skyline-far{height:44%;opacity:.55;background:linear-gradient(#1b0f3d,#1b0f3d) 2% 100% / 7% 62% no-repeat,linear-gradient(#1b0f3d,#1b0f3d) 11% 100% / 5% 84% no-repeat,linear-gradient(#1b0f3d,#1b0f3d) 18% 100% / 9% 52% no-repeat,linear-gradient(#1b0f3d,#1b0f3d) 30% 100% / 6% 92% no-repeat,linear-gradient(#1b0f3d,#1b0f3d) 38% 100% / 8% 60% no-repeat,linear-gradient(#1b0f3d,#1b0f3d) 49% 100% / 5% 76% no-repeat,linear-gradient(#1b0f3d,#1b0f3d) 57% 100% / 10% 56% no-repeat,linear-gradient(#1b0f3d,#1b0f3d) 70% 100% / 6% 88% no-repeat,linear-gradient(#1b0f3d,#1b0f3d) 78% 100% / 9% 64% no-repeat,linear-gradient(#1b0f3d,#1b0f3d) 90% 100% / 7% 80% no-repeat,linear-gradient(#1b0f3d,#1b0f3d) 98% 100% / 6% 54% no-repeat}.skyline-near{height:34%;background:repeating-linear-gradient(90deg,transparent 0 10px,rgba(255,207,92,.75) 10px 15px,transparent 15px 26px) 4% 100% / 9% 58% no-repeat,linear-gradient(#0d0824,#0d0824) 4% 100% / 9% 66% no-repeat,repeating-linear-gradient(90deg,transparent 0 8px,rgba(63,224,255,.6) 8px 12px,transparent 12px 22px) 17% 100% / 7% 80% no-repeat,linear-gradient(#0d0824,#0d0824) 17% 100% / 7% 90% no-repeat,repeating-linear-gradient(90deg,transparent 0 12px,rgba(255,79,139,.6) 12px 17px,transparent 17px 30px) 29% 100% / 11% 44% no-repeat,linear-gradient(#0d0824,#0d0824) 29% 100% / 11% 52% no-repeat,repeating-linear-gradient(90deg,transparent 0 9px,rgba(255,207,92,.7) 9px 13px,transparent 13px 24px) 68% 100% / 8% 70% no-repeat,linear-gradient(#0d0824,#0d0824) 68% 100% / 8% 78% no-repeat,repeating-linear-gradient(90deg,transparent 0 11px,rgba(63,224,255,.55) 11px 16px,transparent 16px 28px) 81% 100% / 10% 50% no-repeat,linear-gradient(#0d0824,#0d0824) 81% 100% / 10% 58% no-repeat,repeating-linear-gradient(90deg,transparent 0 8px,rgba(255,79,139,.55) 8px 12px,transparent 12px 22px) 95% 100% / 7% 84% no-repeat,linear-gradient(#0d0824,#0d0824) 95% 100% / 7% 94% no-repeat;-webkit-mask-image:repeating-linear-gradient(180deg,#000 0 9px,rgba(0,0,0,.72) 9px 16px);mask-image:repeating-linear-gradient(180deg,#000 0 9px,#000000b8 9px 16px)}.hero-copy{width:var(--wrap);margin:0 auto;padding:92px 0 10px;text-align:center;display:grid;justify-items:center;gap:16px;position:relative;z-index:3}.eyebrow{display:inline-flex;align-items:center;gap:9px;padding:7px 15px;border-radius:999px;font-size:.82rem;font-weight:600;background:#0f0a1c80;box-shadow:inset 0 0 0 1px #ffffff2e;backdrop-filter:blur(8px)}.dot{width:8px;height:8px;border-radius:50%;background:#45e08a;box-shadow:0 0 10px #45e08a;animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{50%{opacity:.35}}.title{font-family:var(--display);font-weight:900;line-height:.92;text-transform:uppercase;display:grid}.title-city{font-size:clamp(2.6rem,9.5vw,6.6rem);color:#fff;text-shadow:0 4px 0 rgba(15,10,28,.35),0 0 40px rgba(255,255,255,.35);letter-spacing:.24em;margin-right:-.24em}.title-night{font-size:clamp(2.9rem,12vw,8.2rem);color:#ffe3f0;letter-spacing:-.02em;text-shadow:0 0 6px #fff,0 0 18px var(--pink),0 0 46px var(--pink),0 0 90px var(--purple);animation:flicker 9s linear forwards}@keyframes flicker{0%,30%{color:#5c3a6e;text-shadow:none}32%{color:#ffe3f0;text-shadow:0 0 18px var(--pink)}34%,46%{color:#5c3a6e;text-shadow:none}48%,52%{color:#ffe3f0;text-shadow:0 0 6px #fff,0 0 18px var(--pink)}54%,60%{color:#6b4580;text-shadow:none}62%,to{color:#ffe3f0;text-shadow:0 0 6px #fff,0 0 18px var(--pink),0 0 46px var(--pink),0 0 90px var(--purple)}}.lede{max-width:620px;font-size:clamp(1rem,2.1vw,1.22rem);color:#f3ecff;text-shadow:0 2px 14px rgba(15,10,28,.7);text-wrap:balance}.hero .cta-row{justify-content:center}.clock{position:absolute;z-index:4;top:78px;right:max(20px,calc((100% - 1180px)/2));display:grid;justify-items:end;padding:9px 14px;border-radius:14px;background:#0f0a1c8c;box-shadow:inset 0 0 0 1px #ffffff29;backdrop-filter:blur(8px)}.clock-label{font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.clock-time{font-family:var(--display);font-weight:800;font-size:1.25rem;color:var(--gold);font-variant-numeric:tabular-nums}@media(max-width:760px){.clock{display:none}}.street{position:relative;z-index:3;margin-top:8px}.cast{display:block;width:100%;height:clamp(190px,29vh,290px)}.kerb{height:26px;background:linear-gradient(180deg,#ffcf5c 0 5px,#3a2b63 5px 100%);box-shadow:0 -30px 60px 10px #0f0a1c8c;position:relative;z-index:-1;margin-top:-24px}.strip{width:var(--wrap);margin:0 auto;display:grid;grid-template-columns:repeat(5,1fr);gap:10px;padding:34px 0 10px}.strip div{display:grid;justify-items:center;padding:18px 8px;border-radius:18px;background:linear-gradient(180deg,#7b2ff729,#7b2ff70a);box-shadow:inset 0 0 0 1px var(--line);text-align:center}.strip b{font-family:var(--display);font-weight:800;font-size:clamp(1.6rem,4vw,2.5rem);background:linear-gradient(180deg,#fff,var(--purple-soft));-webkit-background-clip:text;background-clip:text;color:transparent}.strip span{font-size:.82rem;color:var(--ink-soft)}@media(max-width:760px){.strip{grid-template-columns:repeat(2,1fr)}.strip div:last-child{grid-column:1 / -1}}.section{width:var(--wrap);margin:0 auto;padding:clamp(64px,10vw,120px) 0 0;scroll-margin-top:30px}.section-head{max-width:760px;display:grid;gap:14px;margin-bottom:34px}.section-head p:last-child,.split-copy>p{color:var(--ink-soft);font-size:1.04rem}.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}.reveal.in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.sky,.sky:after,.stars,.sun,.title-night{animation-duration:.01s;animation-delay:0s}}.daynight{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:0 30px 80px -30px #7b2ff7b3,inset 0 0 0 1px var(--line);aspect-ratio:16 / 9;background:var(--night-800)}.daynight>img,.daynight-night img{width:100%;height:100%;object-fit:cover}.daynight-night{position:absolute;inset:0;clip-path:inset(0 0 0 50%)}.daynight-night:after{content:"";position:absolute;inset:0;background:radial-gradient(60% 50% at 62% 38%,rgba(255,79,139,.2),transparent 70%),linear-gradient(180deg,#0f0a3c47,#0f0a1c1a);mix-blend-mode:screen}.daynight-handle{position:absolute;top:0;bottom:0;left:50%;width:0;display:grid;align-content:center;justify-items:center;pointer-events:none}.daynight-handle:before{content:"";position:absolute;top:0;bottom:0;width:3px;background:#fff;box-shadow:0 0 18px var(--cyan)}.daynight-handle i{width:46px;height:46px;border-radius:50%;background:#fff;box-shadow:0 6px 24px #00000073,0 0 0 6px #ffffff38;position:relative}.daynight-handle i:before{content:"\2039  \203a";position:absolute;inset:0;display:grid;place-items:center;color:var(--night-900);font-weight:800;letter-spacing:2px}.daynight-handle span{position:absolute;top:14px;font-size:1.3rem;text-shadow:0 2px 8px rgba(0,0,0,.6)}.daynight-handle span:first-child{right:14px}.daynight-handle span:last-child{left:14px}.daynight-range{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}.tag{position:absolute;bottom:14px;padding:5px 12px;border-radius:999px;font-weight:700;font-size:.8rem;background:#0f0a1cb3;backdrop-filter:blur(6px);pointer-events:none}.tag-left{left:14px;color:var(--gold)}.tag-right{right:14px;color:var(--cyan)}.hustles{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.hustle{position:relative;padding:24px 22px 22px;border-radius:var(--radius);background:linear-gradient(180deg,#211741e6,#160f2ae6);box-shadow:inset 0 0 0 1px var(--line);display:grid;gap:12px;align-content:start;overflow:hidden;transition:transform .25s,box-shadow .25s,opacity .7s}.hustle:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--c1),var(--c2))}.hustle:after{content:"";position:absolute;width:220px;height:220px;right:-90px;top:-90px;border-radius:50%;background:radial-gradient(circle,var(--c1),transparent 68%);opacity:.18;transition:opacity .25s,transform .4s}.hustle:hover{transform:translateY(-6px);box-shadow:inset 0 0 0 1px var(--c1),0 24px 50px -24px var(--c1)}.hustle:hover:after{opacity:.38;transform:scale(1.25)}.hustle-icon{font-size:2rem;line-height:1}.hustle p{color:var(--ink-soft);font-size:.93rem}.hustle ol{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:7px;counter-reset:rung}.hustle li{counter-increment:rung;display:flex;align-items:center;gap:10px;font-size:.86rem;font-weight:600;padding:7px 10px;border-radius:10px;background:#ffffff0b}.hustle li:before{content:counter(rung);display:grid;place-items:center;width:20px;height:20px;border-radius:50%;font-size:.7rem;font-weight:800;color:var(--night-950);background:linear-gradient(135deg,var(--c1),var(--c2));flex:none}.hustle li:last-child{background:linear-gradient(90deg,color-mix(in srgb,var(--c1) 26%,transparent),transparent)}.hustle:nth-child(2){transition-delay:.08s}.hustle:nth-child(3){transition-delay:.16s}.hustle:nth-child(4){transition-delay:.24s}@media(max-width:1000px){.hustles{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.hustles{grid-template-columns:1fr}}.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(24px,5vw,60px);align-items:center}.split-copy{display:grid;gap:16px}.ticks{list-style:none;margin:0;padding:0;display:grid;gap:10px}.ticks li{position:relative;padding-left:32px;font-weight:500}.ticks li:before{content:"$";position:absolute;left:0;top:1px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:.78rem;font-weight:800;color:var(--night-950);background:linear-gradient(135deg,#8fdcc0,#45e08a)}.shot{margin:0;border-radius:var(--radius);overflow:hidden;box-shadow:0 40px 90px -40px #3fe0ff99,inset 0 0 0 1px var(--line)}.tilt{transform:perspective(1100px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, -5deg));transition:transform .25s ease-out}@media(max-width:900px){.split{grid-template-columns:1fr}.tilt{transform:none}}.places{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:clamp(220px,24vw,300px);gap:14px}.place{position:relative;margin:0;border-radius:var(--radius);overflow:hidden;background:var(--night-800);box-shadow:inset 0 0 0 1px var(--line)}.place-wide{grid-column:span 2}.place img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.8,.2,1),filter .4s}.place:hover img{transform:scale(1.09);filter:saturate(1.15)}.place figcaption{position:absolute;inset:auto 0 0;padding:44px 18px 16px;display:grid;gap:2px;background:linear-gradient(180deg,transparent,rgba(15,10,28,.92))}.place b{font-family:var(--display);font-weight:600;font-size:1.02rem}.place span{font-size:.86rem;color:var(--ink-soft)}@media(max-width:760px){.places{grid-template-columns:1fr;grid-auto-rows:230px}.place-wide{grid-column:auto}}.life{display:grid;grid-template-columns:.8fr 1.2fr;gap:18px;align-items:stretch}.needs{display:grid;gap:14px;padding:26px;border-radius:var(--radius);background:#fdfbff;color:var(--night-900);box-shadow:0 30px 70px -40px #c9a8ffe6;align-content:center}.need{display:grid;gap:6px;font-weight:700;font-size:.92rem}.need i{display:block;height:12px;border-radius:999px;background:#e8e1f6;position:relative;overflow:hidden}.need i:after{content:"";position:absolute;inset:0;width:0;border-radius:inherit;background:linear-gradient(90deg,color-mix(in srgb,var(--c) 70%,#fff),var(--c));transition:width 1.4s cubic-bezier(.2,.8,.2,1) .2s}.life.in .need i:after{width:var(--v)}.cards{display:grid;gap:12px}.cards article{padding:20px 22px;border-radius:18px;background:#211741cc;box-shadow:inset 0 0 0 1px var(--line);display:grid;gap:6px;transition:transform .2s,box-shadow .2s}.cards article:hover{transform:translate(6px);box-shadow:inset 0 0 0 1px var(--pink)}.cards p{color:var(--ink-soft);font-size:.95rem}@media(max-width:760px){.life{grid-template-columns:1fr}}.final{position:relative;margin-top:clamp(70px,10vw,130px);padding:clamp(70px,11vw,140px) 20px;display:grid;justify-items:center;gap:22px;text-align:center;overflow:hidden;isolation:isolate}.final-sky{position:absolute;inset:0;z-index:-1;background:radial-gradient(70% 90% at 50% 110%,rgba(255,79,139,.5),transparent 60%),radial-gradient(50% 70% at 50% 120%,rgba(255,154,77,.5),transparent 60%),linear-gradient(180deg,var(--night-950),#1d0f47)}.final-sky .stars{opacity:.9;animation:none}.final h2{font-size:clamp(2.1rem,7vw,4.6rem)}.foot{display:flex;justify-content:space-between;gap:16px;padding:22px max(20px,calc((100% - 1180px)/2));color:var(--ink-soft);font-size:.86rem;border-top:1px solid var(--line)}.foot a{color:var(--ink-soft)}.foot-links{display:flex;gap:18px}
