.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}}
.validation{text-align:center;padding:80px 0}.validation-label{font-family:var(--mono);letter-spacing:3px;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:48px;font-size:11px;font-weight:600}.logo-grid{--logo-filter:brightness(0) invert(1);--logo-opacity:.4;--logo-opacity-hover:.85}html[data-theme=day] .logo-grid,html[data-theme=dawn] .logo-grid{--logo-filter:brightness(0);--logo-opacity:.35;--logo-opacity-hover:.75}.logo-grid{background:var(--border-subtle);border:1px solid var(--border-subtle);border-radius:16px;grid-template-columns:repeat(4,1fr);gap:1px;display:grid;overflow:hidden}.logo-cell{background:var(--bg-primary);justify-content:center;align-items:center;min-height:100px;padding:36px 32px;transition:all .35s cubic-bezier(.16,1,.3,1);display:flex;position:relative}.logo-cell:hover{background:var(--bg-card)}.logo-cell .logo-wrap{width:140px;height:44px;filter:var(--logo-filter);opacity:var(--logo-opacity);justify-content:center;align-items:center;transition:opacity .35s,transform .35s cubic-bezier(.16,1,.3,1);display:flex}.logo-cell .logo-wrap svg{object-fit:contain;max-width:140px;max-height:44px;display:block;width:100%!important;height:100%!important}.logo-cell .logo-wrap.w{width:160px;height:36px}.logo-cell .logo-wrap.w svg{max-width:160px;max-height:36px}.logo-cell .logo-wrap.sq{width:90px;height:90px}.logo-cell .logo-wrap.sq svg,.logo-cell .logo-wrap.sq img{max-width:90px;max-height:90px}.logo-cell .logo-wrap.sq-lg{width:110px;height:110px}.logo-cell .logo-wrap.sq-lg svg,.logo-cell .logo-wrap.sq-lg img{max-width:110px;max-height:110px}.logo-cell .logo-wrap.sq-xl{width:140px;height:140px}.logo-cell .logo-wrap.sq-xl svg,.logo-cell .logo-wrap.sq-xl img{max-width:140px;max-height:140px}.logo-cell .logo-wrap.full{width:200px;height:160px}.logo-cell .logo-wrap.full svg,.logo-cell .logo-wrap.full img{max-width:200px;max-height:160px}.logo-cell .logo-wrap img{object-fit:contain;display:block;width:100%!important;height:100%!important}.logo-cell:hover .logo-wrap{opacity:0;transform:none}.logo-text{font-family:var(--font-heading);letter-spacing:-.5px;color:var(--text-primary);white-space:nowrap;-webkit-user-select:none;user-select:none;filter:var(--logo-filter);opacity:var(--logo-opacity);font-size:32px;font-weight:800;transition:opacity .35s,transform .35s cubic-bezier(.16,1,.3,1)}.logo-cell:hover .logo-text{opacity:0;transform:none}.logo-overlay{background:var(--bg-card);opacity:0;pointer-events:none;z-index:2;text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:16px 12px;transition:opacity .3s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;inset:0}.logo-cell:hover .logo-overlay{opacity:1}.logo-overlay-name{font-family:var(--heading);letter-spacing:-.2px;color:var(--text-primary);margin-bottom:4px;font-size:14px;font-weight:700;line-height:1.2}.logo-overlay-desc{font-family:var(--sans);letter-spacing:.2px;color:var(--text-secondary);font-size:11px;font-weight:400;line-height:1.35}.logo-cell:after{content:"";background:radial-gradient(ellipse at center, var(--accent-glow) 0%, transparent 70%);opacity:0;pointer-events:none;z-index:1;transition:opacity .35s;position:absolute;inset:0}.logo-cell:hover:after{opacity:1}.logo-cell.statement-cell{text-align:left;grid-column:span 2;padding:32px 40px}.logo-cell.statement-cell:hover{background:var(--bg-primary)}.logo-cell.statement-cell:after{display:none}.statement-text{font-family:var(--sans);color:var(--text-tertiary);letter-spacing:.1px;margin:0;font-size:15px;font-weight:400;line-height:1.5}.statement-text span{color:var(--accent);font-weight:600}@media (max-width:900px){.logo-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:600px){.logo-grid{grid-template-columns:repeat(2,1fr)}.logo-cell{min-height:80px;padding:28px 20px}.logo-cell .logo-wrap{width:100px;height:32px}.logo-cell .logo-wrap svg{max-width:100px;max-height:32px}.logo-cell .logo-wrap.w{width:120px;height:28px}.logo-cell .logo-wrap.sq{width:40px;height:40px}.logo-cell .logo-wrap.sq-lg{width:56px;height:56px}.logo-cell .logo-wrap.sq-xl{width:70px;height:70px}.logo-cell .logo-wrap.full{width:100px;height:80px}}@media (max-width:480px){.logo-grid{grid-template-columns:1fr 1fr;gap:1px}.logo-cell{min-height:70px;padding:16px 12px}.logo-cell .logo-wrap,.logo-cell .logo-text{display:none}.logo-overlay{opacity:1;pointer-events:auto;padding:0;position:static}.logo-overlay-name{font-size:13px}.logo-overlay-desc{font-size:10px}.logo-cell:after{display:none}.logo-cell.statement-cell{grid-column:span 2;padding:16px 12px}.statement-text{font-size:13px}}
