:root{--color-primary:#0f172a;--color-secondary:#F0F7EE;--duration:1s;--nav-duration:calc(var(--duration) / 4);--ease:cubic-bezier(0.215,0.61,0.355,1);--space:1rem;--font-primary:"Helvetica",sans-serif;--font-heading:"Merriweather",serif;--font-size:1.125rem;--line-height:1.5}*{box-sizing:border-box}body{font-family:var(--font-primary);font-size:var(--font-size);line-height:var(--line-height)}.main-navigation-toggle{position:fixed;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}.main-navigation-toggle+label{position:fixed;top:calc(var(--space) * 1.2);right:calc(var(--space) * 2);cursor:pointer;z-index:50}.content-toggle{display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:0;background:transparent;color:#e5e7eb;font-size:1.4rem;letter-spacing:.12em;text-decoration:none;position:relative;line-height:1;transition:color .2s ease,transform .2s ease}.content-text-wrapper{position:relative;display:inline-block;overflow:hidden;padding:0 .1em;min-width:6ch;height:1.6em}.content-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center}.content-text-content{transform:translateY(0);opacity:1;transition:transform .35s ease,opacity .35s ease}.content-text-back{transform:translateY(120%);opacity:0;transition:transform .35s ease .15s,opacity .35s ease .15s}.content-text-wrapper:after,.content-text-wrapper:before{content:"";position:absolute;left:0;width:0;height:1px;background:#bfdbfe;transition:width .35s ease}.content-text-wrapper:before{top:0}.content-text-wrapper:after{bottom:0}.main-navigation-toggle:checked+label .content-text-wrapper:before{width:100%}.main-navigation-toggle:checked+label .content-text-wrapper:after{width:100%;transition-delay:.15s}.main-navigation-toggle:checked+label .content-text-content{transform:translateY(-120%);opacity:0}.main-navigation-toggle:checked+label .content-text-back{transform:translateY(0);opacity:1}.main-navigation{position:fixed;top:0;left:0;display:flex;align-items:center;width:100%;height:100%;transform:translateX(-100%);transition:transform var(--nav-duration);z-index:40}.main-navigation ul{font-size:6vmin;font-family:inherit;width:100%}.main-navigation li{--border-size:0.6vmin;display:flex;align-items:center;position:relative;overflow:hidden}.main-navigation li:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:var(--border-size);background-color:var(--color-secondary);transform-origin:0 50%;transform:translateX(-100%) skew(15deg)}.main-navigation a{position:relative;display:inline-block;width:100%;max-width:800px;margin:0 auto;color:var(--color-secondary);line-height:1;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:var(--space) calc(var(--space) * 2) calc(var(--space) + var(--border-size) / 2);transform:translateY(100%);transition:color .35s ease}.main-navigation a:after{content:"";position:absolute;left:0;bottom:calc(var(--space) * .15);height:2px;width:100%;background:linear-gradient(90deg,#60a5fa,#3b82f6);transform-origin:0 50%;transform:scaleX(0);transition:transform .35s var(--ease)}.main-content{margin:0 auto;max-width:1200px;padding:0 calc(var(--space) * 2);transform:translateX(0);transition:transform .7s var(--ease),opacity .5s ease}.main-navigation-toggle:checked~.main-content{transform:translateX(120vw);opacity:0;pointer-events:none}.main-navigation-toggle:checked~.main-navigation{transition-duration:0s;transform:translateX(0)}.main-navigation-toggle:checked~.main-navigation li:after{animation:nav-line var(--duration) var(--ease) forwards}.main-navigation-toggle:checked~.main-navigation a{animation:link-appear calc(var(--duration) * 1.5) var(--ease) forwards}.main-navigation-toggle:checked~.main-navigation li:first-child a,.main-navigation-toggle:checked~.main-navigation li:first-child:after{animation-delay:calc((var(--duration) / 2) * 1 * .125)}.main-navigation-toggle:checked~.main-navigation li:nth-child(2) a,.main-navigation-toggle:checked~.main-navigation li:nth-child(2):after{animation-delay:calc((var(--duration) / 2) * 2 * .125)}.main-navigation-toggle:checked~.main-navigation li:nth-child(3) a,.main-navigation-toggle:checked~.main-navigation li:nth-child(3):after{animation-delay:calc((var(--duration) / 2) * 3 * .125)}@keyframes nav-line{0%{transform:scaleX(0);transform-origin:0 50%}35%{transform:scaleX(1.001);transform-origin:0 50%}65%{transform:scaleX(1.001);transform-origin:100% 50%}to{transform:scaleX(0);transform-origin:100% 50%}}@keyframes link-appear{0%,25%{transform:translateY(100%)}50%,to{transform:translateY(0)}}@media (hover:hover) and (pointer:fine){.main-navigation a:hover{color:#bfdbfe}.main-navigation a:hover:after{transform:scaleX(1)}}.social-footer{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);z-index:30;padding:.4rem .75rem;border-radius:999px;background:rgba(15,23,42,.65);backdrop-filter:blur(10px)}.social-btn,.social-links{display:flex}.social-btn{cursor:pointer;height:40px;width:40px;font-family:inherit;color:#e5e7eb;border-radius:10px;box-shadow:0 10px 10px rgba(0,0,0,.25);background:rgba(15,23,42,.95);margin:0 4px;padding:0 10px;border:1px solid rgba(148,163,184,.7);align-items:center;justify-content:center;overflow:hidden;transition:width .35s ease,border-color .35s ease,background .35s ease}.social-btn span{width:0;overflow:hidden;white-space:nowrap;transition:width .35s ease,padding .35s ease;text-align:center;font-size:.78rem;letter-spacing:.06em}.social-btn .icon{display:inline-flex;align-items:center;justify-content:center}.social-btn .icon svg{width:18px;height:18px;display:block;fill:currentColor}.social-btn:hover{width:140px;border-radius:8px;background:rgba(15,23,42,.98);border-color:#60a5fa}.social-btn:hover span{padding-left:6px;width:-moz-max-content;width:max-content}.social-btn.bilibili span{color:#00a1d6}.social-btn.github span{color:#f4f4f5}.social-btn.email span{color:#f97316}@media (max-width:600px){.social-footer{bottom:1rem}.social-btn{height:36px;width:36px}.social-btn:hover{width:120px}.social-btn span{font-size:.7rem}}@media (hover:hover) and (pointer:fine){.content-toggle:hover{color:#bfdbfe;transform:translateY(-1px)}}.scanner-section{position:relative;padding:4rem 0 6rem}.scanner-header{max-width:72rem;margin:0 auto 1rem;padding:0 1.5rem;display:flex;justify-content:space-between;gap:1.5rem}.scanner-title{font-size:.95rem;letter-spacing:.09em;text-transform:uppercase;color:rgb(226 232 240)}.scanner-subtitle{font-size:.85rem;color:rgb(148 163 184);max-width:22rem}.scanner-container{position:relative;width:100vw;max-width:100vw;height:320px;margin-left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;overflow:hidden}.scanner-particle-canvas{position:absolute;inset:0;width:100%;height:320px;pointer-events:none;z-index:5}.scanner-card-stream{position:absolute;inset:0;display:flex;align-items:center}.scanner-card-line{display:flex;align-items:center;gap:60px;white-space:nowrap;will-change:transform}.scanner-card-wrapper{position:relative;width:400px;height:250px;flex-shrink:0}.scanner-card{position:absolute;inset:0;border-radius:15px;overflow:hidden}.scanner-card-normal{z-index:2;background:radial-gradient(circle at 0 0,rgba(56,189,248,.28),transparent 55%),radial-gradient(circle at 100% 100%,rgba(129,140,248,.22),transparent 55%),rgba(15,23,42,.95);box-shadow:0 15px 40px rgba(0,0,0,.6),0 0 0 1px rgba(15,23,42,.95);border:1px solid rgba(148,163,184,.7)}.scanner-card-ascii{z-index:1;background:transparent;border-radius:0;box-shadow:none;border:none}.scanner-card-image{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;opacity:.88;filter:saturate(1.1) contrast(1.05);transition:opacity .25s ease-out,transform .25s ease-out,filter .25s ease-out}.scanner-card-wrapper:hover .scanner-card-image{opacity:1;transform:scale(1.04);filter:saturate(1.15) contrast(1.15)}.scanner-ascii-content{position:absolute;inset:0;margin:0;padding:.7rem .85rem;color:rgba(224,231,255,.9);font-family:Courier New,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:11px;line-height:1.3;overflow:hidden;white-space:pre-wrap;word-break:break-all;text-align:left;box-sizing:border-box;text-shadow:0 0 8px rgba(15,23,42,.9);-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,1) 0,rgba(0,0,0,.95) 20%,rgba(0,0,0,.7) 65%,rgba(0,0,0,.25) 90%,rgba(0,0,0,0));mask-image:linear-gradient(90deg,rgba(0,0,0,1) 0,rgba(0,0,0,.95) 20%,rgba(0,0,0,.7) 65%,rgba(0,0,0,.25) 90%,rgba(0,0,0,0))}.scanner-card-normal{clip-path:inset(0 0 0 var(--scan-progress,0))}.scanner-card-ascii{clip-path:inset(0 calc(100% - var(--scan-progress, 0%)) 0 0)}.scanner-hint{margin-top:1rem;text-align:center;font-size:.8rem;color:rgb(148 163 184)}@media (max-width:768px){.scanner-section{padding:3rem 0 4rem}.scanner-container,.scanner-particle-canvas{height:280px}.scanner-card-wrapper{width:320px;height:200px}.scanner-header{flex-direction:column}}