:root{--ink:#0e1330;--ink2:#171d45;--vio:#6c4dff;--cor:#ff5c7a;--mint:#2ee6a6;--paper:#f6f5ff;--mut:#a9aed6;--r:18px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:16px/1.6 'DM Sans',system-ui,sans-serif;color:var(--paper);background:var(--ink) radial-gradient(900px 500px at 85% -10%,#3a2a9a55,transparent),radial-gradient(700px 400px at -5% 20%,#ff5c7a22,transparent) no-repeat}
a{color:inherit}h1,h2,h3,.logo{font-family:'Bricolage Grotesque',sans-serif;line-height:1.15}
.top{display:flex;justify-content:space-between;align-items:center;padding:14px 5vw;position:sticky;top:0;z-index:5;background:#0e1330cc;backdrop-filter:blur(12px)}
.logo{font-weight:800;font-size:1.25rem;text-decoration:none;display:flex;gap:10px;align-items:center}.logo i{width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,var(--vio),var(--cor))}
nav a{margin-left:20px;text-decoration:none;color:var(--mut);font-weight:500}nav a:hover{color:#fff}
.wrap{max-width:1180px;margin:0 auto;padding:24px 5vw}
.hero{text-align:center;padding:64px 5vw 28px;max-width:860px;margin:auto}
.hero h1{font-size:clamp(2.2rem,6vw,4.2rem);font-weight:800;margin:20px 0 14px;letter-spacing:-.02em}
.hero p{color:var(--mut);font-size:1.15rem;max-width:620px;margin:0 auto 26px}
.stack{height:70px;position:relative;width:70px;margin:auto}.stack i{position:absolute;inset:0;border-radius:10px;box-shadow:0 8px 24px #0008;animation:fan 2.4s cubic-bezier(.2,.8,.2,1) both}
.stack i:nth-child(1){background:var(--cor);--a:-14deg}.stack i:nth-child(2){background:var(--mint);--a:0deg}.stack i:nth-child(3){background:var(--vio);--a:14deg}
@keyframes fan{0%{transform:rotate(0)}100%{transform:rotate(var(--a))}}
#q{width:100%;max-width:560px;padding:16px 22px;border-radius:99px;border:2px solid #ffffff22;background:var(--ink2);color:#fff;font:inherit;outline:0}#q:focus{border-color:var(--vio);box-shadow:0 0 0 4px #6c4dff44}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.chips button{border:1px solid #ffffff2a;background:0;color:var(--mut);padding:8px 16px;border-radius:99px;cursor:pointer;font:inherit}.chips .on{background:var(--vio);color:#fff;border-color:var(--vio)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.card{display:block;padding:20px;border-radius:var(--r);background:var(--ink2);border:1px solid #ffffff12;text-decoration:none;transition:transform .2s,border-color .2s}.card:hover{transform:translateY(-4px);border-color:var(--vio)}
.card[hidden]{display:none}.card h2{font-size:1.1rem;margin:10px 0 4px}.card p{margin:0;color:var(--mut);font-size:.92rem}
.ic{font-size:1.6rem}.tool{display:grid;grid-template-columns:1fr 300px;gap:32px}@media(max-width:900px){.tool{grid-template-columns:1fr}nav a:nth-child(n+3){display:none}}
.tool h1{font-size:clamp(1.8rem,4vw,2.6rem);margin:10px 0}.lead{color:var(--mut)}
.drop{border:2px dashed #ffffff40;border-radius:var(--r);padding:44px 20px;text-align:center;background:#ffffff08;transition:.2s;cursor:pointer}.drop.on{border-color:var(--mint);background:#2ee6a614}
.drop b{font-family:'Bricolage Grotesque';font-size:1.3rem;display:block}.drop span{color:var(--mut)}
.btn{background:linear-gradient(135deg,var(--vio),#8f6bff);color:#fff;border:0;padding:14px 28px;border-radius:12px;font:700 1rem 'DM Sans';cursor:pointer;transition:transform .15s}.btn:hover{transform:translateY(-2px)}.btn:disabled{opacity:.5;cursor:wait}
.btn.alt{background:var(--mint);color:var(--ink)}.sm{padding:4px 10px;border-radius:8px;border:1px solid #ffffff30;background:0;color:#fff;cursor:pointer}
.files{list-style:none;padding:0;margin:14px 0}.files li{display:flex;gap:10px;align-items:center;padding:10px 14px;margin-bottom:6px;background:var(--ink2);border-radius:12px}.files li span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.files small{color:var(--mut)}
.opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:14px 0}.opts label{display:grid;gap:4px;font-size:.88rem;color:var(--mut)}
.opts input,.opts select,.opts textarea,.out textarea,.admin input,.admin textarea,.admin select{padding:11px 12px;border-radius:10px;border:1px solid #ffffff2a;background:var(--ink2);color:#fff;font:inherit;width:100%}
.out{margin-top:18px;padding:18px;border-radius:var(--r);background:#2ee6a612;border:1px solid #2ee6a640}.out a.btn{display:inline-block;text-decoration:none;margin:4px 6px 4px 0}.out textarea{min-height:200px}
.bar{height:6px;background:#ffffff1a;border-radius:9px;overflow:hidden;margin:12px 0}.bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--vio),var(--mint));transition:width .2s}
.err{color:var(--cor);margin:10px 0}.ad{margin:18px auto;text-align:center;min-height:50px;overflow:hidden}
.prose{max-width:760px;margin-top:36px;color:#d4d7f2}.prose h2{margin-top:30px}.rel{display:grid;gap:8px;margin-top:20px;padding:18px;background:var(--ink2);border-radius:var(--r)}.rel a{text-decoration:none;color:var(--mut)}.rel a:hover{color:#fff}
footer{padding:40px 5vw;text-align:center;color:var(--mut);border-top:1px solid #ffffff12;margin-top:40px}.fl a{margin:0 8px;font-size:.85rem}
.admin{max-width:980px;margin:0 auto;padding:24px 5vw}.admin h1{margin:0 0 16px}.admin form{display:grid;gap:14px;margin-bottom:24px}.admin textarea{min-height:90px;font-family:monospace;font-size:.85rem}.admin label{display:grid;gap:4px;color:var(--mut);font-size:.9rem}
.tabs{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.tabs a{padding:8px 18px;border-radius:99px;background:var(--ink2);text-decoration:none}.tabs .on{background:var(--vio)}
.kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px}.kpi div{background:var(--ink2);padding:16px;border-radius:14px}.kpi b{font:800 1.8rem 'Bricolage Grotesque';display:block}
.chart{display:flex;align-items:flex-end;gap:6px;height:160px;background:var(--ink2);padding:14px;border-radius:14px}.chart div{flex:1;background:linear-gradient(var(--vio),var(--cor));border-radius:5px 5px 0 0;position:relative;min-height:2px}.chart small{position:absolute;bottom:-18px;left:0;font-size:.6rem;color:var(--mut)}
table{width:100%;border-collapse:collapse}td,th{padding:8px;border-bottom:1px solid #ffffff14;text-align:left}.ok{color:var(--mint)}
:focus-visible{outline:3px solid var(--mint);outline-offset:2px}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
