/* Luca Org — soft, artful marketing design system */
:root{
  --bg:#fbfaff; --bg2:#f3f1fd; --fg:#191a2b; --muted:#5c6076; --line:#e7e4f5;
  --card:#ffffff; --card2:#f7f5ff;
  --brand:#6d63f2; --brand2:#9b6cf6; --teal:#12b5a4; --pink:#ec6fb0;
  --shadow:0 20px 50px -24px rgba(90,70,220,.35);
  --radius:20px;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#0a0a14; --bg2:#0f0f1e; --fg:#edeefb; --muted:#9aa0bd; --line:#232544;
    --card:#14152400; --card:#141527; --card2:#181a30;
    --brand:#8b83ff; --brand2:#b18bfa; --teal:#3ad0c0; --pink:#f38bc4;
    --shadow:0 24px 60px -26px rgba(0,0,0,.7);
  }
}
*{box-sizing:border-box; margin:0; padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg); color:var(--fg); overflow-x:hidden;
  font:16px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit; text-decoration:none}
.wrap{max-width:1140px; margin:0 auto; padding:0 24px}
img{max-width:100%}

/* soft animated gradient-mesh background */
body::before{
  content:""; position:fixed; inset:-30% -10% auto -10%; height:80vh; z-index:-2;
  background:
    radial-gradient(45% 55% at 20% 20%, color-mix(in srgb,var(--brand) 30%, transparent), transparent 70%),
    radial-gradient(40% 50% at 85% 15%, color-mix(in srgb,var(--teal) 26%, transparent), transparent 70%),
    radial-gradient(45% 45% at 60% 60%, color-mix(in srgb,var(--brand2) 26%, transparent), transparent 70%);
  filter:blur(40px); opacity:.7; animation:drift 18s ease-in-out infinite alternate;
}
@keyframes drift{ from{transform:translate3d(-3%,-2%,0) scale(1)} to{transform:translate3d(4%,3%,0) scale(1.12)} }

