/* Experience evolution component. Kept separate from the packed homepage template. */
#exp.exp-evolution{--bg:#05050d;--ink:#eef0ff;--muted:#9290a9;--cyan:#56dfff;--lime:#cbff35;--pink:#e53bd5;--line:rgba(126,137,189,.18);--mono:'JetBrains Mono',monospace;--sans:'Space Grotesk',Arial,sans-serif;position:relative;isolation:isolate;max-width:none;margin:0;padding:68px 28px 90px;background:transparent;color:var(--ink);font-family:var(--sans);content-visibility:visible!important;scroll-margin-top:150px}
#exp.exp-evolution *{box-sizing:border-box}
#exp.exp-evolution:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 44% 47% at 78% 38%,rgba(48,25,85,.22),transparent 80%),radial-gradient(ellipse 36% 42% at 14% 73%,rgba(22,64,97,.12),transparent 80%),linear-gradient(rgba(157,169,226,.027) 1px,transparent 1px),linear-gradient(90deg,rgba(157,169,226,.027) 1px,transparent 1px);background-size:auto,auto,70px 70px,70px 70px}
#exp .exp-inner{position:relative;max-width:1280px;margin:auto}
#exp button{font:inherit}
#exp button:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}
.eyebrow{display:flex;align-items:center;gap:13px;color:#a7a6bc;font:500 11px/1.3 var(--mono);letter-spacing:.15em;text-transform:uppercase}.eyebrow b{color:var(--pink);font-size:24px;line-height:0}
    .eyebrow:after{content:"";height:1px;flex:1;max-width:74px;background:linear-gradient(90deg,var(--pink),transparent)}
    .intro{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin:21px 0 48px}
    #exp .exp-headline{margin:0;max-width:760px;font-size:clamp(32px,4.1vw,61px);font-weight:600;line-height:1.08;letter-spacing:-.055em;text-shadow:0 2px 20px rgba(2,2,9,.8)}
    #exp .exp-headline em{font-style:normal;color:var(--lime)}
    .intro p{max-width:260px;margin:0 0 4px;color:var(--muted);font:400 12px/1.8 var(--mono)}
    .layout{display:grid;grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);gap:clamp(30px,5vw,82px);align-items:start}
    .timeline{position:relative;padding:0 0 0 35px}
    .timeline:before{content:"";position:absolute;top:29px;bottom:59px;left:11px;width:1px;background:linear-gradient(var(--cyan),rgba(86,223,255,.36) 28%,rgba(229,59,213,.25) 65%,rgba(99,110,170,.14))}
    .track-progress{position:absolute;left:10px;top:29px;width:3px;height:0;background:linear-gradient(var(--cyan),var(--lime));box-shadow:0 0 15px var(--cyan);transition:height .65s cubic-bezier(.2,.7,.1,1);pointer-events:none}
    .era{width:100%;display:block;position:relative;text-align:left;cursor:pointer;padding:19px 22px 21px 23px;margin:0 0 9px;background:transparent;border:1px solid transparent;border-radius:8px;color:inherit;transition:background .35s,border-color .35s,transform .35s}
    .era:hover{background:rgba(46,36,74,.36);transform:translateX(4px)}
    .era[aria-selected="true"]{background:linear-gradient(100deg,rgba(42,29,71,.82),rgba(28,21,54,.38));border-color:rgba(131,114,176,.23);box-shadow:inset 3px 0 0 var(--cyan),0 14px 40px rgba(0,0,0,.10)}
    .era:before{content:"";position:absolute;left:-31px;top:28px;width:13px;height:13px;border:1px solid rgba(86,223,255,.6);border-radius:50%;background:#05050d;box-shadow:0 0 0 4px rgba(86,223,255,.045);transition:.35s}
    .era[aria-selected="true"]:before{background:var(--cyan);border-color:var(--cyan);box-shadow:0 0 0 5px rgba(86,223,255,.11),0 0 22px rgba(86,223,255,.8)}
    .era small{display:block;margin-bottom:9px;color:#8c899e;font:500 10px/1.3 var(--mono);letter-spacing:.18em}
    .era[aria-selected="true"] small{color:var(--cyan)}
    .era strong{display:block;font-size:clamp(17px,1.55vw,23px);font-weight:600;line-height:1.25;letter-spacing:-.025em}
    .era .meta{display:block;margin-top:5px;color:var(--lime);font:500 11px/1.5 var(--mono)}
    .era .abstract{display:block;margin-top:10px;max-width:500px;color:#9a97aa;font:400 11px/1.6 var(--mono)}
    .era:not([aria-selected="true"]) .abstract{display:none}
    .folio{display:flex;align-items:center;gap:12px;margin:21px 0 0 23px;color:#68697f;font:500 10px/1 var(--mono);letter-spacing:.14em}.folio:before{content:"";width:30px;height:1px;background:#68697f}
    .specimen{position:sticky;top:160px;perspective:800px}
    .specimen-shell{position:relative;overflow:hidden;min-height:557px;border:1px solid rgba(120,136,201,.25);background:linear-gradient(157deg,rgba(19,18,41,.60),rgba(12,10,28,.70));box-shadow:0 40px 100px rgba(0,0,0,.18),inset 0 1px 0 rgba(200,211,255,.1);border-radius:9px;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .35s ease,box-shadow .35s ease}
    .specimen-shell:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 51% 44%,rgba(107,80,182,.13),transparent 50%),repeating-linear-gradient(0deg,transparent 0 28px,rgba(157,174,234,.025) 29px 30px)}
    .specimen-shell:after{content:"";position:absolute;inset:0;pointer-events:none;border:1px solid rgba(255,255,255,.045);border-radius:9px}
    .panel-head{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:19px 23px;border-bottom:1px solid var(--line);color:#aaa8c2;font:500 10px/1 var(--mono);letter-spacing:.12em}.panel-head > span:first-child:before{content:"";display:inline-block;width:7px;height:7px;margin-right:11px;background:var(--lime);border-radius:50%;box-shadow:0 0 12px var(--lime);vertical-align:1px}.panel-head > span:last-child{color:#6e718e}
    .visual{position:relative;height:330px;margin:0 16px;isolation:isolate}
    .visual:before{content:"";position:absolute;inset:13px 0 16px;border-radius:50%;background:radial-gradient(circle,rgba(66,57,118,.23),transparent 64%);filter:blur(11px)}
    .visual svg{position:relative;width:100%;height:100%;overflow:visible}
    .visual svg .orbit{stroke-dasharray:3 9;animation:orbit 18s linear infinite;transform-origin:center}
    .visual svg .flow{stroke-dasharray:7 8;animation:flow 7s linear infinite}
    .visual svg .pulse{animation:pulse 2.8s ease-in-out infinite}
    .visual svg .float{animation:float 4s ease-in-out infinite}
    .visual svg .float2{animation:float 5s ease-in-out infinite reverse}
    .visual[data-switch]{animation:reveal .5s ease both}
    .panel-content{position:relative;z-index:2;padding:5px 29px 29px;border-top:1px solid var(--line)}
    .panel-index{display:flex;justify-content:space-between;align-items:center;margin:20px 0 12px;color:var(--cyan);font:600 10px/1 var(--mono);letter-spacing:.16em}.panel-index .year{color:#8b88a7}
    .panel-content h3{margin:0;font-size:clamp(24px,2.2vw,32px);line-height:1.16;font-weight:600;letter-spacing:-.04em}
    .panel-content p{min-height:61px;max-width:610px;margin:13px 0 20px;color:#aaa7bd;font:400 12px/1.7 var(--mono)}
    .tags{display:flex;gap:7px;flex-wrap:wrap}.tags span{padding:8px 10px;border:1px solid rgba(86,223,255,.21);color:#a7dce8;background:rgba(86,223,255,.035);font:500 9px/1 var(--mono);letter-spacing:.045em}
    .panel-bottom{display:flex;align-items:center;justify-content:space-between;padding:0 29px 24px;color:#6e718f;font:500 9px/1.2 var(--mono);letter-spacing:.1em}.panel-bottom b{font-weight:500;color:var(--pink)}
    @keyframes flow{to{stroke-dashoffset:-120}}
    @keyframes orbit{to{stroke-dashoffset:-150}}
    @keyframes pulse{50%{opacity:.43;transform:scale(.94)}}
    @keyframes float{50%{transform:translateY(-6px)}}
    @keyframes reveal{from{opacity:.4;transform:translateY(9px)}to{opacity:1;transform:none}}
    @media(max-width:900px){.intro{display:block}.intro p{max-width:500px;margin-top:17px}.layout{grid-template-columns:1fr}.timeline{order:2}.specimen{position:static;order:1}.specimen-shell{min-height:0}.visual{height:290px}.panel-content p{min-height:0}}
    @media(max-width:560px){.intro{margin:18px 0 26px}.intro p{font-size:11px}.layout{gap:31px}.visual{height:230px;margin:0 7px}.specimen-shell{border-radius:5px}.panel-head{padding:15px;font-size:8px}.panel-content{padding:0 17px 23px}.panel-content h3{font-size:24px}.panel-content p{font-size:11px}.panel-bottom{padding:0 17px 19px;font-size:8px}.era{padding:15px 14px 17px;margin-bottom:5px}.era strong{font-size:17px}.era .abstract{font-size:10px}.timeline{padding-left:27px}.timeline:before{left:8px}.track-progress{left:7px}.era:before{left:-25px;width:11px;height:11px}}
    @media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:900px){#exp.exp-evolution{scroll-margin-top:160px}}
@media(max-width:560px){#exp.exp-evolution{padding:42px 20px 62px;scroll-margin-top:200px}}
