@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap');
:root{
    --bg:#07080d;
    --surface:rgba(255,255,255,.04);
    --ink:#eef0ff;
    --muted:#8b90a7;
    --accent:#7c6cff;
    --accent2:#37e6c8;
    --accent3:#ffb454;
    --line:rgba(255,255,255,.09);
    --radius:18px;
    --panel2:#0e1018;
    --panel-glow:0 0 60px rgba(124,108,255,.25);
    --glass-blur:40px;
    --glass-sat:220%
}

*{
    box-sizing:border-box
}

html{
    scroll-behavior:smooth
}

body{
    background:var(--bg);
    color:var(--ink);
    font-family:'Inter',system-ui,sans-serif;
    font-size:15px;
    line-height:1.7;
    min-height:100vh;
    position:relative;
    overflow-x:hidden;
    text-rendering:optimizeLegibility;
    -webkit-font-smoothing:antialiased
}

body::before{
    content:'';
    position:fixed;
    inset:0;
    pointer-events:none;
    z-index:0;
    opacity:.15;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")
}

body::after{
    content:'';
    position:fixed;
    inset:0;
    pointer-events:none;
    z-index:0;
    background:radial-gradient(1200px 800px at 20% 20%,rgba(124,108,255,.35),transparent 60%),radial-gradient(1000px 600px at 80% 0%,rgba(55,230,200,.25),transparent 60%),radial-gradient(800px 600px at 50% 100%,rgba(255,180,84,.2),transparent 60%),radial-gradient(600px 400px at 30% 70%,rgba(255,255,255,.1),transparent 50%);
    animation:aurora 12s ease-in-out infinite alternate;
    filter:blur(40px);
    background-size:200% 200%
}

@keyframes aurora{
    0%{
    transform:translate(0,0) rotate(0deg) scale(1)
}

100%{
    transform:translate(-80px,50px) rotate(10deg) scale(1.2)
}


}

h1,h2,h3{
    font-family:'Fraunces',serif;
    font-weight:500;
    letter-spacing:-.04em;
    line-height:1.05;
    margin:0 0 .6em
}

h1{
    font-size:clamp(48px,8vw,96px);
    background:linear-gradient(135deg,var(--ink),var(--accent2) 70%);
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
    filter:drop-shadow(0 4px 30px rgba(124,108,255,.4));
    margin-bottom:.4em
}

h2{
    font-size:clamp(32px,5vw,56px);
    color:var(--ink);
    text-shadow:0 2px 30px rgba(0,0,0,.4),0 0 40px rgba(124,108,255,.15)
}

h3{
    font-size:24px;
    color:var(--ink);
    font-weight:600;
    letter-spacing:-.02em
}

.wrap{
    max-width:1200px;
    margin:0 auto;
    padding:40px 24px;
    position:relative;
    z-index:1
}

.grid{
    display:grid;
    gap:28px;
    grid-template-columns:repeat(auto-fit,minmax(320px,1fr))
}

.card{
    background:linear-gradient(145deg,rgba(255,255,255,.16),rgba(255,255,255,.04));
    backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));
    -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));
    border:1px solid rgba(255,255,255,.15);
    border-radius:var(--radius);
    padding:28px;
    box-shadow:0 12px 48px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.2),inset 0 -1px 0 rgba(0,0,0,.3),var(--panel-glow);
    transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s ease,border-color .3s ease;
    position:relative;
    overflow:hidden
}

.card::before{
    content:'';
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:1px;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);
    opacity:0;
    transition:opacity .4s
}

.card::after{
    content:'';
    position:absolute;
    top:-50%;
    left:-50%;
    width:200%;
    height:200%;
    background:radial-gradient(circle at 30% 30%,rgba(124,108,255,.2),transparent 70%);
    opacity:0;
    transition:opacity .4s;
    pointer-events:none
}

