.relative{position:relative}*{box-sizing:border-box}html{scroll-behavior:smooth;margin:0;padding:0}body{color:#e9edf4;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-color:#0a0e14;margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:17px;font-weight:400;line-height:1.65;overflow-x:hidden}::selection{color:#e9edf4;background:#45d4c840}a{color:#45d4c8;text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}:focus-visible{outline-offset:3px;border-radius:2px;outline:2px solid #45d4c8}h1,h2,h3,h4{color:#e9edf4;margin:0;font-weight:650;line-height:1.15}p{margin:0 0 1em}.mono{font-family:Roboto Mono,ui-monospace,SF Mono,Menlo,monospace}.wrap{max-width:1080px;margin:0 auto;padding:0 28px}@media screen and (width<=860px){.wrap{padding:0 20px}}.background-canvas{z-index:-1;position:fixed;inset:0}.crt-overlay{z-index:-1;pointer-events:none;background:repeating-linear-gradient(#00000029 0 1px,#0000 1px 3px),radial-gradient(#0000 55%,#0000006b 100%);position:fixed;inset:0}.hero{flex-direction:column;justify-content:center;min-height:100svh;display:flex}.hero>.wrap{width:100%}.hero>.wrap:first-child{margin-top:auto}@media screen and (width<=860px){.hero>.wrap:first-child{margin-bottom:auto}}.hero h1{letter-spacing:-.03em;margin-bottom:26px;font-size:clamp(2.4rem,5.5vw,3.8rem);font-weight:600}.hero .hero-lede{color:#a9b4c6;max-width:640px;font-size:clamp(1.05rem,1.6vw,1.25rem);line-height:1.7}.hero .hero-lede strong{color:#e9edf4;font-weight:500}.hero .hero-actions{margin-top:40px}.hero .hero-hint{color:#6b7688;justify-content:flex-end;align-items:center;margin-top:auto;padding-bottom:34px;font-family:Roboto Mono,ui-monospace,SF Mono,Menlo,monospace;font-size:12px;display:flex}@media screen and (width<=860px){.hero .hero-hint{display:none}}.btn-row{flex-wrap:wrap;gap:14px;display:flex}.btn{letter-spacing:.02em;color:#e9edf4;background:#10162399;border:1px solid #e9edf42e;border-radius:8px;align-items:center;gap:9px;padding:11px 20px;font-family:Roboto Mono,ui-monospace,SF Mono,Menlo,monospace;font-size:13.5px;text-decoration:none;transition:border-color .2s,color .2s,box-shadow .2s,transform .2s;display:inline-flex}.btn svg{fill:currentColor;flex-shrink:0;width:16px;height:16px}.btn:hover{color:#45d4c8;border-color:#45d4c88c;text-decoration:none;transform:translateY(-1px);box-shadow:0 0 24px #45d4c81f}.section{padding:110px 0 30px}@media screen and (width<=860px){.section{padding:70px 0 20px}}.section-head{align-items:baseline;gap:18px;margin-bottom:14px;display:flex}.section-head .section-index{color:#45d4c8;letter-spacing:.08em;font-family:Roboto Mono,ui-monospace,SF Mono,Menlo,monospace;font-size:13px}.section-head .section-title{letter-spacing:-.02em;white-space:nowrap;font-size:clamp(1.7rem,3vw,2.2rem)}.section-head:after{content:"";background:#e9edf414;flex:1;height:1px;transform:translateY(-6px)}.section-sub{color:#6b7688;margin-bottom:44px;font-size:1rem}@media screen and (width<=860px){.section-sub{margin-bottom:30px}}.project-list{flex-direction:column;gap:22px;display:flex}.project-card{-webkit-backdrop-filter:blur(10px);background:#0d121cb8;border:1px solid #e9edf414;border-radius:14px;grid-template-columns:92px 1fr;gap:28px;padding:30px 32px;transition:border-color .25s,transform .25s,box-shadow .25s;display:grid;position:relative;overflow:hidden}.project-card:before{content:"";background:var(--pc,#45d4c8);opacity:.65;width:2px;transition:opacity .25s;position:absolute;top:26px;bottom:26px;left:0}.project-card:hover{border-color:#e9edf42e;transform:translateY(-3px);box-shadow:0 18px 50px #00000073}.project-card:hover:before{opacity:1}.project-card:hover .project-logo img{transform:scale(1.04)}.project-card .project-logo img{object-fit:cover;border:1px solid #e9edf414;border-radius:14px;width:92px;height:92px;transition:transform .25s;display:block}.project-card .project-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:6px;display:flex}.project-card .project-head h3{letter-spacing:-.015em;font-size:1.45rem}.project-card .project-head .project-period{color:#6b7688;letter-spacing:.04em;font-family:Roboto Mono,ui-monospace,SF Mono,Menlo,monospace;font-size:12.5px}.project-card .project-desc{color:#a9b4c6;max-width:640px;font-size:.99rem}.project-card .project-desc p{margin-bottom:.6em}.project-card .project-desc a{color:#a9b4c6;text-underline-offset:3px;text-decoration:underline}.project-card .project-desc a:hover{color:#45d4c8}.project-card .project-stats{color:#45d4c8;letter-spacing:.02em;margin:10px 0 14px;font-family:Roboto Mono,ui-monospace,SF Mono,Menlo,monospace;font-size:13px}.project-card .project-tags{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.project-card .project-tags .tag{letter-spacing:.03em;color:#a9b4c6;border:1px solid #e9edf414;border-radius:999px;padding:3px 11px;font-family:Roboto Mono,ui-monospace,SF Mono,Menlo,monospace;font-size:11.5px}.project-card .project-link{color:#45d4c8;font-family:Roboto Mono,ui-monospace,SF Mono,Menlo,monospace;font-size:13px}.project-card .project-link .arrow{transition:transform .2s;display:inline-block}.project-card .project-link:hover .arrow{transform:translate(2px,-2px)}@media screen and (width<=860px){.project-card{grid-template-columns:1fr;gap:18px;padding:24px 22px}.project-card .project-logo img{border-radius:12px;width:64px;height:64px}}.timeline{-webkit-backdrop-filter:blur(10px);background:#0d121cb8;border:1px solid #e9edf414;border-radius:14px;padding:34px 34px 26px;position:relative}@media screen and (width<=860px){.timeline{padding:22px 18px 18px}}.tl-body{position:relative}.tl-gridlines{top:0;bottom:0;left:var(--label-w,150px);pointer-events:none;position:absolute;right:0}.tl-gridlines .tl-gridline{background:#e9edf414;width:1px;position:absolute;top:0;bottom:0}@media screen and (width<=860px){.tl-gridlines{left:0}}.tl-row{grid-template-columns:var(--label-w,150px) 1fr;align-items:center;height:46px;display:grid}@media screen and (width<=860px){.tl-row{grid-template-columns:1fr;height:auto;padding:8px 0 2px}}.tl-label{color:#a9b4c6;white-space:nowrap;text-overflow:ellipsis;padding-right:18px;font-family:Roboto Mono,ui-monospace,SF Mono,Menlo,monospace;font-size:13px;overflow:hidden}@media screen and (width<=860px){.tl-label{padding:0 0 6px;font-size:12px}}.tl-track{height:46px;position:relative}@media screen and (width<=860px){.tl-track{height:26px}}.tl-bar{background:var(--c,#0da796);cursor:pointer;border:none;border-radius:6px;min-width:12px;height:12px;padding:0;transition:filter .15s;position:absolute;top:50%;transform:translateY(-50%)}.tl-bar.ongoing{border-top-right-radius:0;border-bottom-right-radius:0;-webkit-mask-image:linear-gradient(90deg,#000 72%,#0000 99%);mask-image:linear-gradient(90deg,#000 72%,#0000 99%)}.tl-bar:hover,.tl-bar:focus-visible{filter:brightness(1.25)}.tl-axis{height:28px;margin-left:var(--label-w,150px);position:relative}.tl-axis .tl-tick{color:#6b7688;letter-spacing:.04em;font-family:Roboto Mono,ui-monospace,SF Mono,Menlo,monospace;font-size:11.5px;position:absolute;top:8px;transform:translate(-50%)}.tl-axis .tl-tick:first-child{transform:none}@media screen and (width<=860px){.tl-axis{margin-left:0}.tl-axis .tl-tick.tl-tick-minor{display:none}}.tl-tooltip{z-index:5;pointer-events:none;white-space:nowrap;background:#131a28;border:1px solid #e9edf42e;border-radius:8px;padding:10px 14px;position:absolute;transform:translate(-50%,-110%);box-shadow:0 10px 30px #00000080}.tl-tooltip .tl-tooltip-title{color:#e9edf4;font-size:13.5px;font-weight:600}.tl-tooltip .tl-tooltip-title .dot{background:var(--c,#45d4c8);border-radius:2px;width:8px;height:8px;margin-right:7px;display:inline-block}.tl-tooltip .tl-tooltip-period{color:#a9b4c6;margin-top:2px;font-family:Roboto Mono,ui-monospace,SF Mono,Menlo,monospace;font-size:11.5px}.tl-tooltip .tl-tooltip-hint{color:#6b7688;margin-top:5px;font-family:Roboto Mono,ui-monospace,SF Mono,Menlo,monospace;font-size:10.5px}.tl-note{color:#6b7688;margin-top:18px;font-family:Roboto Mono,ui-monospace,SF Mono,Menlo,monospace;font-size:12px}.focus-lede{color:#a9b4c6;max-width:680px;margin-bottom:40px;font-size:1.05rem}.focus-lede strong{color:#e9edf4;font-weight:500}.focus-grid{grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:14px;display:grid}.focus-item{-webkit-backdrop-filter:blur(10px);background:#0d121cb8;border:1px solid #e9edf414;border-radius:12px;padding:22px 22px 18px;transition:border-color .25s,transform .25s}.focus-item:hover{border-color:#e9edf42e;transform:translateY(-2px)}.focus-item .focus-index{color:#45d4c8;letter-spacing:.08em;margin-bottom:12px;font-family:Roboto Mono,ui-monospace,SF Mono,Menlo,monospace;font-size:11.5px;display:block}.focus-item h3{margin-bottom:8px;font-size:1.02rem;font-weight:600}.focus-item p{color:#6b7688;margin:0;font-size:.88rem;line-height:1.55}.contact-section{padding-bottom:130px}.contact-section .contact-inner{text-align:center;padding:100px 0}@media screen and (width<=860px){.contact-section .contact-inner{padding:44px 0}}.contact-section h2{letter-spacing:-.025em;margin-bottom:16px;font-size:clamp(1.8rem,4vw,2.6rem)}.contact-section .contact-copy{color:#a9b4c6;max-width:520px;margin:0 auto 36px}.contact-section .btn-row{justify-content:center}.site-footer{color:#6b7688;border-top:1px solid #e9edf414;padding:26px 0;font-family:Roboto Mono,ui-monospace,SF Mono,Menlo,monospace;font-size:12px}.site-footer .wrap{justify-content:center;align-items:center;display:flex}.reveal{opacity:0;transition:opacity .65s,transform .65s cubic-bezier(.2,.7,.3,1);transition-delay:var(--rd,0s);transform:translateY(20px)}.reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transition:none;transform:none}.project-card,.focus-item,.btn{transition:none}}
