@font-face{font-family:CaskaydiaCove NF;src:url(/assets/CaskaydiaCoveNF-Regular-CZLmzHiN.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:CaskaydiaCove NF;src:url(/assets/CaskaydiaCoveNF-Bold-Ca_hPft-.woff2)format("woff2");font-weight:600 700;font-display:swap}:root{--bg:#0c0b0e;--panel:#151318;--panel-2:#1e1b23;--text:#d8d2c4;--muted:#8a8377;--accent:var(--neon-c);--green:#9ece6a;--border:#2c2833;--neon-c:#49f3f8;--neon-p:#b14aed;--neon-w:#f2f2f2;--cut:14px}*{box-sizing:border-box}body{color:var(--text);background-color:#0000;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cg fill='none' stroke='%23c9a227' stroke-opacity='.06' stroke-width='1.5'%3E%3Cpath d='M80 20c15 20 40 25 60 20-5 20 0 45-20 60 20 15 15 40 20 60-20-5-45 0-60 20-15-20-40-25-60-20 5-20 0-45 20-60C20 85 25 60 20 40c20 5 45 0 60-20z'/%3E%3Ccircle cx='80' cy='80' r='28'/%3E%3Cpath d='M80 52v56M52 80h56'/%3E%3C/g%3E%3C/svg%3E"),linear-gradient(160deg,#2b0e1a 0%,#14101e 55%,#0a0c14 100%);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box;background-clip:border-box,border-box;background-position:calc(var(--mx,0) * -40px) calc(var(--my,0) * -40px), calc(var(--mx,0) * 14px) calc(var(--my,0) * 14px);margin:0;font-family:CaskaydiaCove NF,ui-monospace,monospace;line-height:1.6;transition:background-position .5s cubic-bezier(.22,1,.36,1)}@media (prefers-reduced-motion:reduce){body{background-position:0 0;transition:none}}.card-shadow,.t-item{filter:drop-shadow(0 12px 20px #00000073)}#root{max-width:860px;margin:0 auto;padding:3rem 1.25rem}a{color:var(--accent)}.hero h1{letter-spacing:.02em;color:var(--neon-w);margin:0;font-size:2.4rem}.role{color:var(--accent);margin:.25rem 0 1rem;font-weight:600}.tagline{color:var(--muted);max-width:60ch;margin:0 0 1.25rem}.links{gap:1.25rem;display:flex}.links a{font-weight:600;text-decoration:none}.links a:hover{text-decoration:underline}.stack{flex-wrap:wrap;gap:.5rem;margin:2rem 0 1rem;display:flex}.chip{background:var(--panel);border:1px solid color-mix(in srgb, var(--neon-c) 20%, var(--border));clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:.15rem .75rem;font-size:.7rem}.chip:hover{color:var(--neon-c);border-color:var(--neon-c)}.tabs{gap:.5rem;margin-top:1.5rem;display:flex}.tabs button{background:var(--panel);border:1px solid color-mix(in srgb, var(--neon-c) 20%, var(--border));clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%);color:var(--muted);font:inherit;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;padding:.4rem 1.4rem;font-size:.8rem;font-weight:700}.tabs button:hover{color:var(--text)}.tabs button.active{background:var(--neon-w);color:#0c0b0e;border-color:var(--neon-w)}.bullets{margin:.5rem 0 0;padding-left:1.2em}.bullets li{margin:.3em 0}.bullets li::marker{color:var(--neon-p)}.timeline .bullets{z-index:10;background:var(--panel-2);border:1px solid color-mix(in srgb, var(--neon-w) 65%, var(--border));clip-path:polygon(0 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%);opacity:0;visibility:hidden;border-top:none;margin:0;padding:.75rem 1.5rem 1rem 2.6em;transition:opacity .25s,transform .25s,visibility .25s;position:absolute;top:calc(100% - 1px);left:0;right:0;transform:translateY(-6px)}.t-item{transform-origin:0;transition:transform .25s,opacity .25s}.t-item.current:before{background:var(--neon-w)}.t-item.current .project{border-color:color-mix(in srgb, var(--neon-w) 50%, var(--border))}.t-item.current .project:before{content:attr(data-index) " // ACTIVE";background:var(--neon-w)}.timeline:hover .t-item:not(:hover){opacity:.35}.timeline:has(:focus-within) .t-item:not(:focus-within){opacity:.35}.t-item:hover,.t-item:focus-within{z-index:20;transform:scale(1.03)}.t-item:hover .bullets,.t-item:focus-within .bullets{opacity:1;visibility:visible;transform:translateY(0)}.timeline{border-left:1px solid color-mix(in srgb, var(--neon-c) 35%, var(--border));padding-left:1.5rem;position:relative}.t-item{position:relative}.t-item:before{content:"";background:var(--neon-p);width:9px;height:9px;transition:background .25s,box-shadow .25s;position:absolute;top:50%;left:calc(-1.5rem - 5px);transform:translateY(-50%)rotate(45deg)}.t-item:hover:before,.t-item:focus-within:before{background:var(--neon-c);box-shadow:0 0 10px var(--neon-c)}.project:hover:before,.t-item:hover .project:before,.t-item:focus-within .project:before{background:var(--neon-w)}.t-item:hover .project,.t-item:focus-within .project{border-color:color-mix(in srgb, var(--neon-w) 65%, var(--border));background:var(--panel-2);clip-path:polygon(0 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% 100%, 0 100%);border-bottom-color:#0000}@media (prefers-reduced-motion:reduce){.t-item{transition:none}.t-item:hover,.t-item:focus-within{transform:none}}.project{background:color-mix(in srgb, var(--panel) 92%, transparent);border:1px solid color-mix(in srgb, var(--neon-c) 25%, var(--border));clip-path:polygon(0 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% 100%, var(--cut) 100%, 0 calc(100% - var(--cut)));margin:2rem 0;padding:1.5rem;transition:border-color .3s,background .3s;position:relative}.project:before{content:attr(data-index);top:0;right:var(--cut);background:var(--neon-c);color:#0c0b0e;letter-spacing:.15em;clip-path:polygon(0 0,100% 0,calc(100% - 8px) 100%,8px 100%);padding:.1rem .6rem;font-size:.65rem;font-weight:700;position:absolute}.project:hover{border-color:color-mix(in srgb, var(--neon-w) 65%, var(--border));background:color-mix(in srgb, var(--panel-2) 92%, transparent)}.project h2{letter-spacing:.08em;text-transform:uppercase;color:var(--neon-c)}.project:hover h2{text-shadow:2px 0 var(--neon-p), -2px 0 var(--neon-c)}.project-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.project h2{margin:0;font-size:1.4rem}.tech{color:var(--neon-p);text-transform:uppercase;letter-spacing:.08em;margin:.25rem 0 .75rem;font-size:.75rem}.tech:before{content:"// ";color:var(--muted)}.demo-note{color:var(--muted);margin-bottom:.5rem;font-size:.9rem}.btn{background:var(--neon-c);clip-path:polygon(0 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%);text-transform:uppercase;letter-spacing:.06em;color:#0c0b0e;white-space:nowrap;border:none;padding:.3rem .9rem;font-size:.8rem;font-weight:700;text-decoration:none;display:inline-block}.btn:hover{background:color-mix(in srgb, var(--neon-c) 55%, white)}.demo{background:var(--bg);border:1px solid color-mix(in srgb, var(--neon-c) 18%, var(--border));clip-path:polygon(var(--cut) 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%, 0 var(--cut));padding:1rem;position:relative}.demo:after{content:"";pointer-events:none;background:repeating-linear-gradient(0deg,#0000 0 3px,#49f3f805 3px 4px);position:absolute;inset:0}.demo-error{color:var(--neon-p);margin:.5rem 0 0}.good{color:var(--green)}.dropzone{border:2px dashed var(--border);text-align:center;color:var(--muted);cursor:pointer;padding:1.5rem;display:block}.dropzone.dragging,.dropzone:hover{border-color:var(--neon-c);color:var(--text)}.img-result{flex-wrap:wrap;align-items:flex-start;gap:1rem;margin-top:1rem;display:flex}.img-result img{border:1px solid var(--border);border-radius:8px;max-width:220px;max-height:160px}.img-result p{margin:0 0 .5rem}.resume-demo{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.resume-demo textarea{background:var(--panel);color:var(--text);border:1px solid var(--border);resize:vertical;border-radius:8px;min-height:260px;padding:.75rem;font-family:inherit;font-size:.8rem}.resume-paper{color:#1f2430;background:#fff;border-radius:8px;min-height:260px;padding:1.25rem;font-size:.8rem;overflow:auto}.resume-paper h1{margin:0;font-size:1.2rem}.resume-paper h2{color:#1e1b23;border-bottom:1px solid #ddd;margin:1em 0 .4em;padding-bottom:2px;font-size:.95rem;text-shadow:none!important}.resume-paper h3{color:#556;margin:.2em 0;font-size:.85rem}.resume-paper ul{margin:.3em 0;padding-left:1.2em}.resume-paper p{margin:.3em 0}@media (width<=640px){.resume-demo{grid-template-columns:1fr}}.vireo-stage{padding:1.5rem;overflow:hidden}.vireo-window{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;max-width:480px;margin:0 auto;overflow:hidden;box-shadow:0 12px 32px #00000073}.vireo-titlebar{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;background:var(--panel);border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:.45rem .75rem;display:flex}.vireo-titlebar:active{cursor:grabbing}.dot{border-radius:50%;width:10px;height:10px}.dot.red{background:var(--neon-p)}.dot.yellow{background:#e0af68}.dot.green{background:var(--green)}.vireo-title{color:var(--muted);margin-left:.5rem;font-size:.75rem}.vireo-window img{width:100%;display:block}.vireo-tabs{display:flex}.vireo-tabs button{background:var(--panel);color:var(--muted);border:none;border-top:1px solid var(--border);cursor:pointer;flex:1;padding:.4rem;font-size:.75rem}.vireo-tabs button.active{color:var(--text);background:var(--panel-2)}footer{text-align:center;color:var(--muted);margin-top:3rem;font-size:.8rem}