/* buttons */
.btn{display:inline-flex; align-items:center; gap:.5rem; border-radius:12px; padding:.8rem 1.4rem; font-weight:650; font-size:.96rem; border:1px solid transparent; cursor:pointer; transition:transform .18s cubic-bezier(.2,.8,.2,1), box-shadow .18s}
.btn-primary{background:linear-gradient(135deg,var(--brand),var(--brand2)); color:#fff; box-shadow:0 10px 26px -12px var(--brand)}
.btn-primary:hover{transform:translateY(-2px); box-shadow:0 16px 34px -12px var(--brand)}
.btn-ghost{background:color-mix(in srgb,var(--card) 70%, transparent); border-color:var(--line); backdrop-filter:blur(8px)}
.btn-ghost:hover{transform:translateY(-2px)}
.eyebrow{font-size:.76rem; font-weight:750; letter-spacing:.14em; text-transform:uppercase; color:var(--brand)}
.grad{background:linear-gradient(115deg,var(--brand),var(--brand2) 45%,var(--teal)); -webkit-background-clip:text; background-clip:text; color:transparent}

/* nav */
header.nav{position:sticky; top:0; z-index:30; backdrop-filter:blur(16px) saturate(1.4); background:color-mix(in srgb,var(--bg) 76%, transparent); border-bottom:1px solid var(--line)}
header.nav .wrap{display:flex; align-items:center; justify-content:space-between; height:66px}
.brand{display:flex; align-items:center; gap:.6rem; font-weight:800}
.brand img{width:30px; height:30px}
.brand small{display:block; font-weight:500; font-size:.72rem; color:var(--muted); letter-spacing:.01em}
.brand b{font-size:1.06rem; letter-spacing:-.01em}
.links{display:flex; align-items:center; gap:1.4rem; font-size:.93rem; color:var(--muted)}
.links a.pg:hover, .links a.pg.active{color:var(--fg)}
.langsel{background:var(--card2); color:var(--fg); border:1px solid var(--line); border-radius:9px; padding:.35rem .5rem; font-size:.85rem; cursor:pointer}
@media(max-width:820px){ .links a.pg{display:none} }

/* hero */
.hero{padding:72px 0 40px}
.hero .wrap{display:grid; grid-template-columns:1.15fr .85fr; gap:40px; align-items:center}
@media(max-width:900px){ .hero .wrap{grid-template-columns:1fr; text-align:center} .hero .art{order:-1} }
.hero h1{font-size:clamp(2.2rem,5.4vw,3.8rem); line-height:1.05; letter-spacing:-.028em; font-weight:830; margin:1rem 0}
.hero .lead{font-size:clamp(1.05rem,2vw,1.3rem); color:var(--muted); max-width:56ch}
.hero .cta-row{display:flex; gap:.8rem; flex-wrap:wrap; margin:1.8rem 0 1rem}
@media(max-width:900px){ .hero .cta-row{justify-content:center} }
.hero .mini{font-size:.86rem; color:var(--muted); max-width:52ch}
.hero .art{position:relative; display:grid; place-items:center}
.hero .art .halo{position:absolute; width:78%; aspect-ratio:1; border-radius:50%; background:radial-gradient(circle,color-mix(in srgb,var(--brand) 28%, transparent),transparent 68%); filter:blur(24px); animation:pulse 5s ease-in-out infinite}
@keyframes pulse{ 0%,100%{transform:scale(.95); opacity:.7} 50%{transform:scale(1.08); opacity:1} }
.hero .art img{width:min(340px,80%); position:relative; z-index:1; filter:drop-shadow(0 30px 40px rgba(90,70,220,.35))}

/* speech bubble from the character */
.bubble{position:absolute; z-index:2; top:6%; right:2%; background:var(--card); border:1px solid var(--line); border-radius:16px 16px 16px 4px; padding:.7rem 1rem; font-size:.86rem; font-weight:600; box-shadow:var(--shadow); max-width:200px; animation:floaty 4s ease-in-out infinite}
@keyframes floaty{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }

/* sections */
section{padding:74px 0; position:relative}
.band{background:linear-gradient(180deg,var(--bg2),var(--bg)); border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.sec-head{max-width:64ch; margin:0 auto 2.6rem; text-align:center}
.sec-head h2{font-size:clamp(1.7rem,3.4vw,2.5rem); letter-spacing:-.02em; line-height:1.12; font-weight:790; margin:.6rem 0}
.sec-head .sub{color:var(--muted); font-size:1.06rem}

/* cards grid */
.grid{display:grid; gap:20px}
.g3{grid-template-columns:repeat(3,1fr)} .g2{grid-template-columns:repeat(2,1fr)}
@media(max-width:880px){ .g3,.g2{grid-template-columns:1fr} }
.card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:1.6rem; box-shadow:0 8px 30px -22px rgba(90,70,220,.4); transition:transform .2s, box-shadow .2s}
.card:hover{transform:translateY(-4px); box-shadow:var(--shadow)}
.card h3{font-size:1.16rem; letter-spacing:-.01em; margin:.7rem 0 .5rem}
.card p{color:var(--muted); font-size:.97rem}
.ico{width:50px; height:50px; border-radius:14px; display:grid; place-items:center; font-size:1.5rem; background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 16%,transparent),color-mix(in srgb,var(--teal) 14%,transparent)); border:1px solid color-mix(in srgb,var(--brand) 26%,transparent)}

