:root{--accent:#c1121f}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}*{box-sizing:border-box;scrollbar-width:none}::-webkit-scrollbar{display:none}body{color:#e6e2d8;background-color:#0a0a0a;background-image:radial-gradient(at top,#161412 0%,#0a0a0a 60%);justify-content:center;min-height:100vh;margin:0;font-family:Chakra Petch,sans-serif;display:flex}#bg-canvas{z-index:0;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.portfolio-container{z-index:1;width:100%;max-width:880px;padding:64px 24px 40px;position:relative}.portfolio-container header{border-bottom:1px solid #262422;margin-bottom:44px;padding-bottom:24px}.portfolio-container header .eva-tag{letter-spacing:.12em;color:var(--accent);align-items:center;gap:8px;margin:0 0 12px;font-size:.78rem;font-weight:600;display:flex}.portfolio-container header .eva-tag .dot{background:var(--accent);width:6px;height:6px;box-shadow:0 0 6px var(--accent);border-radius:50%;animation:2s ease-in-out infinite pulse}@media (prefers-reduced-motion:reduce){.portfolio-container header .eva-tag .dot{animation:none}}.portfolio-container header h1{letter-spacing:.03em;color:#f3f1ea;text-shadow:0 0 30px #c1121f26;margin:0 0 10px;font-size:2.3rem;font-weight:700}@media (width<=600px){.portfolio-container header h1{font-size:1.85rem}}.portfolio-container header .subtitle{color:#8c887e;margin:0 0 14px;font-size:.92rem}.portfolio-container header .readout{letter-spacing:.06em;color:#5c5950;margin:0;font-size:.72rem}.portfolio-container header .reference-pill{letter-spacing:.1em;color:#5c5950;border:1px dashed #333;border-radius:2px;margin-top:12px;padding:4px 10px;font-size:.7rem;text-decoration:none;transition:color .2s,border-color .2s;display:inline-block}.portfolio-container header .reference-pill:hover{color:var(--accent);border-color:var(--accent)}.portfolio-container .grid-links{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}@media (width<=480px){.portfolio-container .grid-links{grid-template-columns:1fr}}.portfolio-container .grid-links .project-card{color:inherit;background-color:#121110;border:1px solid #262422;border-radius:4px;padding:20px;text-decoration:none;transition:border-color .15s,box-shadow .15s;position:relative}.portfolio-container .grid-links .project-card:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 18px #c1121f2e}.portfolio-container .grid-links .project-card .log{letter-spacing:.08em;color:var(--accent);margin-bottom:12px;font-size:.7rem;display:block}.portfolio-container .grid-links .project-card h3{color:#f3f1ea;margin:0 0 6px;font-size:1.1rem;font-weight:600}.portfolio-container .grid-links .project-card p{color:#8c887e;margin:0;font-size:.85rem;line-height:1.4}.portfolio-container .grid-links .project-card:after{content:"→";color:var(--accent);opacity:0;font-size:.75rem;transition:opacity .15s,transform .15s;position:absolute;bottom:16px;right:16px;transform:translate(-4px)}.portfolio-container .grid-links .project-card:hover:after{opacity:1;transform:translate(0)}.portfolio-container .grid-links .project-card .tech-tag{letter-spacing:.06em;color:#4a4740;margin-top:10px;font-size:.67rem;display:block}.portfolio-container .status-line{letter-spacing:.06em;color:#4a4740;border-top:1px solid #262422;margin-top:44px;padding-top:20px;font-size:.7rem}.portfolio-container .timestamp{color:#3a3733}.portfolio-container .scenario-line{letter-spacing:.08em;color:#5c5950;text-transform:lowercase;margin-top:18px;font-size:.68rem}.portfolio-container .scenario-line .cursor{color:var(--accent);margin-left:2px;animation:1s step-end infinite blink;display:inline-block}@media (prefers-reduced-motion:reduce){.portfolio-container .scenario-line .cursor{animation:none}}
