:is(.ProjectBody-module-scss-module__aqVCOq__project-body h2,.ProjectBody-module-scss-module__aqVCOq__project-body h3){scroll-margin-top:6.5rem}.ProjectBody-module-scss-module__aqVCOq__project-body figure{margin:2.5rem 0}.ProjectBody-module-scss-module__aqVCOq__project-body figure img{width:100%;margin:0;display:block}.ProjectBody-module-scss-module__aqVCOq__project-body figcaption{text-align:center;color:var(--text-secondary);margin-top:.75rem;font-size:.9rem;line-height:1.5}.ProjectBody-module-scss-module__aqVCOq__project-body img{cursor:zoom-in}.ProjectBody-module-scss-module__aqVCOq__project-body table{border-collapse:collapse;width:100%;margin:2rem 0;font-size:.95rem;display:block;overflow-x:auto}:is(.ProjectBody-module-scss-module__aqVCOq__project-body th,.ProjectBody-module-scss-module__aqVCOq__project-body td){border:1px solid var(--glass-border);text-align:left;color:var(--text-secondary);padding:.6rem .9rem}.ProjectBody-module-scss-module__aqVCOq__project-body th{background:var(--bg-secondary);color:var(--text-primary);font-weight:600}.ProjectBody-module-scss-module__aqVCOq__project-body__diagram{border:1px solid var(--glass-border);background:var(--bg-secondary);cursor:zoom-in;border-radius:12px;flex-direction:column;align-items:center;padding:1.5rem;display:flex;overflow-x:auto}.ProjectBody-module-scss-module__aqVCOq__project-body__diagram:empty{min-height:12rem}.ProjectBody-module-scss-module__aqVCOq__project-body__diagram svg{max-width:100%;height:auto}@media (prefers-reduced-motion:no-preference){:is(.ProjectBody-module-scss-module__aqVCOq__project-body__diagram .nodes>.node,.ProjectBody-module-scss-module__aqVCOq__project-body__diagram .edgePaths>path,.ProjectBody-module-scss-module__aqVCOq__project-body__diagram .edgeLabels>.edgeLabel){opacity:0;transition:opacity var(--reveal-fade) ease calc(var(--step,0)*var(--reveal-step))}.ProjectBody-module-scss-module__aqVCOq__project-body__diagram .nodes>.node{transform-box:fill-box;transform-origin:50%;transition:opacity var(--reveal-fade) ease calc(var(--step,0)*var(--reveal-step)),scale var(--reveal-fade) cubic-bezier(.34, 1.56, .64, 1) calc(var(--step,0)*var(--reveal-step)),filter .3s ease;scale:.8}:is(.ProjectBody-module-scss-module__aqVCOq__project-body__diagram--playing .nodes>.node,.ProjectBody-module-scss-module__aqVCOq__project-body__diagram--playing .edgePaths>path,.ProjectBody-module-scss-module__aqVCOq__project-body__diagram--playing .edgeLabels>.edgeLabel){opacity:1}.ProjectBody-module-scss-module__aqVCOq__project-body__diagram--playing .nodes>.node{scale:1}}.ProjectBody-module-scss-module__aqVCOq__project-body__diagram:has(>pre){cursor:auto;background:0 0;border:0;padding:0}:is(.ProjectBody-module-scss-module__aqVCOq__project-body__node--active rect,.ProjectBody-module-scss-module__aqVCOq__project-body__node--active polygon,.ProjectBody-module-scss-module__aqVCOq__project-body__node--active path,.ProjectBody-module-scss-module__aqVCOq__project-body__node--visited rect,.ProjectBody-module-scss-module__aqVCOq__project-body__node--visited polygon,.ProjectBody-module-scss-module__aqVCOq__project-body__node--visited path){transition:fill .3s;fill:color-mix(in srgb, var(--accent) 14%, var(--bg-secondary))!important}.ProjectBody-module-scss-module__aqVCOq__project-body__node--active{filter:drop-shadow(0 0 8px var(--accent))}:is(.ProjectBody-module-scss-module__aqVCOq__project-body__node--active rect,.ProjectBody-module-scss-module__aqVCOq__project-body__node--active polygon,.ProjectBody-module-scss-module__aqVCOq__project-body__node--active path){fill:color-mix(in srgb, var(--accent) 30%, var(--bg-secondary))!important;stroke-width:2.5px!important}.ProjectBody-module-scss-module__aqVCOq__project-body__arrow--lit{stroke:var(--accent)!important;stroke-width:2.5px!important}.ProjectBody-module-scss-module__aqVCOq__project-body__token{fill:var(--accent);filter:drop-shadow(0 0 6px var(--accent));pointer-events:none}.ProjectBody-module-scss-module__aqVCOq__project-body__walkthrough{flex-direction:column;align-items:center;gap:.25rem;min-height:2.9rem;display:flex}.ProjectBody-module-scss-module__aqVCOq__project-body__walkthrough-step{color:var(--text-primary);font-weight:600}.ProjectBody-module-scss-module__aqVCOq__project-body__lightbox{border:1px solid var(--glass-border);background:var(--bg-primary);width:min(96vw,1400px);max-width:none;max-height:92vh;color:var(--text-primary);box-shadow:var(--glass-shadow);border-radius:12px;margin:auto;padding:2.5rem 1rem 1rem}.ProjectBody-module-scss-module__aqVCOq__project-body__lightbox::backdrop{background:#000000bf}.ProjectBody-module-scss-module__aqVCOq__project-body__close{color:var(--text-secondary);cursor:pointer;background:0 0;border:0;font-size:1.75rem;line-height:1;position:absolute;top:.4rem;right:.75rem}.ProjectBody-module-scss-module__aqVCOq__project-body__close:hover{color:var(--accent)}.ProjectBody-module-scss-module__aqVCOq__project-body__enlarged{object-fit:contain;max-width:100%;max-height:calc(92vh - 4rem);margin:0 auto;display:block}.ProjectBody-module-scss-module__aqVCOq__project-body__enlarged--diagram{overflow:auto}.ProjectBody-module-scss-module__aqVCOq__project-body__enlarged--diagram svg{width:100%;min-width:640px;height:auto;max-width:none!important}
.ProjectContents-module-scss-module__mTPpOW__project-contents{font-size:.92rem}.ProjectContents-module-scss-module__mTPpOW__project-contents--sidebar{max-height:calc(100vh - 8rem);position:sticky;top:6.5rem;overflow-y:auto}.ProjectContents-module-scss-module__mTPpOW__project-contents--inline{border:1px solid var(--glass-border);background:var(--bg-secondary);border-radius:12px;margin-bottom:2.5rem;padding:1rem 1.25rem}.ProjectContents-module-scss-module__mTPpOW__project-contents__title,.ProjectContents-module-scss-module__mTPpOW__project-contents__summary{letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:.75rem;font-size:.8rem;font-weight:600}.ProjectContents-module-scss-module__mTPpOW__project-contents__summary{cursor:pointer;margin-bottom:0}details[open]>.ProjectContents-module-scss-module__mTPpOW__project-contents__summary{margin-bottom:.75rem}.ProjectContents-module-scss-module__mTPpOW__project-contents__list{border-left:1px solid var(--glass-border);flex-direction:column;gap:.15rem;list-style:none;display:flex}.ProjectContents-module-scss-module__mTPpOW__project-contents__item--sub{padding-left:.85rem}.ProjectContents-module-scss-module__mTPpOW__project-contents__link{color:var(--text-secondary);transition:var(--transition);border-left:2px solid #0000;margin-left:-1px;padding:.3rem 0 .3rem .9rem;line-height:1.4;text-decoration:none;display:block}.ProjectContents-module-scss-module__mTPpOW__project-contents__link:hover{color:var(--text-primary)}.ProjectContents-module-scss-module__mTPpOW__project-contents__link--active{border-left-color:var(--accent);color:var(--accent);font-weight:500}.ProjectContents-module-scss-module__mTPpOW__project-contents__link--active:hover{color:var(--accent)}
.ProjectPage-module-scss-module___83eWG__project-page{overflow:clip}.ProjectPage-module-scss-module___83eWG__project-page__inner{max-width:1120px}.ProjectPage-module-scss-module___83eWG__project-page__back{z-index:20;color:var(--text-secondary);align-items:center;gap:.4rem;margin-bottom:2rem;font-size:.95rem;display:inline-flex;position:relative}.ProjectPage-module-scss-module___83eWG__project-page__hero{flex-direction:column;gap:1.25rem;max-width:800px;margin-bottom:3rem;display:flex}.ProjectPage-module-scss-module___83eWG__project-page__title{line-height:1.2}.ProjectPage-module-scss-module___83eWG__project-page__summary{color:var(--text-secondary);font-size:1.2rem;line-height:1.6}.ProjectPage-module-scss-module___83eWG__project-page__tags{flex-wrap:wrap;gap:.5rem;list-style:none;display:flex}.ProjectPage-module-scss-module___83eWG__project-page__tag{border:1px solid var(--accent);background:var(--accent-glow);color:var(--text-primary);border-radius:12px;padding:.2rem .8rem;font-size:.8rem}.ProjectPage-module-scss-module___83eWG__project-page__links{flex-wrap:wrap;gap:.75rem;display:flex}.ProjectPage-module-scss-module___83eWG__project-page__cover{aspect-ratio:16/9;border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:16px;margin-bottom:2.5rem;position:relative;overflow:hidden}@media (min-width:1024px){.ProjectPage-module-scss-module___83eWG__project-page__cover{aspect-ratio:21/9}}.ProjectPage-module-scss-module___83eWG__project-page__cover-image{object-fit:cover}.ProjectPage-module-scss-module___83eWG__project-page__layout{max-width:800px}@media (min-width:1024px){.ProjectPage-module-scss-module___83eWG__project-page__layout--contents{grid-template-columns:minmax(0,1fr) 240px;gap:4rem;max-width:none;display:grid}}.ProjectPage-module-scss-module___83eWG__project-page__body{min-width:0}@media (min-width:1024px){.ProjectPage-module-scss-module___83eWG__project-page__contents-inline{display:none}}.ProjectPage-module-scss-module___83eWG__project-page__contents-sidebar{display:none}@media (min-width:1024px){.ProjectPage-module-scss-module___83eWG__project-page__contents-sidebar{display:block}}.ProjectPage-module-scss-module___83eWG__project-page__footer{border-top:1px solid var(--glass-border);flex-wrap:wrap;justify-content:space-between;gap:1rem;max-width:800px;margin-top:5rem;padding-top:2rem;display:flex}
