canvas{top:0;left:0;width:100vw;height:100vh;display:block;position:absolute;touch-action:none;-webkit-user-select:none;user-select:none;pointer-events:auto}canvas#bg{position:fixed}a:hover{text-decoration:underline}section a{color:#c3ffcb;text-decoration:none}main{color:#dcdcdc;position:relative;width:100%;padding:4rem 0rem;display:grid;grid-template-columns:repeat(12,1fr)}#section-frame{position:absolute;top:50%;left:40vw;width:60vw;height:80vh;pointer-events:none}#section-frame>section{position:absolute;top:0;right:0;bottom:0;left:0;background:#23232399;border-radius:2rem 0 0 2rem;padding:2rem 5rem 2rem 2rem;box-sizing:border-box;opacity:0;pointer-events:none;transition:opacity .5s ease}#section-frame>section.visible{opacity:1;pointer-events:auto}#section-frame>section .content-wrapper{width:100%;height:100%;overflow-x:auto;overflow-y:auto;box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#dbdbdb transparent;padding-right:1rem}#section-frame.active .arrow-btn{opacity:1;pointer-events:auto}#nav{position:absolute;right:25px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:14px;z-index:1000;opacity:0;pointer-events:none;transition:opacity .5s ease}#nav.visible{opacity:1;pointer-events:auto}.nav-dot{width:14px;height:14px;border-radius:50%;background-color:gray;transition:background-color .3s ease}.nav-dot:hover{cursor:pointer}.nav-dot.active{background-color:#dcdcdc}.nav-tooltip{position:fixed;background:#000000d9;color:#fff;padding:4px 8px;border-radius:4px;font-size:.85rem;white-space:normal;pointer-events:none;z-index:9999;transform:translate(-50%);transition:opacity .1s ease;opacity:0}h1,h2,h3{font-family:DM Sans,sans-serif;color:#78d782}html,body{font-family:DM Sans,sans-serif;margin:0;padding:0;overflow:hidden;height:100%;width:100%;touch-action:manipulation}.repo-card{display:flex;flex-wrap:wrap;align-items:flex-start;border:1px solid #dddddd33;border-radius:8px;padding:16px;margin-bottom:20px;box-shadow:0 2px 6px #0000000d;max-width:100%;box-sizing:border-box}.repo-image{width:150px;height:auto;border-radius:6px;margin-right:16px;flex-shrink:0}.repo-content{flex:1;min-width:0}.repo-title{font-size:1.25rem;font-weight:600}.repo-language{font-size:.9rem;color:#555}input[type=range]{appearance:none;-webkit-appearance:none;-moz-appearance:none;width:100%;background:transparent;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{height:6px;background:linear-gradient(to right,rgb(120,215,130) var(--value-percent),#2a2a2a var(--value-percent));border-radius:999px;transition:background .2s ease}input[type=range]::-moz-range-track{height:6px;background:#2a2a2a;border-radius:999px}input[type=range]::-moz-range-progress{height:6px;background:#78d782;border-radius:999px}input[type=range]::-webkit-slider-thumb{-moz-appearance:none;appearance:none;-webkit-appearance:none;height:18px;width:18px;border-radius:50%;background:#78d782;border:2px solid #111;box-shadow:0 0 0 4px #78d78200;transition:box-shadow .2s ease,transform .15s ease;margin-top:-6px}input[type=range]::-moz-range-thumb{height:18px;width:18px;border-radius:50%;background:#78d782;border:2px solid #111;transition:box-shadow .2s ease,transform .15s ease}input[type=range]:hover::-webkit-slider-thumb{box-shadow:0 0 0 6px #78d78240}input[type=range]:active::-webkit-slider-thumb{transform:scale(1.15);box-shadow:0 0 0 8px #78d78259}input[type=range]:hover::-moz-range-thumb{box-shadow:0 0 0 6px #78d78240}input[type=range]:active::-moz-range-thumb{transform:scale(1.15);box-shadow:0 0 0 8px #78d78259}.plot{width:100%;height:40vh}.arrow-btn{position:absolute;z-index:9999;width:40px;height:40px;background:#ffffff0d;border:none;border-radius:50%;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .5s ease,transform .15s ease,background .15s ease}.arrow-btn:hover{transform:scale(1.1);background:#ffffff1f}.arrow-btn:before{content:"";position:absolute;top:50%;left:50%;border-style:solid;border-width:8px 6px 0 6px;border-color:white transparent transparent transparent;transform:translate(-50%,-50%)}#prev-section:before{transform:translate(-50%,-50%) rotate(180deg)}#next-section:before{transform:translate(-50%,-50%) rotate(0)}#prev-section{top:12px;right:12px}#next-section{bottom:12px;right:12px}#terminal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;background:#000000b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:2000;opacity:1;pointer-events:auto;transition:opacity .6s ease}#terminal-overlay.fade-out{opacity:0;pointer-events:none}#terminal-box{position:relative;width:60vw;max-width:800px;height:50vh;background:#000;border:2px solid #0f0;padding:2rem;box-sizing:border-box;overflow:hidden;font-family:monospace;color:#0f0;font-size:1.1rem;box-shadow:0 0 20px #0f0;transition:opacity .2s ease}#terminal-box.hidden{opacity:0;pointer-events:none}#terminal-scroll{height:calc(100% - 2rem);overflow-y:auto;padding-right:1rem;scrollbar-width:none}#terminal-scroll::-webkit-scrollbar{display:none}#terminal-text{white-space:pre-wrap;margin:0;line-height:1.5rem}#terminal-cursor{display:inline-block;width:.5rem;height:1.1rem;background:#0f0;animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}#terminal-continue{position:absolute;bottom:1rem;right:1rem;background:#000;border:1px solid #0f0;color:#0f0;padding:.5rem 1rem;font-family:monospace;cursor:pointer;z-index:10;opacity:0}.hang{display:inline-block;white-space:pre-wrap;vertical-align:top;padding-left:1.5rem;text-indent:-1.5rem}@media (max-width: 768px){#section-frame{top:55%;left:5vw;width:90vw;height:85vh}#section-frame>section{border-radius:1rem;padding:1.25rem;padding-right:12vw;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}#nav{right:22px;gap:12px}.nav-dot{width:12px;height:12px}.arrow-btn{width:32px;height:32px}.arrow-btn:before{border-width:6px 4px 0 4px}.repo-card{flex-direction:column;align-items:center;text-align:center}.repo-image{margin:0 0 12px}.repo-content{text-align:left;width:100%}#terminal-box{width:90vw;font-size:.8rem}#terminal-cursor{height:.8rem}}