/* role triple visual */
.triple{display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:center}
@media(max-width:880px){ .triple{grid-template-columns:1fr} }
.tv{background:linear-gradient(160deg,var(--card2),var(--card)); border:1px solid var(--line); border-radius:24px; padding:26px; box-shadow:var(--shadow)}
.leg{display:flex; align-items:center; gap:14px; padding:15px 16px; border-radius:14px; background:var(--bg); border:1px solid var(--line); margin-bottom:12px; transition:transform .2s}
.leg:hover{transform:translateX(4px)}
.leg .n{width:34px; height:34px; border-radius:10px; background:linear-gradient(135deg,var(--brand),var(--brand2)); color:#fff; display:grid; place-items:center; font-weight:800; flex:none}
.leg b{display:block; font-size:1rem} .leg span{color:var(--muted); font-size:.85rem}
.plus{text-align:center; color:var(--brand); font-weight:800; font-size:1.3rem; margin:-2px 0 8px}
.verdict{margin-top:8px; text-align:center; font-size:.9rem; color:var(--muted); border-top:1px dashed var(--line); padding-top:14px}
.verdict b{color:var(--teal)}

/* TAI scale */
.tai{display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin-top:8px}
@media(max-width:760px){ .tai{grid-template-columns:1fr 1fr} }
.tier{border:1px solid var(--line); border-radius:14px; padding:16px; background:var(--card); transition:transform .2s}
.tier:hover{transform:translateY(-3px)}
.tier .t{font-weight:800; font-size:.8rem; letter-spacing:.04em}
.tier .d{font-size:.82rem; color:var(--muted); margin-top:5px}
.t0{color:var(--muted)} .t1{color:#5b8def} .t2{color:var(--teal)} .t3{color:#e0952b} .t4{color:var(--pink)}
.pills{display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; justify-content:center}
.pill{font-size:.82rem; border:1px solid var(--line); border-radius:999px; padding:.32rem .8rem; background:var(--card); color:var(--muted)}

/* who list */
.who{list-style:none} .who li{padding:14px 0; border-bottom:1px solid var(--line); color:var(--muted)} .who li b{color:var(--fg)}

/* credibility marquee */
.cred{display:flex; flex-wrap:wrap; gap:10px; justify-content:center; max-width:840px; margin:0 auto}
.cred span{font-size:.85rem; border:1px solid var(--line); border-radius:10px; padding:.5rem .8rem; background:var(--card); color:var(--muted)}

/* final cta */
.final{position:relative; overflow:hidden; background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 18%,var(--card)),color-mix(in srgb,var(--brand2) 14%,var(--card))); border:1px solid var(--line); border-radius:28px; padding:56px 40px; text-align:center; box-shadow:var(--shadow)}
.final h2{font-size:clamp(1.7rem,3.4vw,2.6rem); letter-spacing:-.02em; margin-bottom:.6rem; font-weight:820}
.final p{color:var(--muted); max-width:52ch; margin:0 auto 1.8rem}
.final img.luca-mini{position:absolute; width:120px; bottom:-24px; right:24px; opacity:.9; animation:floaty 5s ease-in-out infinite}
@media(max-width:700px){ .final img.luca-mini{display:none} }

/* footer */
footer{border-top:1px solid var(--line); padding:44px 0; color:var(--muted); font-size:.9rem; background:var(--bg2)}
footer .wrap{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:24px}
@media(max-width:760px){ footer .wrap{grid-template-columns:1fr 1fr} }
footer h4{color:var(--fg); font-size:.9rem; margin-bottom:.6rem}
footer a{display:block; color:var(--muted); padding:.2rem 0}
footer a:hover{color:var(--fg)}
footer .cr{grid-column:1/-1; border-top:1px solid var(--line); padding-top:16px; margin-top:8px}

/* scroll reveal */
.reveal{opacity:0; transform:translateY(24px); transition:opacity .7s cubic-bezier(.2,.8,.2,1), transform .7s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1; transform:none}
.reveal.d1{transition-delay:.08s} .reveal.d2{transition-delay:.16s} .reveal.d3{transition-delay:.24s}
@media (prefers-reduced-motion:reduce){ *{animation:none !important} .reveal{opacity:1; transform:none; transition:none} }
