:root{color:#30333a;background:#eef1f6;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden}button{border:0;background:none;color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.app-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.phone-frame{position:relative;width:min(100%,430px);height:min(920px,calc(100vh - 48px));overflow:hidden;border:1px solid #dde1e8;border-radius:28px;background:#fff;box-shadow:0 30px 70px #1e253829}.top-bar,.page-title{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;border-bottom:1px solid #edf0f4;background:#fff}.page-title>button{width:44px;height:44px;display:grid;place-items:center;border-radius:50%}.page-title>button:active{transform:scale(.96)}.brand-mark{position:relative;width:auto;height:44px;flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;border-radius:999px}.brand-mark span{width:28px;height:28px;background:linear-gradient(36deg,#28d6d7 0,#28d6d7 18%,#4b8dff 18%,#4b8dff 36%,#7b61ff 36%,#7b61ff 54%,#e83ea7 54%,#e83ea7 72%,#ffd34d 72%,#ffd34d);clip-path:polygon(50% 2%,62% 34%,96% 35%,69% 56%,79% 91%,50% 70%,21% 91%,31% 56%,4% 35%,38% 34%);filter:drop-shadow(0 5px 9px rgba(232,62,167,.22))}.brand-mark strong{color:#252932;font-size:21px;font-weight:900;letter-spacing:0}.top-actions{display:flex;align-items:center;gap:12px;color:#41444a}.top-actions button{width:42px;height:42px;display:grid;place-items:center;border-radius:50%}.top-actions button:active,.quick-actions button:active,.mission-grid button:active,.vote-button:active,.selected-pick button:active{transform:scale(.96)}.screen{height:calc(100% - 166px);overflow-y:auto;overflow-x:hidden;scrollbar-width:none;background:linear-gradient(180deg,#fff,#f8fafc)}.screen::-webkit-scrollbar{display:none}.view{min-height:100%;padding-bottom:26px}.campaign-card img,.mission-thumb img{width:100%;height:100%;object-fit:cover;display:block}.main-banner{position:relative;height:122px;overflow:hidden;display:flex;align-items:center;justify-content:space-between;padding:18px 26px;background:linear-gradient(105deg,rgba(23,219,213,.76) 0 34%,transparent 34% 100%),linear-gradient(18deg,rgba(120,85,255,.78) 0 46%,transparent 46% 100%),radial-gradient(circle at 82% 18%,rgba(232,62,167,.95),transparent 12%),radial-gradient(circle at 70% 80%,rgba(37,217,205,.88),transparent 16%),#050713;color:#fff;isolation:isolate}.main-banner:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle,rgba(255,255,255,.7) 1px,transparent 1px),linear-gradient(90deg,transparent 0 52%,rgba(255,255,255,.1) 52% 73%,transparent 73%);background-size:42px 42px,100% 100%;opacity:.55;z-index:-1}.main-banner:after{content:"";position:absolute;left:50%;bottom:10px;width:76px;height:8px;transform:translate(-50%);background:radial-gradient(circle,#fff 3px,transparent 4px) 0 0 / 14px 8px repeat-x;opacity:.68}.main-banner div{display:grid;gap:4px}.main-banner span{font-size:24px;font-weight:900;letter-spacing:0}.main-banner strong{font-size:36px;font-weight:900;line-height:.95;letter-spacing:0}.main-banner p{margin:6px 0 0;font-size:18px;font-weight:700;opacity:.9}.main-banner b{position:relative;z-index:1;color:#f6da4b;font-size:28px;font-weight:900;line-height:.72;text-align:right}.main-banner b:before{content:"";position:absolute;top:-17px;right:0;width:54px;height:26px;background:#f6da4b;clip-path:polygon(0 62%,68% 62%,100% 0,82% 100%,0 100%);z-index:-1;opacity:.95}.main-banner i{position:absolute;right:36px;top:30px;width:10px;height:10px;border-radius:50%;background:#fff;box-shadow:-76px 12px #ffffffbf,-156px 58px #ffffff73,-28px 74px #45d1dfbf}.middle-banners{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;overflow:hidden;padding:38px 22px 28px}.middle-banner{position:relative;min-height:86px;overflow:hidden;border-radius:8px;display:grid;align-content:end;gap:4px;padding:14px;color:#fff;box-shadow:0 10px 22px #272f4114;text-align:left}.middle-banner:before,.middle-banner:after{content:"";position:absolute;border-radius:50%;opacity:.42}.middle-banner:before{width:86px;height:86px;top:-36px;right:-26px;background:#ffffffa6}.middle-banner:after{width:54px;height:54px;right:20px;bottom:18px;border:10px solid rgba(255,255,255,.28)}.middle-banner strong,.middle-banner span{position:relative;z-index:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.middle-banner strong{font-size:15px;font-weight:900}.middle-banner span{font-size:11px;font-weight:800;opacity:.84}.middle-banner.show{background:linear-gradient(135deg,#5f31cef2,#2f267bf2),#4a35bd}.middle-banner.champ{background:linear-gradient(135deg,#e5f5fff5,#ffcfeaf5),#f4fbff;color:#1d9eaf}.middle-banner.special{background:linear-gradient(135deg,#ba9974f0,#563c2deb),#7d5a45}.section-block{padding:16px 20px}.eyebrow{margin:0 0 6px;font-size:27px;font-weight:800}.section-block h1{margin:0 0 26px;color:#a4a7ad;font-size:20px;font-weight:700}.mission-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.mission-grid button{aspect-ratio:1;display:grid;place-items:center;gap:8px;border-radius:8px;background:#f6f7f9;color:#666a72;font-weight:800;transition:transform .14s ease,background-color .14s ease}.mission-grid svg{width:42px;height:42px;color:#6785ef;filter:drop-shadow(9px 12px 10px rgba(117,146,235,.25))}.floating-sma{position:absolute;right:20px;bottom:104px;width:100px;text-align:center;filter:drop-shadow(0 8px 12px rgba(0,0,0,.18))}.floating-sma img{width:78px;height:78px;object-fit:cover;border:2px solid #fff;border-radius:50%}.floating-sma strong{display:block;margin-top:-15px;padding:10px 14px;border-radius:999px;background:linear-gradient(90deg,#f4a9de,#9feaf1);color:#25272e;font-size:20px}.page-title h1{margin:0;font-size:30px;font-weight:900;letter-spacing:0}.page-title span{color:#e83ea7}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:12px 18px;border-bottom:1px solid #eceff3;background:#fff}.segmented button{height:44px;border-radius:999px;background:#f6f7f9;font-size:15px;font-weight:800;color:#5a5e66}.segmented .active{border-bottom:0;background:#30333a;color:#26292f;color:#fff}.podium{min-height:310px;display:grid;grid-template-columns:repeat(3,1fr);align-items:end;gap:8px;padding:28px 18px 16px;background:radial-gradient(circle at 50% 0%,rgba(69,209,223,.18),transparent 42%),#fafbfc}.podium-item{display:grid;justify-items:center;gap:8px;color:#8e9299}.podium-item span{font-size:28px;font-weight:900;color:#59616d}.podium-item img{width:min(30vw,112px);aspect-ratio:1;object-fit:cover;border:1px solid #edf0f4;border-radius:50%}.podium-item.rank-1{align-self:start;padding-top:12px}.podium-item.rank-1 img{width:min(37vw,150px);border:8px solid #edf0f4;box-shadow:inset 0 0 0 3px #d6bcff}.crown{color:#c9dfff}.podium-item strong{color:#94979d;font-size:19px}.podium-item small{color:#555b66;font-size:22px;font-weight:900}.chart-list,.rank-section{padding:18px 18px 24px}.list-head,.rank-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;color:#9ea2a9;font-size:19px;font-weight:800}.rank-toolbar button{display:inline-flex;align-items:center;gap:6px}.candidate-row{display:grid;grid-template-columns:70px minmax(0,1fr) 68px;align-items:center;gap:12px;width:100%;padding:14px 10px;margin-bottom:10px;border:1px solid #edf1f6;border-radius:8px;background:#fff;box-shadow:0 10px 24px #262e400d;text-align:left}.candidate-row.compact{grid-template-columns:58px minmax(0,1fr) 54px}.candidate-row>img{width:60px;aspect-ratio:1;object-fit:cover;border-radius:50%;background:#111}.candidate-row.compact>img{width:52px}.candidate-main{min-width:0}.candidate-title{display:flex;align-items:center;gap:10px}.candidate-title span{color:#728196;font-size:21px;font-weight:900}.candidate-title strong{overflow:hidden;color:#2f3239;font-size:19px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.candidate-main small{display:block;overflow:hidden;margin:2px 0 8px;color:#aaaeb5;font-size:14px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.candidate-main em{display:block;margin-top:5px;color:#a2a6ad;font-size:14px;font-style:normal}.progress-track{height:18px;overflow:hidden;border-radius:999px;background:#f0f1f3}.progress-fill{height:100%;min-width:52px;display:grid;place-items:center;border-radius:inherit;background:linear-gradient(90deg,#45d1df,#e83ea7);color:#fff;font-size:13px;font-weight:900}.vote-button{min-height:48px;border-radius:8px;background:linear-gradient(135deg,#eefbff,#fdf1f9);color:#333740;font-size:16px;font-weight:900;box-shadow:inset 0 0 0 1px #e83ea71a}.campaign-card{background:#2d2d31;overflow:hidden}.campaign-card img{aspect-ratio:1.55}.campaign-time{padding:18px 20px;color:#fff;font-size:20px;letter-spacing:0}.vote-info{padding:24px 20px 18px;background:#fff}.vote-info h1{margin:0 0 18px;color:#595d64;font-size:24px}.vote-info p,.vote-info strong{display:block;margin:0 0 12px;color:#666a72;font-size:18px;font-weight:800}.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #edf0f4;border-bottom:1px solid #edf0f4;background:#fff}.quick-actions button{height:84px;display:grid;place-items:center;gap:4px;color:#8f939a;font-weight:800;transition:transform .14s ease,color .14s ease}.quick-actions button.active{color:#e83ea7}.quick-actions svg{width:31px;height:31px}.sub-tabs{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid #edf0f4;background:#fff}.sub-tabs button{height:56px;color:#363940;font-size:20px;font-weight:900}.sub-tabs .active{border-bottom:3px solid #3d4047}.my-pick{padding:22px 18px 10px}.my-pick>span{color:#9498a1;font-size:20px;font-weight:900}.my-pick p{margin:18px 0;color:#a9adb5;font-size:16px;font-weight:800}.selected-pick{display:grid;grid-template-columns:58px minmax(0,1fr) 72px;align-items:center;gap:12px;padding:12px;border-radius:8px;background:#f7f9fc;border:1px solid #edf1f6}.selected-pick img{width:58px;aspect-ratio:1;object-fit:cover;border-radius:50%}.selected-pick strong,.selected-pick small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selected-pick strong{font-size:19px;font-weight:900}.selected-pick small{color:#9ca1aa}.selected-pick button{height:44px;border-radius:16px;background:linear-gradient(90deg,#45d1df,#e83ea7);color:#fff;font-weight:900}.rank-choice{display:block;width:100%;text-align:inherit}.info-panel{margin:20px 18px;padding:20px;border:1px solid #edf1f6;border-radius:8px;background:#fff;box-shadow:0 10px 24px #262e400d}.info-panel strong{display:block;margin-bottom:8px;font-size:20px;font-weight:900}.info-panel p{margin:0;color:#747a84;font-weight:700;line-height:1.55}.supabase-pill{position:sticky;bottom:12px;width:fit-content;margin:8px auto;padding:9px 14px;border:1px solid #dfe5ef;border-radius:999px;background:#ffffffeb;color:#747a84;font-size:13px;font-weight:800;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.supabase-pill.connected{border-color:#45d1df73;color:#12878f}.supabase-pill.error{border-color:#e83ea773;color:#b7277d}.simple-view>div{min-height:460px;display:grid;place-items:center;align-content:center;gap:12px;padding:26px;text-align:center}.simple-view svg{color:#e83ea7}.simple-view h1{margin:0;font-size:25px}.simple-view p{margin:0;color:#8f949d;font-weight:700}.bottom-nav{position:absolute;inset:auto 0 0;height:88px;display:grid;grid-template-columns:repeat(4,1fr);align-items:center;border-top:1px solid #dde1e8;border-radius:28px 28px 0 0;background:#fffffff7;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.talk-hero{margin:18px;padding:22px;border-radius:8px;background:linear-gradient(135deg,#45d1df2e,#e83ea724),#fff;border:1px solid #edf1f6}.talk-hero strong{display:block;margin-bottom:8px;color:#30333a;font-size:25px;font-weight:900}.talk-hero p{margin:0;color:#818792;font-weight:800;line-height:1.45}.talk-categories{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:0 18px 14px}.talk-categories button{height:40px;border-radius:999px;background:#f3f5f8;color:#656b75;font-size:14px;font-weight:900}.talk-categories .active{background:#30333a;color:#fff}.talk-composer{display:grid;gap:10px;margin:0 18px 18px;padding:14px;border:1px solid #edf1f6;border-radius:8px;background:#fff;box-shadow:0 10px 24px #262e400d}.talk-composer select,.talk-composer input,.talk-composer textarea{width:100%;border:1px solid #e3e8f0;border-radius:8px;outline:0;background:#f8fafc;color:#30333a;font:inherit;font-weight:800}.talk-composer select,.talk-composer input{height:42px;padding:0 12px}.talk-composer textarea{min-height:82px;resize:vertical;padding:12px}.talk-composer button{height:44px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:8px;background:linear-gradient(90deg,#45d1df,#e83ea7);color:#fff;font-weight:900}.talk-list{display:grid;gap:12px;padding:0 18px 24px}.talk-post{padding:16px;border:1px solid #edf1f6;border-radius:8px;background:#fff;box-shadow:0 10px 24px #262e400d}.talk-post-head,.talk-post-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.talk-post-head span{padding:4px 9px;border-radius:999px;background:#eefbff;color:#12878f;font-size:12px;font-weight:900}.talk-post-head small{overflow:hidden;color:#9aa0aa;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.talk-post h2{margin:12px 0 8px;color:#30333a;font-size:19px;font-weight:900;letter-spacing:0}.talk-post p{margin:0 0 14px;color:#696f7a;font-weight:700;line-height:1.5}.talk-post-actions{justify-content:flex-start}.talk-post-actions button{display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 10px;border-radius:999px;background:#f5f7fa;color:#676d77;font-size:13px;font-weight:900}.bottom-nav button{display:grid;justify-items:center;gap:4px;color:#45484f;font-size:12px;font-weight:800}.bottom-nav .active{color:#111319}.sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;align-items:end;background:#161a2247}.action-sheet{position:relative;max-height:74%;overflow-y:auto;overflow-x:hidden;padding:24px 20px 28px;border-radius:24px 24px 0 0;background:#fff;box-shadow:0 -18px 48px #161a222e;scrollbar-width:none}.action-sheet::-webkit-scrollbar{display:none}.sheet-close{position:absolute;top:18px;right:18px;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#f4f6f9}.action-sheet h2{margin:0 44px 18px 0;font-size:24px;font-weight:900}.action-sheet p{margin:0 0 18px;color:#747a84;font-weight:700;line-height:1.55}.search-field{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:8px;height:48px;padding:0 14px;border:1px solid #e4e9f1;border-radius:8px;background:#f8fafc}.search-field input{min-width:0;border:0;outline:0;background:transparent;color:#30333a;font:inherit;font-weight:800}.sheet-list,.menu-list{display:grid;gap:10px;margin-top:14px}.sheet-list button{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border-radius:8px;background:#f8fafc;text-align:left}.sheet-list img{width:44px;aspect-ratio:1;object-fit:cover;border-radius:50%}.sheet-list span,.sheet-list small,.menu-list button{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:900}.sheet-list small{color:#8f949d;font-size:13px}.shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.shop-grid button{min-height:104px;display:grid;place-items:center;gap:8px;padding:12px;border-radius:8px;background:linear-gradient(135deg,#f7fbff,#fff5fb);color:#383c44;font-size:14px;font-weight:900}.shop-grid svg{color:#e83ea7}.menu-list button,.primary-sheet-button{height:48px;border-radius:8px;background:#f6f8fb;font-weight:900}.primary-sheet-button{width:100%;background:linear-gradient(90deg,#45d1df,#e83ea7);color:#fff}@media(max-width:520px){.app-shell{padding:0;background:#fff}.phone-frame{width:100%;height:100vh;border:0;border-radius:0;box-shadow:none}.bottom-nav{border-radius:22px 22px 0 0}.podium-item img{width:96px}.podium-item.rank-1 img{width:124px}}@media(max-width:390px){.bottom-nav button{font-size:11px}.candidate-row{grid-template-columns:58px minmax(0,1fr) 58px;gap:8px}.candidate-row>img{width:52px}.candidate-title strong{font-size:17px}.vote-button{font-size:14px}}