.card:hover{
    transform:translateY(-8px) scale(1.02);
    box-shadow:0 24px 80px rgba(0,0,0,.6),var(--panel-glow),0 0 0 1px rgba(124,108,255,.3);
    border-color:rgba(124,108,255,.5)
}

.card:hover::before{
    opacity:1
}

.card:hover::after{
    opacity:1
}

.sub{
    color:var(--muted);
    font-size:13.5px;
    line-height:1.6
}

.label,label{
    font-family:'JetBrains Mono',monospace;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.18em;
    color:var(--muted);
    display:block;
    margin-bottom:10px;
    font-weight:500
}

input,textarea,select{
    width:100%;
    background:rgba(0,0,0,.6);
    border:1px solid var(--line);
    border-radius:14px;
    padding:14px 16px;
    color:var(--ink);
    font-family:'Inter',sans-serif;
    font-size:15px;
    outline:none;
    transition:border-color .3s,box-shadow .3s,background .3s,transform .2s;
    box-shadow:inset 0 2px 6px rgba(0,0,0,.3)
}

input:focus,textarea:focus,select:focus{
    border-color:var(--accent);
    box-shadow:0 0 0 5px rgba(124,108,255,.25),inset 0 2px 6px rgba(0,0,0,.3);
    background:rgba(0,0,0,.7);
    transform:translateY(-1px)
}

textarea{
    resize:vertical;
    min-height:120px
}

button{
    background:linear-gradient(135deg,var(--accent),#9b8cff);
    color:#fff;
    border:none;
    border-radius:14px;
    padding:14px 24px;
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:15px;
    cursor:pointer;
    box-shadow:0 6px 30px rgba(124,108,255,.5),inset 0 1px 0 rgba(255,255,255,.25);
    transition:transform .2s,box-shadow .2s,filter .2s;
    position:relative;
    overflow:hidden;
    letter-spacing:.02em
}

button::after{
    content:'';
    position:absolute;
    top:0;
    left:-150%;
    width:100%;
    height:100%;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);
    transition:left .5s cubic-bezier(.2,.8,.2,1)
}

button:hover{
    transform:translateY(-3px) scale(1.02);
    box-shadow:0 12px 40px rgba(124,108,255,.7),inset 0 1px 0 rgba(255,255,255,.35);
    filter:brightness(1.1)
}

button:hover::after{
    left:150%
}

button:active{
    transform:scale(.95);
    box-shadow:0 4px 15px rgba(124,108,255,.4)
}

button.secondary{
    background:rgba(255,255,255,.08);
    border:1px solid var(--line);
    color:var(--ink);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.1);
    backdrop-filter:blur(15px)
}

button.secondary:hover{
    background:rgba(255,255,255,.14);
    border-color:var(--accent);
    box-shadow:0 6px 30px rgba(124,108,255,.4)
}

.faq{
    background:rgba(255,255,255,.06);
    border:1px solid var(--line);
    border-radius:16px;
    padding:18px;
    margin-bottom:14px;
    transition:border-color .3s,background .3s,transform .2s
}

.faq:hover{
    border-color:rgba(124,108,255,.4);
    background:rgba(255,255,255,.1);
    transform:translateY(-2px)
}

.mission{
    position:relative;
    overflow:hidden
}

.mission::before{
    content:'';
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:2px;
    background:linear-gradient(90deg,var(--accent),var(--accent2),var(--accent3));
    opacity:.6
}

.meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:12px
}

.pill{
    display:inline-flex;
    align-items:center;
    padding:4px 12px;
    border-radius:20px;
    background:rgba(255,255,255,.08);
    border:1px solid var(--line);
    font-size:12px;
    font-weight:500;
    letter-spacing:.02em;
    transition:all .3s
}

.pill:hover{
    background:rgba(124,108,255,.2);
    border-color:var(--accent);
    box-shadow:0 0 20px rgba(124,108,255,.3)
}

.result{
    background:rgba(0,0,0,.4);
    border:1px solid var(--line);
    border-radius:12px;
    padding:12px;
    margin-top:12px
}

