.thesis{padding-top:var(--space-16);padding-bottom:var(--space-12)}.thesis .eyebrow{margin-bottom:var(--space-5);display:inline-block}.thesis-lead{font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:var(--text-4xl);line-height:var(--leading-tight);letter-spacing:var(--tracking-display);max-width:18ch;margin:0 0 var(--space-6);text-wrap:balance}.thesis-lead .hl{color:var(--accent)}.thesis-sub{color:var(--fg-muted);font-size:var(--text-lg);max-width:56ch;margin:0 0 var(--space-8)}.signal{gap:var(--space-3) var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;display:flex}.signal .sig{align-items:baseline;gap:var(--space-2);display:flex}.signal .sig b{font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:var(--text-xl)}.signal .sig span{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--fg-faint)}.signal .sig.path span{text-transform:none;letter-spacing:var(--tracking-mono);color:var(--fg-muted);font-size:var(--text-sm)}.signal .sig.path b{color:var(--accent);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--weight-medium)}.thesis-grid{gap:var(--space-12);grid-template-columns:1fr auto;align-items:center;display:grid}.ico{color:var(--accent);border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-md);transition:border-color var(--dur), box-shadow var(--dur), transform var(--dur) var(--ease-out);place-items:center;display:grid}.ico svg{display:block}.ico:hover{border-color:var(--accent-line);box-shadow:var(--shadow-md);transform:translateY(-3px)}.ico.pri{background:linear-gradient(180deg, color-mix(in oklab, var(--accent) 18%, var(--surface)), var(--surface));border-color:var(--accent-line);box-shadow:var(--glow-accent)}.constel{flex:none;width:340px;height:330px;position:relative}.constel:before{content:"";background:radial-gradient(circle at 50% 50%, color-mix(in oklab, var(--accent) 12%, transparent), transparent 64%);pointer-events:none;border-radius:50%;position:absolute;inset:0}.constel .ico{position:absolute}.constel .ico svg{width:22px;height:22px}.constel .ico img{object-fit:contain;border-radius:5px;width:22px;height:22px;display:block}.constel .ico.hub{border-radius:var(--radius-lg);z-index:2;width:80px;height:80px;top:50%;left:50%;transform:translate(-50%,-50%)}.constel .ico.hub svg{width:38px;height:38px}.constel .ico.hub:hover{transform:translate(-50%,-50%)translateY(-3px)}@media (max-width:920px){.thesis-grid{gap:var(--space-10);grid-template-columns:minmax(0,1fr);justify-items:start}.constel{margin-top:var(--space-2)}}@media (max-width:480px){.thesis-grid{gap:0}.thesis-grid>div:first-child{display:contents}.thesis-grid .eyebrow{order:1}.thesis-lead{order:2}.constel{margin:var(--space-3) 0 var(--space-7);order:3;justify-self:center}.thesis-sub{order:4}.signal{order:5}}@media (max-width:460px){.constel{zoom:.8}}.ogrid{gap:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.ocard{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-8) var(--space-6);transition:border-color var(--dur), box-shadow var(--dur), transform var(--dur) var(--ease-out);flex-direction:column;display:flex}.ocard:hover{border-color:var(--accent-line);box-shadow:var(--shadow-md);transform:translateY(-2px)}.ocard .ok{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--fg-faint);margin-bottom:var(--space-3)}.ocard h3{font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight);margin-bottom:var(--space-3)}.ocard h3 .hl{color:var(--accent)}.ocard p{color:var(--fg-muted);font-size:var(--text-sm);margin:0 0 var(--space-5);flex:1}.ocard .feat-tags{flex-wrap:wrap;gap:6px;display:flex}@media (max-width:760px){.ogrid{grid-template-columns:1fr}}.section.arc{display:block}.arc .timeline{max-width:none}.arc .era{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--accent);align-items:center;gap:var(--space-3);margin:var(--space-8) 0 var(--space-2);display:flex}.arc .era:after{content:"";background:var(--border);flex:1;height:1px}.arc .era.first{margin-top:0}.arc .era.muted{color:var(--fg-faint)}.arc .pivot{align-items:center;gap:var(--space-4);margin:var(--space-10) 0;padding:var(--space-5) var(--space-6);border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:var(--radius-md);display:flex}.arc .pivot .pv-k{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--accent);white-space:nowrap}.arc .pivot .pv-t{color:var(--fg);font-size:var(--text-sm)}.arc .tl.lite{padding:var(--space-4) 0}.arc .tl.lite p{display:none}.arc .tl .tag{margin-top:var(--space-2);font-family:var(--font-mono);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--success);background:var(--success-soft);border-radius:var(--radius-full);padding:2px 9px;font-size:10px;display:inline-block}.arc .tl .tools{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.arc .tl.lite .tools{margin-top:var(--space-2)}.arc .tl .tools .tool.is-hidden{display:none}.arc .tl .more-btn{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--accent);border:1px dashed var(--accent-line);border-radius:var(--radius-full);cursor:pointer;letter-spacing:var(--tracking-mono);transition:background var(--dur), border-color var(--dur), color var(--dur);background:0 0;padding:4px 11px}.arc .tl .more-btn:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--fg)}.arc .tl-projects{margin-top:var(--space-4)}.arc .tl-projects .tlp-k{font-family:var(--font-mono);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--fg-faint);margin-bottom:var(--space-2);font-size:10px;display:block}.arc .proj-links{gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.arc .proj-link{cursor:pointer;font-family:var(--font-display);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:var(--accent-line);text-decoration-color:var(--accent-line);text-underline-offset:3px;transition:text-decoration-color var(--dur), color var(--dur);background:0 0;border:0;padding:0}.arc .proj-link:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.arc .proj-static{font-family:var(--font-display);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--fg)}.arc .proj-note{font-family:var(--font-sans);font-weight:var(--weight-regular);color:var(--fg-faint)}.proj-modal{color:var(--fg);background:0 0;border:0;padding:0}.proj-modal::backdrop{background:color-mix(in oklab, var(--bg) 72%, transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.proj-modal .pm-card{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:min(560px,92vw);box-shadow:var(--shadow-lg);padding:var(--space-8);position:relative}.proj-modal .pm-close{top:var(--space-4);right:var(--space-4);background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius-full);width:32px;height:32px;color:var(--fg-muted);cursor:pointer;transition:color var(--dur), border-color var(--dur);place-items:center;font-size:18px;line-height:1;display:grid;position:absolute}.proj-modal .pm-close:hover{color:var(--fg);border-color:var(--accent-line)}.proj-modal .pm-body h4{font-family:var(--font-display);font-size:var(--text-xl);margin:0 var(--space-8) var(--space-3) 0;color:var(--fg)}.proj-modal .pm-body p{color:var(--fg-muted);font-size:var(--text-md);line-height:var(--leading-normal);margin:0}.constel-links{pointer-events:none;opacity:0;width:100%;height:100%;transition:opacity .6s var(--ease);z-index:0;position:absolute;inset:0;overflow:visible}.constel-links line{stroke:var(--accent)}.constel-links g.base line{stroke-opacity:.1;stroke-width:1px}.constel-links g.pulse line{stroke-opacity:0;stroke-width:2px;stroke-linecap:round;stroke-dasharray:14 1600}.constel .ico{z-index:1}html.do-anim .constel .ico{opacity:0}.constel.play .ico:not(.hub){animation-delay:var(--dl,0s);transform-origin:var(--ox,50%) var(--oy,50%);animation:orbitIn .95s var(--ease-out) both!important}.constel.play .ico.hub{animation:hubIn .55s var(--ease-out) both!important}@keyframes orbitIn{0%{opacity:0;transform:rotate(var(--spin,-150deg)) scale(.55)}55%{opacity:1}to{opacity:1;transform:rotate(0)scale(1)}}@keyframes hubIn{0%{opacity:0;scale:.3}to{opacity:1;scale:1}}.constel.orchestrate .constel-links{opacity:1}.constel.orchestrate .constel-links g.pulse line{animation-delay:var(--dl,0s);animation:signal var(--sd,2.8s) linear infinite!important}.constel.orchestrate .ico:not(.hub){opacity:1;animation-delay:var(--dl,0s);animation:icoPing var(--sd,2.8s) var(--ease) infinite!important}.constel.orchestrate .ico.hub{opacity:1;animation:hubBreathe 3s var(--ease) infinite!important}@keyframes signal{0%{stroke-dashoffset:0;stroke-opacity:0}12%{stroke-opacity:.9}86%{stroke-opacity:.9}to{stroke-dashoffset:calc(-1 * (var(--len,120px) + 14px));stroke-opacity:0}}@keyframes icoPing{0%,70%,to{box-shadow:var(--shadow-xs)}86%{box-shadow:0 0 0 3px var(--accent-soft), var(--glow-accent)}}@keyframes hubBreathe{0%,to{box-shadow:var(--glow-accent)}50%{box-shadow:0 10px 46px color-mix(in oklab, var(--accent) 55%, transparent)}}
