:root{--bg:#0a0a0e;--surface:#00ff4108;--surface-hover:#00ff410f;--border:#00ff411f;--border-hover:#00ff414d;--green:#00ff41;--dark-green:#003b00;--teal:#00f5ff;--purple:#b300ff;--text:#c8e6c8;--text-dim:#8aa88a;--radius:12px;--radius-sm:6px}*{box-sizing:border-box;margin:0;padding:0}body{color:#c8e6c8;-webkit-font-smoothing:antialiased;background:#0a0a0e;min-height:100vh;font-family:Inter,sans-serif;line-height:1.6;overflow-x:hidden}.status-bar,.command-line,.clock-time,.tag-terminal,.signal-label,.card-title,.blog-entry-meta{font-family:VT323,monospace}.scanlines:after{content:"";pointer-events:none;z-index:9999;background:repeating-linear-gradient(0deg,#0000001f 0 1px,#0000 1px 3px);position:fixed;inset:0}@keyframes flicker{0%{opacity:.97}5%{opacity:.95}10%{opacity:.97}15%{opacity:.93}20%{opacity:.97}50%{opacity:.96}80%{opacity:.98}90%{opacity:.95}to{opacity:.97}}@media (prefers-reduced-motion:no-preference){.header .kanji{animation:3s infinite flicker}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.card:before{display:none!important}.data-stream{animation:none!important}}#matrix-canvas{opacity:.04;z-index:0;pointer-events:none;width:100%;height:100%;position:fixed;top:0;left:0}.grid-overlay{pointer-events:none;z-index:0;background-image:linear-gradient(#00ff4108 1px,#0000 1px),linear-gradient(90deg,#00ff4108 1px,#0000 1px);background-size:60px 60px;width:100%;height:100%;position:fixed;top:0;left:0}.container{z-index:1;max-width:1000px;margin:0 auto;padding:20px;position:relative}.status-bar{background:#00ff4108;border:1px solid #00ff411f;align-items:center;gap:16px;margin-bottom:20px;padding:6px 14px;font-size:16px;display:flex}.status-bar .label{color:#8aa88a}.status-bar .value{color:#00ff41;text-shadow:0 0 5px #00ff41}.blink{animation:1s step-end infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.header{text-align:center;cursor:pointer;color:inherit;border-radius:8px;margin-bottom:24px;text-decoration:none;transition:filter .25s,transform .25s;display:block}.header:hover{filter:brightness(1.08);transform:translateY(-1px)}.header:hover .ascii-mini{text-shadow:0 0 14px #00ff41,0 0 28px #00ff4159}.header:hover .kanji{filter:drop-shadow(0 0 28px #00ff4159)drop-shadow(0 0 12px #00f5ff40)}.header:hover .sub{color:#c8e6c8}.header:hover .jp-line{color:#00ff41b3}.header:active{filter:brightness(.98);transform:translateY(0)}.header:focus-visible{outline-offset:6px;border-radius:4px;outline:1px dashed #00f5ff99}.header .ascii-mini{color:#00ff41;text-shadow:0 0 8px #00ff41;white-space:pre;text-align:center;margin-bottom:4px;font-size:11px;line-height:1.1;overflow:hidden}.header .kanji{letter-spacing:12px;background:linear-gradient(135deg,#00ff41,#00f5ff,#b300ff);-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 20px #00ff4133);background-clip:text;font-family:Noto Sans JP,sans-serif;font-size:60px;font-weight:900;line-height:1}.header .sub{letter-spacing:4px;text-transform:uppercase;color:#8aa88a;margin-top:4px;font-family:Inter,sans-serif;font-size:13px}.header .jp-line{color:#00ff4173;letter-spacing:3px;font-family:Noto Sans JP,sans-serif;font-size:13px;font-weight:300}.header.compact{margin-bottom:18px}.header.compact .ascii-mini{max-width:100%;margin-bottom:2px;font-size:9.5px;line-height:1.05}.header.compact .kanji{letter-spacing:6px;font-size:30px}.header.compact .sub{letter-spacing:3px;margin-top:2px;font-size:11px}.header.compact .jp-line{letter-spacing:2px;font-size:11px}@media (width<=480px){.header .ascii-mini{display:none!important}.header .kanji{letter-spacing:6px!important;font-size:38px!important}.status-bar{flex-wrap:wrap;gap:8px;padding:6px 10px;font-size:13px}}.command-line{background:#00ff4108;border:1px solid #00ff411f;align-items:center;gap:10px;margin-bottom:20px;padding:8px 14px;display:flex}.command-line .prompt{color:#00f5ff;text-shadow:0 0 5px #00f5ff;white-space:nowrap}.command-line input{color:#00ff41;background:0 0;border:none;outline:none;flex:1;font-family:VT323,monospace;font-size:17px}.command-line input::placeholder{color:#00ff4166}.cursor-blink{color:#00ff41;animation:1s step-end infinite blink}@keyframes datastream{0%{background-position:0 0}to{background-position:0 100%}}.data-stream{opacity:.2;background:linear-gradient(#0000,#00ff41,#0000) 0 0/100% 20px;height:2px;margin-bottom:20px;animation:2s linear infinite datastream}.top-bento{grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:20px;display:grid}.top-bento-1{grid-column:span 2}.top-bento-2{grid-column:span 1}.top-bento-3{grid-column:1/-1}@media (width<=768px){.top-bento{grid-template-columns:1fr 1fr}.top-bento-1,.top-bento-2,.top-bento-3{grid-column:span 2}}@media (width<=480px){.top-bento{grid-template-columns:1fr}.top-bento-1,.top-bento-2,.top-bento-3{grid-column:span 1}}.bottom-bento{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:20px;margin-bottom:20px;display:grid}@media (width<=768px){.bottom-bento{grid-template-columns:1fr 1fr}}@media (width<=480px){.bottom-bento{grid-template-columns:1fr}}@keyframes card-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.card{-webkit-backdrop-filter:blur(8px);background:#00ff4108;border:1px solid #00ff411f;border-radius:12px;padding:16px;transition:border-color .3s,background .3s,transform .3s,box-shadow .3s;position:relative;overflow:hidden}.card:before{content:"";pointer-events:none;background:conic-gradient(#0000,#00ff4108,#0000,#00f5ff05,#0000);width:200%;height:200%;animation:12s linear infinite card-spin;position:absolute;top:-50%;left:-50%}@media (width<=768px){.card{-webkit-backdrop-filter:none}.card:before{display:none}}.card:hover{background:#00ff410f;border-color:#00ff414d;transform:translateY(-1px);box-shadow:0 4px 24px #00ff410f}.card>*{z-index:1;position:relative}.card .card-title{text-transform:uppercase;letter-spacing:2px;color:#8aa88a;align-items:center;gap:8px;margin-bottom:10px;font-family:Inter,sans-serif;font-size:13px;font-weight:700;display:flex}.card .card-title .accent-line{width:24px;height:2px;display:inline-block}.card .card-title .glow-char{color:#00ff41;text-shadow:0 0 6px #00ff41}.clock-block{text-align:center;padding:6px 0}.clock-time{letter-spacing:3px;background:linear-gradient(90deg,#00ff41,#00f5ff);-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 15px #00ff4126);background-clip:text;font-size:44px;font-weight:700}.clock-date{color:#8aa88a;letter-spacing:2px;margin-top:2px;font-size:15px}.ghost-ring{border-radius:50%;width:70px;height:70px;margin:0 auto 8px;position:relative}.ghost-ring svg{width:70px;height:70px;transform:rotate(-90deg)}.ghost-ring .bg{fill:none;stroke:#00ff411f;stroke-width:4px}.ghost-ring .fg{fill:none;stroke:url(#ghost-grad);stroke-width:4px;stroke-linecap:round;transition:stroke-dashoffset 1s}.ghost-ring .center{font-size:18px;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ghost-label{text-transform:uppercase;letter-spacing:1px;color:#8aa88a;text-align:center;font-family:Inter,sans-serif;font-size:12px}.explore-nav{background:#00ff410d;border-color:#00ff4138}.sections-grid{grid-template-columns:1fr 1fr;gap:8px;margin-top:4px;display:grid}@media (width<=480px){.sections-grid{grid-template-columns:1fr}}.sec-link{color:#c8e6c8;background:#00ff4105;border:1px solid #00ff411f;border-radius:6px;align-items:center;gap:10px;padding:12px 14px;font-size:16px;text-decoration:none;transition:all .3s;display:flex}.sec-link:hover{color:#00ff41;text-shadow:0 0 5px #00ff41;background:#00ff410f;border-color:#00ff41;box-shadow:0 0 16px #00ff411a,inset 0 0 16px #00ff4108}.sec-link.active{color:#00ff41;text-shadow:0 0 6px #00ff4166;background:#00ff661f;border-width:1.5px;border-color:#0f69;box-shadow:0 0 20px #00ff411f,inset 0 0 20px #00ff410d}.sec-link.active .sec-icon{color:#00ff41;border-color:#00ff41}.sec-link.active .sec-meta{color:#00ff41}.sec-link .sec-icon{border:1px solid #00ff411f;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:17px;display:flex}.sec-link .sec-meta{color:#8aa88a;text-transform:uppercase;letter-spacing:1px;margin-left:auto;font-family:Inter,sans-serif;font-size:12px}.tag-terminal{color:#8aa88a;cursor:default;background:#00ff410a;border:1px solid #00ff411f;border-radius:2px;margin:2px;padding:2px 8px;font-size:13px;transition:all .3s;display:inline-block}.tag-terminal:hover{color:#00f5ff;border-color:#00f5ff;box-shadow:0 0 10px #00f5ff26}.tag-terminal.strong{color:#00ff41;text-shadow:0 0 5px #00ff4166;background:#00ff4114;border-color:#00ff4180}.tag-terminal.strong:hover{color:#00f5ff;border-color:#00f5ff}.link-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.term-link{color:#c8e6c8;background:#00ff4105;border:1px solid #00ff411f;border-radius:6px;align-items:center;gap:6px;padding:8px 10px;font-size:15px;text-decoration:none;transition:all .3s;display:flex}.term-link:hover{color:#00ff41;text-shadow:0 0 5px #00ff41;border-color:#00ff41;box-shadow:0 0 16px #00ff411a,inset 0 0 16px #00ff4108}.term-link .jp-tag{color:#8aa88a;margin-left:auto;font-family:Noto Sans JP,sans-serif;font-size:12px}.bookmark-link{background:#00ff4105;border:1px solid #00ff411f;border-radius:6px;flex-direction:column;gap:4px;padding:10px 12px;text-decoration:none;transition:all .3s;display:flex}.bookmark-link:hover{border-color:#00ff41;box-shadow:0 0 16px #00ff411a,inset 0 0 16px #00ff4108}.bookmark-link .bookmark-top{color:#00f5ff;font-size:14px;display:block}.bookmark-link .bookmark-bot{color:#8aa88a;text-align:right;margin-top:2px;font-size:12px;display:block}.progress-bar{background:#00ff411f;border-radius:1px;height:3px;margin-top:6px;overflow:hidden}.progress-fill{border-radius:1px;height:100%;transition:width 1s}.footer{text-align:center;color:#8aa88a;border-top:1px solid #00ff411f;margin-top:24px;padding:20px;font-size:15px}.footer .kanji{background:linear-gradient(90deg,#00ff41,#00f5ff);-webkit-text-fill-color:transparent;background-clip:text;font-family:Noto Sans JP,sans-serif;font-size:14px;font-weight:700}.footer-legal{letter-spacing:1px;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-bottom:10px;font-family:VT323,monospace;font-size:15px;display:flex}.footer-legal .footer-link{color:#8aa88a;border-bottom:1px dashed #00ff4140;padding-bottom:1px;text-decoration:none;transition:all .2s}.footer-legal .footer-link:hover{color:#00f5ff;text-shadow:0 0 8px #00f5ff66;border-bottom-color:#00f5ff}.footer-legal .footer-sep{color:#00ff4140;user-select:none}.hidden{display:none!important}.imprint-card{background:#00f5ff08!important;border-color:#00f5ff2e!important}.imprint-meta{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:18px;display:flex}.imprint-meta .imprint-stand{color:#8aa88a;letter-spacing:1px;margin-left:auto;font-family:VT323,monospace;font-size:14px}.placeholder{color:var(--teal);white-space:nowrap;background:#00f5ff14;border:1px dashed #00f5ff40;border-radius:3px;padding:1px 5px;font-family:VT323,monospace;font-size:.95em}.imprint-section{margin:16px 0}.imprint-section.legal{border-left:2px solid #00ff411f;padding-left:14px}.imprint-section.legal:hover{border-left-color:#00ff4159}.imprint-section.legal p{color:#c8e6c8;max-width:70ch;margin:6px 0 0;font-size:14.5px;line-height:1.75}.imprint-h2{letter-spacing:2px;text-transform:uppercase;color:#c8e6c8;align-items:center;gap:8px;margin-bottom:8px;font-family:Inter,sans-serif;font-size:13px;font-weight:700;display:flex}.imprint-h2 .imprint-num{color:#00f5ff;letter-spacing:1px;background:#00f5ff1a;border:1px solid #00f5ff33;border-radius:3px;padding:1px 6px;font-family:VT323,monospace;font-size:12px;font-weight:400}.imprint-address{color:#c8e6c8;background:#00ff4108;border:1px solid #00ff411f;border-radius:6px;min-width:260px;padding:14px 16px;font-size:15px;font-style:normal;line-height:1.9;display:inline-block}.imprint-address .imprint-name{color:#c8e6c8;font-weight:700}.imprint-contact{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.imprint-label{color:#8aa88a;letter-spacing:1px;text-transform:uppercase;font-family:VT323,monospace;font-size:14px}.imprint-mail{color:#00f5ff;border-bottom:1px dashed #00f5ff4d;padding-bottom:1px;font-size:15px;text-decoration:none;transition:all .2s}.imprint-mail:hover{color:#00ff41;text-shadow:0 0 8px #00ff4166;border-bottom-color:#00ff41}.imprint-divider{background:repeating-linear-gradient(90deg,#00ff4126 0 8px,#0000 8px 14px);height:1px;margin:20px 0}.imprint-actions{border-top:1px dashed #00ff411f;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:20px;padding-top:14px;display:flex}.imprint-hint{color:#8aa88a;letter-spacing:.5px;font-family:VT323,monospace;font-size:13px}.content-section{margin-bottom:20px}.content-section.card{background:#00ff410a;border-color:#00ff412e}.connect-content{text-align:center;padding:6px 0;font-size:15px;line-height:1.8}.connect-signal{color:#8aa88a;font-family:Inter,sans-serif;font-size:12px}.signal-label{text-transform:uppercase;letter-spacing:1px;color:#8aa88a;margin-top:4px;font-family:Inter,sans-serif;font-size:12px}.welcome-block{text-align:center;border-top:1px dashed #00ff411f;border-bottom:1px dashed #00ff410f;margin:20px 0;padding:32px 20px}.welcome-block .welcome-icon{filter:drop-shadow(0 0 20px #00ff414d);margin-bottom:8px;font-size:28px}.welcome-block .welcome-title{letter-spacing:3px;background:linear-gradient(90deg,#00ff41,#00f5ff);-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:8px;font-size:28px;font-weight:700}.welcome-block .welcome-sub{color:#8aa88a;max-width:500px;margin:0 auto;font-size:16px;line-height:1.6}.welcome-block .welcome-prompt{color:#8aa88a;margin-top:24px;font-size:14px}.welcome-block .welcome-prompt .cursor{color:#00ff41;animation:1s step-end infinite blink}.project-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=768px){.project-grid{grid-template-columns:1fr}}.sub-card{border:1px solid #00ff411f;border-radius:6px;padding:14px}.project-card{flex-direction:column;gap:8px;transition:border-color .3s,box-shadow .3s,transform .3s;display:flex}.project-card:hover{border-color:#00ff41;transform:translateY(-2px);box-shadow:0 0 20px #00ff411f,inset 0 0 20px #00ff4108}.project-card:hover .project-preview{border-color:#00ff4166}.project-card .project-preview{border:1px solid #00ff411f;border-radius:6px;justify-content:center;align-items:center;gap:10px;height:72px;transition:border-color .3s;display:flex}.project-card .project-preview .preview-glyph{filter:drop-shadow(0 0 12px #00ff4166);font-size:30px}.project-card .project-preview .preview-label{letter-spacing:2px;color:#8aa88a;font-family:Inter,sans-serif;font-size:11px}.project-card .project-actions{gap:8px;margin-top:auto;display:flex}.project-card .project-actions .cmd-btn{text-align:center;background:#00ff4108;border:1px solid #00ff411f;border-radius:4px;flex:1;padding:6px 10px;transition:all .25s}.project-card .project-actions .cmd-btn:hover{color:#00ff41;text-shadow:0 0 8px #00ff4180;background:#00ff4114;border-color:#00ff41;box-shadow:0 0 14px #00ff4126}.project-title{color:#00f5ff;text-shadow:0 0 5px #00f5ff;font-size:18px}.project-desc{color:#8aa88a;margin-top:4px;font-size:14px;line-height:1.6}.project-tags{margin-top:8px}.projects-section{gap:10px;display:grid}.featured-project .project-mini-head{align-items:center;gap:10px;margin-bottom:6px;display:flex}.featured-project .project-mini-head .tag-terminal{color:#00ff41;border-color:#00ff4180}.featured-project .featured-actions{gap:10px;margin-top:12px;display:flex}.about-content{align-items:flex-start;gap:20px;display:flex}.about-name{color:#c8e6c8;font-size:15px}.about-sub{color:#8aa88a;text-transform:uppercase;letter-spacing:2px;margin-top:2px;font-family:Inter,sans-serif;font-size:13px}.about-body{color:#c8e6c8;overflow-wrap:break-word;word-break:normal;max-width:60ch;margin-top:12px;font-size:16px;line-height:1.75}.about-tags{margin-top:10px}.blog-center{text-align:center;padding:20px 0}.blog-divider{color:#8aa88a;font-size:24px}.blog-text{color:#8aa88a;margin-top:8px;font-size:15px}.blog-sub{color:#8aa88a;margin-top:4px;font-family:Inter,sans-serif;font-size:12px}.contact-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.contact-link{justify-content:center;padding:14px}.contact-link:hover{color:#00f5ff;text-shadow:0 0 8px #00f5ff99;background:#00f5ff0f;border-color:#00f5ff;box-shadow:0 0 20px #00f5ff33,inset 0 0 20px #00f5ff0a}.cmd-btn{color:#00f5ff;font-family:VT323,monospace;font-size:13px;text-decoration:none;transition:all .2s}.cmd-btn:hover{color:#00ff41;text-shadow:0 0 8px #00f5ff}.blog-filter{border-bottom:1px dashed #00ff411f;flex-wrap:wrap;gap:4px;margin-bottom:12px;padding-bottom:12px;display:flex}.blog-filter .filter-tag{cursor:pointer;color:#c8e6c8;background:#00ff410d;border-color:#00ff4140;padding:4px 10px;font-family:VT323,monospace;font-size:14px}.blog-filter .filter-tag:hover{color:#00ff41;background:#00ff411a;border-color:#00ff41}.blog-filter .filter-tag:focus-visible{border-color:#00f5ff;outline:none;box-shadow:0 0 12px #00f5ff40}.blog-filter .filter-tag.active{color:#00f5ff;background:#00f5ff1f;border-color:#00f5ff;box-shadow:0 0 12px #00f5ff40}.blog-filter-empty{text-align:center;color:#8aa88a;border:1px dashed #00ff411f;border-radius:6px;margin:12px 0;padding:24px;font-size:16px}.blog-groups{gap:20px;display:grid}.blog-group-head{text-transform:uppercase;letter-spacing:2px;color:#8aa88a;margin-bottom:8px;font-family:Inter,sans-serif;font-size:12px;font-weight:700}.blog-list{flex-direction:column;gap:8px;display:flex}.blog-entry-link{border:1px solid #00ff411f;border-radius:4px;padding:12px 16px;text-decoration:none;transition:all .2s;display:block}.blog-entry-link:hover{background:#00ff410f;border-color:#00ff414d}.blog-entry-title{color:#00f5ff;margin-bottom:4px;font-size:18px}.blog-entry-meta{color:#8aa88a;font-family:VT323,monospace;font-size:13px;line-height:1.7}.blog-post-meta{color:#8aa88a;margin-bottom:16px;font-size:14px}.blog-toc{border:1px dashed #00ff411f;border-radius:6px;margin-bottom:16px;padding:12px 16px}.blog-toc .blog-toc-title{color:#8aa88a;text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;font-size:13px}.blog-toc ol{margin:0;padding-left:18px}.blog-toc li{margin:2px 0}.blog-toc a{color:#00f5ff;font-size:14px;text-decoration:none}.blog-toc a:hover{text-decoration:underline}.blog-pager{grid-template-columns:1fr 1fr;gap:10px;margin-top:28px;display:grid}.blog-pager .pager-link{border:1px solid #00ff411f;border-radius:6px;flex-direction:column;gap:2px;padding:10px 14px;text-decoration:none;transition:all .25s;display:flex}.blog-pager .pager-link:hover{background:#00f5ff0d;border-color:#00f5ff}.blog-pager .pager-link.right{text-align:right}.blog-pager .pager-link .pager-label{text-transform:uppercase;letter-spacing:1px;color:#8aa88a;font-size:12px}.blog-pager .pager-link .pager-title{color:#00f5ff;font-size:15px}.blog-post-content{color:#c8e6c8;font-size:16px;line-height:1.75}.blog-post-content h1,.blog-post-content h2,.blog-post-content h3,.blog-post-content h4{color:#00f5ff;margin:20px 0 10px}.blog-post-content h2{font-size:20px}.blog-post-content h3{font-size:18px}.blog-post-content p{margin:10px 0}.blog-post-content code{background:#00ff4114;border-radius:3px;padding:2px 6px;font-family:VT323,monospace;font-size:14px}.blog-post-content pre{background:#00000040;border:1px solid #00ff411f;border-radius:4px;padding:12px;overflow-x:auto}.blog-post-content pre code{background:0 0;padding:0}.blog-post-content blockquote{color:#8aa88a;border-left:3px solid #00f5ff;margin:12px 0;padding-left:12px}.blog-post-content ul,.blog-post-content ol{margin:8px 0;padding-left:20px}.blog-post-content li{margin:4px 0}.blog-post-content strong{color:#00ff41}.blog-post-content a{color:#00f5ff}
