@import url('https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@400;600;700;800;900&family=Outfit:wght@400;500;600;700;800&display=swap');
:root{font-family:'Nunito Sans',sans-serif;color:#263464;background:#f5f5fa;font-synthesis:none;--navy:#273674;--gold:#e5a051;--green:#39856e;--amber:#ae7327;--red:#b34e57}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #de984b;outline-offset:4px}button{transition:transform .18s,box-shadow .18s}button:hover{transform:translateY(-2px)}button:active{transform:translateY(2px)}.topbar{height:88px;background:#26336b;display:flex;gap:30px;align-items:center;padding:0 4%;color:white;border-bottom:4px solid #1d295b}.brand img{display:block;width:94px;height:51px;object-fit:contain}.brand-divider{height:28px;width:1px;background:#ffffff28}.game-name{font:500 10px Outfit,sans-serif;letter-spacing:2px;color:#b9c2e4;margin-right:auto}.topbar>a:not(.brand){font-size:12px;color:#cbd2ed;text-decoration:none;padding:12px 0}.topbar>a.nav-active{color:#f4c689;border-bottom:2px solid #e9a44f}.player{display:flex;gap:10px;align-items:center;font-size:12px;border-left:1px solid #ffffff26;padding-left:28px}.player small{display:block;color:#a9b4d9;font-size:9px;margin-top:4px}.player-icon{width:36px;height:36px;display:grid;place-items:center;background:#e4a65c;border:3px solid #f8d49d;color:#29376d;border-radius:12px;font-weight:900}main{max-width:1560px;margin:auto;padding:32px 4% 20px}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:25px}.eyebrow{font-size:9px;font-weight:900;letter-spacing:1.8px;color:#8b92ad}h1,h2,h3{font-family:Outfit,sans-serif}h1{font-size:clamp(30px,3vw,43px);font-weight:600;line-height:1.12;letter-spacing:-1.2px;margin:10px 0}h1 em{font-style:normal;color:#bd854b}p{font-size:12px;color:#7f86a0;line-height:1.6}h2{font-weight:600;font-size:19px;margin:0}.team-level{display:flex;gap:18px;align-items:center;padding:22px 28px;border:1px solid #e2d7c9;background:#fffaf1;border-radius:18px;box-shadow:0 4px 0 #e8dfd2;min-width:315px}.level-medal{background:linear-gradient(145deg,#f8d299,#db9645);clip-path:polygon(50% 0,95% 25%,95% 75%,50% 100%,5% 75%,5% 25%);width:64px;height:73px;display:flex;flex-direction:column;align-items:center;justify-content:center;font:800 30px Outfit,sans-serif;color:#78552c}.level-medal small{font:900 8px 'Nunito Sans',sans-serif;letter-spacing:1px}.team-level>div>span{display:block;font-size:9px;letter-spacing:1.6px;color:#9b845f;font-weight:800}.team-level strong{font:600 27px Outfit,sans-serif;display:block;margin-top:3px}.team-level strong small{font-size:13px;color:#b28b55}.team-level>div>small{font-size:8px;color:#a0947d}.xp-track{height:6px;background:#eadfc9;border-radius:10px;margin:7px 0;width:100%;overflow:hidden}.xp-track i{display:block;height:100%;background:#e6a458;border-radius:10px}.demo-strip{background:#eceef8;border:1px solid #e0e3f0;padding:10px 15px;border-radius:8px;display:flex;align-items:center;gap:12px;font-size:10px;color:#7b83a4}.demo-strip>span{font-size:8px;letter-spacing:1px;font-weight:900;color:#626e9f}.demo-strip button{margin-left:auto;border:0;background:none;color:#727da3;font-size:10px;white-space:nowrap}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:25px 0 14px}.section-heading h2{font-size:16px}.section-heading h2>span{font:700 9px 'Nunito Sans',sans-serif;background:#e6e9f3;border-radius:5px;padding:4px 7px;margin-left:8px;color:#7c85a4}.filters{display:flex;gap:8px}.filters input,.filters select{font-size:10px;border:1px solid #dee2ed;background:white;border-radius:8px;padding:9px 11px;color:#707c9a}.filters input{width:190px}.project-cards{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.project-card{text-align:left;border:1px solid #e0e3ee;border-bottom:4px solid #dce0ed;border-radius:13px;background:#fff;padding:14px 13px;color:#303b67}.project-card.selected{background:#303f7f;color:#fff;border-color:#303f7f;border-bottom-color:#1c285c;box-shadow:0 6px 16px #27367425}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:5px}.mini-building{font-size:21px;color:#999fc3}.status{display:inline-flex;align-items:center;gap:4px;font-size:8px;font-weight:800;padding:4px 6px;border-radius:5px;background:#edf5ee;color:var(--green);white-space:nowrap}.status:before{content:'';width:4px;height:4px;border-radius:50%;background:currentColor}.status.amber{background:#fcf0db;color:var(--amber)}.status.red{background:#fbe9e8;color:var(--red)}.selected .status{background:#ffffff18;color:#b6e2cf}.selected .status.amber{color:#ffda96}.selected .status.red{color:#ffb4b8}.project-card>strong{display:block;font:500 15px Outfit,sans-serif}.city{display:block;font-size:9px;color:#939ab3;margin-top:5px}.selected .city{color:#b3bddd}.card-progress{display:block;height:5px;background:#e9ebf3;border-radius:5px;margin:13px 0 8px;overflow:hidden}.card-progress i{height:100%;display:block;background:#aaaecb;border-radius:5px}.selected .card-progress{background:#526096}.selected .card-progress i{background:#e9ae65}.card-bottom{display:flex;justify-content:space-between;font-size:9px;color:#8d97b2}.selected .card-bottom{color:#c6cfef}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:18px;margin-top:25px;scroll-margin-top:20px}.world-panel{border:1px solid #dce2ef;border-bottom:5px solid #d5ddea;border-radius:18px;background:#fff;overflow:hidden}.world-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 23px}.world-header h2{font-size:21px;margin-top:5px}.world-header .eyebrow{font-size:8px}.world-switch{display:flex;background:#edf0f8;border-radius:9px;padding:4px}.world-switch button{border:0;background:transparent;font-size:10px;font-weight:800;color:#8791b1;padding:9px 12px;border-radius:6px}.world-switch button.active{background:#fff;color:#344578;box-shadow:0 2px 4px #34457818}.world-scroll{overflow-x:auto;background:#dceafa}.world-canvas{position:relative;aspect-ratio:1000/550;min-width:660px;overflow:hidden}.terrain{position:absolute;inset:0;width:100%;height:100%}.map-caption{position:absolute;top:6%;left:4%;display:flex;flex-direction:column;gap:4px;color:#657591}.map-caption span{font-size:8px;letter-spacing:2px;font-weight:800}.map-caption strong{font:600 20px Outfit,sans-serif;color:#354d75}.map-caption small{font-size:9px}.map-node{position:absolute;transform:translate(-50%,-25%);width:132px;border:0;background:transparent;display:flex;align-items:center;flex-direction:column;padding:0;color:#6d7c92;z-index:1}.map-node:hover{transform:translate(-50%,-30%)}.node-disc{display:grid;place-items:center;width:50px;height:50px;border-radius:50%;background:#e8ebec;border:4px solid #fbfcf5;box-shadow:0 6px 0 #a7b7b7,0 10px 13px #293a6533;color:#8f9da7;font:700 19px Outfit,sans-serif}.won .node-disc{background:#73a991;box-shadow:0 6px 0 #4b7866,0 10px 13px #293a6533;color:white}.now .node-disc{background:#efb665;border-color:#fff0c1;box-shadow:0 6px 0 #bc803b,0 0 0 8px #f3bc5730,0 10px 15px #293a6520;color:#7c5129;width:62px;height:62px;animation:pulse 2.5s ease-in-out infinite}.node-title{margin-top:12px;padding:5px 9px;border-radius:7px;background:#fffffff2;box-shadow:0 3px 0 #71859320;font-size:10px;font-weight:900;color:#405173;max-width:135px}.map-node small{font-size:7px;letter-spacing:.7px;margin-top:5px;font-weight:900;color:#668375}.map-node.now small{color:#9e7137;background:#fff2d9;padding:4px 7px;border-radius:5px}.map-legend{display:flex;gap:18px;align-items:center;padding:14px 22px;font-size:9px;color:#8691aa}.map-legend>span{display:flex;align-items:center;gap:5px}.map-legend i{height:7px;width:7px;border-radius:50%;background:#d1d8df}.map-legend .complete-dot{background:#75a78f}.map-legend .current-dot{background:#eeb263}.map-legend small{margin-left:auto;font-size:8px}.mission-panel{background:#293972;border:1px solid #213066;border-bottom:5px solid #1b2757;border-radius:18px;color:white;padding:22px;display:flex;align-items:flex-start;flex-direction:column;position:relative;overflow:hidden}.mission-panel:before{content:'';position:absolute;width:180px;height:180px;border:1px solid #ffffff08;border-radius:50%;right:-90px;top:30px;box-shadow:0 0 0 30px #ffffff03,0 0 0 60px #ffffff02;pointer-events:none}.mission-tag{color:#eac082;font-size:9px;letter-spacing:1px;font-weight:900}.mission-orb{font-size:39px;display:grid;place-items:center;background:#3b4c8a;box-shadow:0 4px 0 #1d2b5c;width:72px;height:72px;border-radius:22px;color:#ebbd7d;margin:24px 0}.mission-panel .eyebrow{font-size:8px;color:#a6b2d7;letter-spacing:.7px}.mission-panel h2{font-size:26px;line-height:1.1;margin-top:10px}.mission-panel p{font-size:11px;color:#b2bedc}.reward{margin-top:auto;width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;border-top:1px solid #ffffff16;padding:16px 0}.reward>span{font-size:7px;letter-spacing:.8px;color:#a2aed3}.reward strong{font:600 18px Outfit,sans-serif;color:#f4c17c;white-space:nowrap}.primary{display:flex;justify-content:center;gap:20px;align-items:center;padding:13px 16px;background:#ecb163;color:#523d2d;border:1px solid #f2c583;border-bottom:4px solid #b87d39;border-radius:9px;font-size:12px;font-weight:900}.mission-panel .primary{width:100%;justify-content:space-between}.mission-hint{font-size:8px;color:#a8b4d3;line-height:1.6;text-align:center;margin-top:10px;width:100%}.mission-state{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:18px;border-top:1px solid #ffffff17;padding-top:14px}.mission-state>span:last-child{font-size:8px;color:#9cadd3}.trophies{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-top:30px}.trophies h2{margin-top:8px;font-size:22px}.trophies p{font-size:10px}#achievements{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.trophy{border:1px solid #e1dfd7;border-bottom:4px solid #e2ddd1;background:#fffdf7;border-radius:12px;min-width:133px;padding:14px 12px;text-align:center}.trophy>span{display:grid;place-items:center;width:38px;height:38px;background:#f9eacb;color:#bc9454;font-size:24px;border:1px solid #e9d4ae;border-radius:50%;margin:auto auto 8px}.trophy strong{display:block;font:500 12px Outfit,sans-serif}.trophy small{font-size:7px;color:#a7a08f;display:block;margin-top:4px}.trophy b{display:block;font-size:6px;letter-spacing:1px;color:#b38e51;margin-top:9px}.trophy:not(.unlocked){filter:grayscale(1);opacity:.6}footer{display:flex;align-items:center;gap:20px;border-top:1px solid #dfe2ed;margin-top:32px;padding-top:23px;font-size:9px;color:#9299af;line-height:1.6}footer img{width:70px;height:auto}footer a{margin-left:auto;color:#7584b0;text-decoration:none}dialog{border:1px solid #d4dced;border-bottom:6px solid #cad3e5;border-radius:20px;padding:30px;color:#303e6d;width:min(530px,calc(100% - 30px));max-height:90vh;box-shadow:0 25px 100px #10234d55}dialog::backdrop{background:#18295799;backdrop-filter:blur(5px)}.close{position:absolute;right:15px;top:15px;background:#edf0f7;border:0;border-radius:50%;width:29px;height:29px;color:#75809f;font-size:21px}.detail-medal{margin:22px 0 16px;background:#fff0d4;color:#bf883f;width:60px;height:60px;border-radius:17px;display:grid;place-items:center;font-size:30px;box-shadow:0 4px 0 #e5c896}#detail-title{font-size:28px}.detail-reward{color:#b88b47;font-size:12px;font-weight:900;margin:15px 0 22px}.note-label{display:block;font-size:12px;font-weight:900}.note-label span{display:block;color:#9ca2b9;font-size:10px;font-weight:400;margin-top:3px}textarea{width:100%;height:90px;margin-top:10px;padding:12px;border:1px solid #d9dfed;border-radius:10px;resize:vertical;font-size:12px;color:#485682}.status-select{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11px;margin:15px 0 24px}.status-select select{padding:8px;border:1px solid #dce1ec;border-radius:7px;background:#f7f8fc;color:#56678c}.detail-actions,.dialog-actions{display:flex;gap:10px;justify-content:flex-end}.secondary{border:1px solid #dce1ec;border-bottom:3px solid #dce1ec;border-radius:8px;padding:11px 13px;background:#f7f8fc;color:#6a789b;font-size:11px;font-weight:800}.detail-disclaimer{font-size:9px;margin-top:18px}.reopen{background:#eef0f7;color:#7983a2;border-color:#dce1ef}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:14px 22px;border-radius:10px;background:#26356d;color:#fff;font-size:12px;box-shadow:0 5px 25px #1b2d5555;opacity:0;pointer-events:none;transition:opacity .2s;z-index:30}#toast.visible{opacity:1}#celebration{position:fixed;inset:0;display:none;place-items:center;background:#1f2d6380;backdrop-filter:blur(4px);z-index:20}#celebration.show{display:grid}.celebration-card{width:min(390px,90vw);background:#fffcf4;border:3px solid #f3d18e;border-bottom:9px solid #dcb578;border-radius:24px;text-align:center;padding:30px;box-shadow:0 20px 100px #111e5599;z-index:1;animation:pop .4s ease-out}.celebration-card>span{display:block;color:#d49a4d;font-size:60px}.celebration-card small{display:block;font-size:10px;font-weight:900;letter-spacing:2px;color:#a5834f}.celebration-card strong{display:block;font:600 28px Outfit,sans-serif;margin:15px 0}.celebration-card b{font:700 35px Outfit,sans-serif;color:#d2994b}.celebration-card button{background:#303f7b;border:0;border-bottom:4px solid #1e2b5f;color:white;padding:12px 20px;border-radius:10px;font-size:12px;font-weight:900}.confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none}.confetti i{position:absolute;left:var(--x);top:-20px;width:9px;height:15px;background:var(--color);animation:fall 2.5s var(--delay) ease-in infinite;transform:rotate(var(--r))}.empty{grid-column:1/-1;padding:20px}@keyframes pulse{50%{box-shadow:0 6px 0 #bc803b,0 0 0 13px #f3bc5712,0 10px 15px #293a6520}}@keyframes pop{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes fall{to{top:105%;transform:rotate(calc(var(--r) + 180deg))}}
@media(min-width:1500px){.game-layout{grid-template-columns:minmax(0,1fr) 290px}.mission-panel{padding:28px}.mission-panel h2{font-size:30px}}
@media(max-width:1150px){.game-name,.brand-divider{display:none}.topbar{gap:22px}.brand{margin-right:auto}.project-cards{grid-template-columns:repeat(3,1fr)}.game-layout{grid-template-columns:minmax(0,1fr) 220px}.world-header{flex-direction:column;align-items:flex-start}.trophies{flex-direction:column;align-items:flex-start}#achievements{width:100%}.map-legend small{display:none}.team-level{min-width:280px;padding:18px}.world-canvas{min-width:660px}}
@media(max-width:760px){.topbar{height:72px;padding:0 20px;gap:15px}.brand img{width:77px;height:42px}.topbar>a:not(.brand){font-size:10px}.topbar>a[href='#portfolio']{display:none}.player{padding-left:10px;border:0}.player>div{display:none}.player-icon{height:30px;width:30px;font-size:10px}.heading{display:block}main{padding:24px 16px}.heading .eyebrow{font-size:8px;letter-spacing:1px}h1{font-size:34px}.team-level{margin-top:20px;padding:15px 20px}.team-level>div:last-child{flex:1}.team-level strong{font-size:23px}.level-medal{height:60px;width:53px;font-size:25px}.demo-strip{flex-wrap:wrap;font-size:9px;gap:6px}.demo-strip>span{width:100%}.demo-strip button{padding:0}.section-heading{align-items:flex-start;flex-direction:column;gap:12px}.filters{width:100%}.filters input{width:55%}.filters select{width:45%}.project-cards{grid-template-columns:repeat(2,1fr);gap:10px}.project-card{padding:12px}.game-layout{grid-template-columns:1fr}.world-header{padding:17px;flex-direction:row;align-items:center}.world-header h2{font-size:19px}.world-switch button{font-size:8px;padding:8px}.world-header .eyebrow{font-size:6px;letter-spacing:.8px}.world-canvas{min-width:660px}.world-scroll{position:relative}.map-legend{font-size:8px;padding:13px;gap:13px}.mission-panel{padding:22px}.mission-orb{margin:18px 0;width:55px;height:55px;font-size:28px}.mission-panel h2{font-size:25px}.mission-panel p{max-width:400px}.reward{margin-top:10px}.mission-hint{font-size:9px}.mission-state{margin-top:12px}#achievements{grid-template-columns:repeat(2,1fr)}.trophy{min-width:0}.trophy small{font-size:8px}.trophy b{font-size:7px}.trophy strong{font-size:14px}.trophies{margin-top:25px}footer{gap:15px;flex-wrap:wrap}footer span{flex:1;font-size:8px}footer a{margin:0}.detail-actions{flex-direction:column}.detail-actions .primary{order:-1}.status-select{align-items:flex-start;flex-direction:column}.status-select select{width:100%}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