.row{
    display:flex;
    gap:12px;
    align-items:center
}

.chip{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:28px;
    height:28px;
    border-radius:50%;
    font-size:12px;
    font-weight:600;
    background:rgba(255,255,255,.1);
    border:1px solid var(--line);
    color:var(--muted);
    transition:all .3s;
    cursor:default
}

.chip.o{
    background:rgba(255,255,255,.05);
    border-color:rgba(255,255,255,.15);
    color:var(--muted)
}

.chip.f{
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    border-color:transparent;
    color:#fff;
    box-shadow:0 0 15px rgba(124,108,255,.5)
}

.chip.p{
    background:linear-gradient(135deg,var(--accent3),var(--accent2));
    border-color:transparent;
    color:#fff;
    box-shadow:0 0 15px rgba(255,180,84,.5)
}

.chip.d{
    background:rgba(255,80,80,.2);
    border-color:rgba(255,80,80,.4);
    color:#ff6b6b
}

.chip:hover{
    transform:scale(1.1);
    box-shadow:0 0 20px rgba(124,108,255,.3)
}

#missionCard{
    position:relative;
    overflow:hidden
}

#missionCard::after{
    content:'';
    position:absolute;
    top:-50%;
    left:-50%;
    width:200%;
    height:200%;
    background:radial-gradient(circle at 70% 20%,rgba(55,230,200,.15),transparent 60%);
    pointer-events:none
}

#desChat{
    background:rgba(0,0,0,.5);
    border:1px solid var(--line);
    border-radius:16px;
    padding:16px;
    height:300px;
    overflow-y:auto;
    backdrop-filter:blur(20px)
}

#desPlan{
    background:rgba(0,0,0,.4);
    border:1px solid var(--line);
    border-radius:16px;
    padding:16px;
    margin-top:12px
}

#desInp{
    flex:1
}

#desSend{
    margin-left:8px
}

#desUse{
    width:100%;
    margin-top:12px
}

#gate{
    max-width:500px;
    margin:0 auto;
    padding:40px 20px
}

.consent{
    background:rgba(255,255,255,.06);
    border:1px solid var(--line);
    border-radius:16px;
    padding:20px;
    margin-bottom:16px
}

#pw{
    letter-spacing:.2em
}

#begin{
    width:100%;
    margin-top:12px
}

#chat{
    max-width:800px;
    margin:0 auto;
    padding:20px
}

#msgs{
    display:flex;
    flex-direction:column;
    gap:12px;
    margin-bottom:16px;
    max-height:60vh;
    overflow-y:auto;
    padding:4px
}

.m{
    padding:12px 16px;
    border-radius:16px;
    max-width:80%;
    line-height:1.6;
    animation:fadeIn .3s ease
}

.m.agent{
    background:linear-gradient(135deg,rgba(124,108,255,.2),rgba(55,230,200,.1));
    border:1px solid rgba(124,108,255,.3);
    align-self:flex-start;
    box-shadow:0 4px 20px rgba(124,108,255,.2)
}

.m.you{
    background:rgba(255,255,255,.1);
    border:1px solid var(--line);
    align-self:flex-end
}

.m.sys{
    background:rgba(255,180,84,.1);
    border:1px solid rgba(255,180,84,.3);
    align-self:center;
    font-size:13px;
    color:var(--accent3)
}

.b{
    display:flex;
    gap:8px
}

.composer{
    display:flex;
    gap:8px;
    padding:12px;
    background:rgba(0,0,0,.5);
    border:1px solid var(--line);
    border-radius:16px;
    backdrop-filter:blur(20px)
}

#inp{
    flex:1
}

#send{
    margin-left:8px
}

#progress{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-bottom:16px
}

@keyframes fadeIn{
    from{
    opacity:0;
    transform:translateY(10px)
}

to{
    opacity:1;
    transform:translateY(0)
}


}

div[style*='position:fixed']{
    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
    background:rgba(0,0,0,.7)!important
}
