.thesis-teaser{grid-template-columns:1fr 1fr;align-items:start;gap:64px;display:grid}.thesis-teaser-text{max-width:480px}.thesis-teaser-text .thesis-body{font-family:var(--font-sans);color:var(--text-secondary);margin-bottom:24px;font-size:16px;font-weight:400;line-height:1.7}.thesis-teaser-text .thesis-link{font-family:var(--font-sans);color:var(--accent);align-items:center;gap:8px;font-size:14px;font-weight:600;text-decoration:none;transition:gap .3s;display:inline-flex}.thesis-teaser-text .thesis-link:hover{gap:12px}.thesis-teaser-widget{justify-content:flex-end;display:flex}@media (max-width:900px){.thesis-teaser{grid-template-columns:1fr;gap:48px}.thesis-teaser-widget{justify-content:center}}.pipe-wrapper{width:580px;max-width:100%}.pipe{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:24px;position:relative;overflow:hidden}.pipe:before{content:"";z-index:5;background:linear-gradient(90deg,#7b7fe4,#7c5cfc,#a082ff);height:2px;position:absolute;top:0;left:0;right:0}.pipe>canvas{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.pipe-inner{z-index:1;padding:36px 28px 24px;position:relative}.pipe-title{font-family:var(--font-mono);letter-spacing:2px;text-transform:uppercase;color:var(--text-tertiary);text-align:center;margin-bottom:28px;font-size:10px;font-weight:500}.stages{flex-direction:column;gap:4px;display:flex}.stage{cursor:pointer;border-radius:14px;transition:all .45s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.stage:before{content:"";opacity:0;pointer-events:none;border-radius:14px;transition:opacity .5s;position:absolute;inset:0}.stage.active:before{opacity:1}.stage:first-child:before{background:radial-gradient(at 15% 30%,#7b7fe41a 0%,#0000 70%)}.stage:nth-child(2):before{background:radial-gradient(at 15% 30%,#646ee614 0%,#0000 70%)}.stage:nth-child(3):before{background:radial-gradient(at 15% 30%,#7c5cfc14 0%,#0000 70%)}.stage:nth-child(4):before{background:radial-gradient(at 15% 30%,#8c6eff14 0%,#0000 70%)}.stage:nth-child(5):before{background:radial-gradient(at 15% 30%,#a082ff1a 0%,#0000 70%)}.stage-row{z-index:1;grid-template-columns:48px 1fr auto;align-items:center;gap:16px;padding:16px 18px;display:grid;position:relative}.node{border-radius:14px;justify-content:center;align-items:center;width:48px;height:48px;transition:all .45s cubic-bezier(.16,1,.3,1);display:flex;position:relative}.node-num{font-family:var(--font-mono);z-index:1;font-size:15px;font-weight:700}.node:after{content:"";opacity:0;border:1.5px solid #0000;border-radius:18px;transition:all .5s cubic-bezier(.16,1,.3,1);position:absolute;inset:-5px;transform:scale(.75)}.stage.active .node{transform:scale(1.1)}.stage.active .node:after{opacity:1;transform:scale(1)}.stage:first-child .node{background:#7b7fe41f}.stage:first-child .node-num{color:#7b7fe4}.stage:first-child .node:after{border-color:#7b7fe440}.stage:nth-child(2) .node{background:#646ee61a}.stage:nth-child(2) .node-num{color:#646ee6e6}.stage:nth-child(2) .node:after{border-color:#646ee633}.stage:nth-child(3) .node{background:#7c5cfc1f}.stage:nth-child(3) .node-num{color:#7c5cfc}.stage:nth-child(3) .node:after{border-color:#7c5cfc40}.stage:nth-child(4) .node{background:#8c6eff1f}.stage:nth-child(4) .node-num{color:#8c6efff2}.stage:nth-child(4) .node:after{border-color:#8c6eff40}.stage:nth-child(5) .node{background:#a082ff26}.stage:nth-child(5) .node-num{color:#a082fff2}.stage:nth-child(5) .node:after{border-color:#a082ff4d}.stage .info{z-index:1}.label-row{align-items:baseline;gap:10px;display:flex}.stage .name{font-family:var(--font-heading);color:var(--text-primary);font-size:16px;font-weight:700;transition:color .3s}.stage.active .name{color:#fff}.stage .tag{font-family:var(--font-mono);letter-spacing:1px;text-transform:uppercase;opacity:0;border-radius:4px;padding:2px 7px;font-size:9px;font-weight:600;transition:all .4s cubic-bezier(.16,1,.3,1);transform:translate(-6px)}.stage.active .tag{opacity:1;transform:translate(0)}.stage:first-child .tag{color:#7b7fe4;background:#7b7fe41f}.stage:nth-child(2) .tag{color:#646ee6e6;background:#646ee61a}.stage:nth-child(3) .tag{color:#7c5cfc;background:#7c5cfc1a}.stage:nth-child(4) .tag{color:#8c6efff2;background:#8c6eff1a}.stage:nth-child(5) .tag{color:#a082fff2;background:#a082ff1f}.stage .desc{color:var(--text-tertiary);opacity:0;max-height:0;margin-top:0;font-size:13px;line-height:1.5;transition:max-height .5s cubic-bezier(.16,1,.3,1),opacity .35s 50ms,margin .4s;overflow:hidden}.stage.active .desc{opacity:1;max-height:50px;margin-top:6px}.stage-anim{opacity:0;z-index:1;max-height:0;padding:0 18px;transition:max-height .6s cubic-bezier(.16,1,.3,1),opacity .4s .1s,padding .5s;position:relative;overflow:hidden}.stage.active .stage-anim{opacity:1;max-height:160px;padding:0 18px 16px}.stage-anim canvas{background:#ffffff04;border:1px solid #ffffff0a;border-radius:10px;width:100%;height:120px;display:block}.skip{font-family:var(--font-mono);color:var(--text-tertiary);text-align:center;letter-spacing:.3px;z-index:1;background:#7b7fe408;border:1px dashed #7b7fe41f;border-radius:12px;margin-top:18px;padding:13px 20px;font-size:11px;font-weight:500;transition:all .3s;position:relative}.skip:hover{background:#7b7fe40f;border-color:#7b7fe440}.skip em{color:var(--accent);font-style:normal;font-weight:700}.pips{z-index:1;justify-content:center;gap:6px;margin-top:14px;display:flex;position:relative}.pip{cursor:pointer;background:#ffffff0f;border-radius:2px;width:32px;height:3px;transition:all .5s cubic-bezier(.16,1,.3,1)}.pip.on{background:var(--accent);box-shadow:0 0 8px #7b7fe466}.pip:nth-child(3).on{background:#7c5cfc;box-shadow:0 0 8px #7c5cfc66}.pip:nth-child(4).on{background:#8c6effe6;box-shadow:0 0 8px #8c6eff66}.pip:nth-child(5).on{background:#a082ffe6;box-shadow:0 0 8px #a082ff66}@media (max-width:560px){.pipe-inner{padding:28px 14px 18px}.stage-row{grid-template-columns:40px 1fr;gap:12px;padding:14px 12px}.node{border-radius:10px;width:40px;height:40px}.stage .name{font-size:14px}.stage-anim canvas{height:100px}}@media (max-width:480px){.pipe-wrapper{width:100%}.pipe-inner{padding:20px 12px 16px}.stage-row{gap:10px;padding:12px 10px}.node{width:36px;height:36px}.stage .name{font-size:13px}.stage .desc{font-size:12px}.stage-anim canvas{height:80px}}@media (max-width:375px){.pipe-inner{padding:16px 8px 12px}.stage-row{grid-template-columns:32px 1fr;gap:8px;padding:10px 8px}.node{border-radius:8px;width:32px;height:32px}.stage .name{font-size:12px}.stage .desc{font-size:11px}.stage-anim canvas{height:64px}}
