/* Cortex Connect science page: living background, robot lab, heart shelf, AI notes */
.love-layer{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
html[data-love-theme=cinema] .env-glow{opacity:.4}

/* AI persona fine print: present for protection, quiet by design */
.ai-fine{margin:14px 0 0;font-size:11px;line-height:1.5;color:var(--ink-3,#8A8577);opacity:.7;max-width:60ch}
.ai-fine a{color:inherit;text-decoration:underline}
.sci-end .ai-fine{margin:0 0 20px}
.dg-n::after{content:"  ·  sample";color:var(--ink-3,#8A8577);font-weight:400;font-size:.85em}

/* robot lab */
.bot-arena{position:relative;margin:0 0 40px;border:1px solid rgba(123,224,166,.28);border-radius:24px;background:linear-gradient(180deg,rgba(11,13,20,.86),rgba(16,19,28,.92));overflow:hidden}
.ba-hud{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;align-items:end;padding:20px 22px 0}
.ba-hud .kicker{color:#7BE0A6;width:100%;margin:0}
.ba-goal{margin:0;max-width:44ch;color:var(--ink,#EDE8DC)}
.ba-score{display:flex;gap:18px;margin:0;font:500 13px ui-monospace,monospace;color:var(--ink-2,#C9C1AE)}
.ba-score b{color:#F2C94C;font-size:16px;margin-left:6px}
.ba-cv{display:block;width:100%;height:clamp(240px,34vw,340px);cursor:pointer;touch-action:manipulation}
.ba-foot{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;padding:0 22px 20px}
.ba-out{margin:0;flex:1 1 280px}

/* heart shelf */
.heart-shelf{margin:0 0 40px}
.hs-hint{margin:0 0 14px}
.hs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:10px}
.hs-heart{display:grid;justify-items:center;gap:4px;padding:10px 4px;border:1px solid transparent;border-radius:14px;background:rgba(21,25,38,.55);color:var(--ink-2,#C9C1AE);font:500 11px var(--body,system-ui);cursor:pointer;transition:transform .25s,border-color .25s,background .25s;animation:hs-float 6s ease-in-out infinite;animation-delay:calc(var(--i) * -.37s)}
.hs-heart svg{width:34px;height:32px;fill:#FF2E4D;filter:drop-shadow(0 4px 10px rgba(255,46,77,.35));transition:transform .3s}
.hs-heart span{display:grid;text-align:center;line-height:1.2}
.hs-heart b{color:#F2C94C;font-weight:600}
.hs-heart:hover{transform:translateY(-3px);border-color:var(--line-2,rgba(212,175,55,.42))}
.hs-heart:hover svg{transform:scale(1.12)}
.hs-heart[aria-pressed=true]{border-color:#FF6E84;background:rgba(255,46,77,.12)}
.hs-heart[aria-pressed=true] svg{animation:hs-beat .9s ease-in-out infinite}
@keyframes hs-float{50%{transform:translateY(-4px)}}
@keyframes hs-beat{0%,100%{transform:scale(1)}30%{transform:scale(1.22)}60%{transform:scale(.95)}}

.hs-book{position:relative;margin-top:22px;perspective:1600px}
.hs-burst{position:absolute;left:50%;top:0;width:0;height:0;pointer-events:none;z-index:2}
.hs-burst i{position:absolute;left:-40px;top:-10px;width:40px;height:72px;background:#FF2E4D;border-radius:40px 0 0 40px;opacity:0}
.hs-burst i+i{left:0;border-radius:0 40px 40px 0}
.hs-book.open .hs-burst i{animation:hs-split-l .8s cubic-bezier(.2,.7,.2,1) forwards}
.hs-book.open .hs-burst i+i{animation-name:hs-split-r}
@keyframes hs-split-l{0%{opacity:1;transform:translate(0,0) rotate(0)}100%{opacity:0;transform:translate(-160px,60px) rotate(-70deg)}}
@keyframes hs-split-r{0%{opacity:1;transform:translate(0,0) rotate(0)}100%{opacity:0;transform:translate(160px,60px) rotate(70deg)}}

.hs-pages{display:grid;grid-template-columns:1fr 1fr;border-radius:20px;overflow:hidden;border:1px solid var(--line-2,rgba(212,175,55,.42));box-shadow:0 30px 80px rgba(0,0,0,.5);transform-style:preserve-3d}
.hs-page{position:relative;padding:26px clamp(18px,3vw,32px);min-height:300px;backface-visibility:hidden}
.hs-left{background:linear-gradient(90deg,#141824,#1A1F2E);transform-origin:right center}
.hs-right{background:linear-gradient(90deg,#0E1119,#121622);transform-origin:left center;overflow:hidden;border-left:1px solid rgba(212,175,55,.25)}
.hs-book.open .hs-left{animation:hs-open-l .9s .25s cubic-bezier(.2,.7,.2,1) both}
.hs-book.open .hs-right{animation:hs-open-r .9s .25s cubic-bezier(.2,.7,.2,1) both}
@keyframes hs-open-l{from{transform:rotateY(80deg);opacity:0}to{transform:none;opacity:1}}
@keyframes hs-open-r{from{transform:rotateY(-80deg);opacity:0}to{transform:none;opacity:1}}
.hs-left h3{font-size:clamp(20px,2.4vw,28px);margin:8px 0 12px;max-width:26ch}
.hs-find{color:var(--ink,#EDE8DC);margin:0 0 12px}
.hs-left .row{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.hs-rain{position:absolute;inset:0;display:flex;justify-content:space-around;opacity:.14;font:500 13px/1.25 ui-monospace,monospace;color:#7BE0A6;pointer-events:none}
.hs-rain span{animation:hs-rain 7s linear infinite}
.hs-rain span:nth-child(2n){animation-duration:9s;color:#FF6E84}
.hs-rain span:nth-child(3n){animation-duration:5.5s}
@keyframes hs-rain{from{transform:translateY(-60%)}to{transform:translateY(10%)}}
.hs-code{position:relative;margin:0;white-space:pre-wrap;word-break:break-word;font:500 13px/1.75 ui-monospace,'JetBrains Mono',monospace;color:#C8FFE0}
.hs-code span{display:inline-block;opacity:0;transform:translateY(-14px)}
.hs-book.open .hs-code span{animation:hs-line .45s calc(.9s + var(--d) * .18s) ease-out forwards}
@keyframes hs-line{to{opacity:1;transform:none}}
@media (max-width:720px){.hs-pages{grid-template-columns:1fr}.hs-right{border-left:0;border-top:1px solid rgba(212,175,55,.25);min-height:220px}}

@media (prefers-reduced-motion:reduce){
  .hs-heart,.hs-rain span,.hs-heart[aria-pressed=true] svg{animation:none}
  .hs-book.open .hs-left,.hs-book.open .hs-right,.hs-book.open .hs-burst i,.hs-book.open .hs-code span{animation:none;opacity:1;transform:none}
}
.dg-n::after{content:"  ·  AI persona";color:#7BE0A6;font-weight:600}
