@font-face{font-family:VCR OSD Neue;src:url(/fonts/VCRosdNEUE.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--paper:#0b1f24;--sidebar-bg:#0e2e35;--card:#d8d2b3;--nav-bg:#143940;--nav-active:#1d8f9d;--chip:#262312;--ink:#101010;--screen:#1b8d9b;--screen-dark:#0f5660;--terminal:#d7ffe8;--muted:#b9c2ab;--paper-text:#efead2;--pink:#ff5d8f;--teal:#2bd1de;--green:#88ff9f;--yellow:#f7d55b;--display:"VCR OSD Neue", ui-monospace, monospace;--body:"VCR OSD Neue", ui-monospace, monospace;--mono:"VCR OSD Neue", ui-monospace, monospace;--ease:steps(4, end);color:var(--paper-text);background:var(--paper);font-family:var(--body);font-synthesis:none;text-rendering:geometricprecision;-webkit-font-smoothing:none;-moz-osx-font-smoothing:grayscale;font-size:15px;line-height:1.45}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}body{background:var(--paper);min-width:320px;margin:0}button,a{font:inherit}button{background:0 0;border:0;padding:0}a{color:inherit;text-decoration:none}ul,dl,dd{margin:0;padding:0}ul{list-style:none}img,svg{max-width:100%;display:block}:focus-visible{outline:2px dashed var(--green);outline-offset:4px}.portfolio-shell{min-height:100dvh;color:var(--paper-text);background:linear-gradient(#d7ffe809 1px, transparent 1px), linear-gradient(90deg, #d7ffe809 1px, transparent 1px), radial-gradient(circle at 84% 42%, #2bd1de38 0 6px, transparent 7px), linear-gradient(90deg, var(--sidebar-bg) 0 320px, var(--paper) 320px 100%);background-size:18px 18px,18px 18px,auto,auto;display:flex}.portfolio-shell[data-color-mode=light]{--paper:#d7dbc4;--sidebar-bg:#c8d1bd;--card:#fff1c7;--nav-bg:#e8dfb9;--nav-active:#60d9df;--chip:#101010;--ink:#101010;--screen:#2a9fa9;--screen-dark:#39767b;--terminal:#101010;--muted:#3d4b43;--paper-text:#101010;--green:#0c7d44;--teal:#087f92;background:linear-gradient(#1010100e 1px, transparent 1px), linear-gradient(90deg, #1010100e 1px, transparent 1px), radial-gradient(circle at 84% 42%, #087f9233 0 6px, transparent 7px), linear-gradient(90deg, var(--sidebar-bg) 0 320px, var(--paper) 320px 100%);color:var(--paper-text)}.portfolio-shell:before{content:"00110101  ./deploy  01001011  ascii-mode  1011";z-index:0;color:#d7ffe829;letter-spacing:.08em;pointer-events:none;font-size:12px;position:fixed;bottom:18px;right:20px}.portfolio-shell[data-color-mode=light]:before{color:#10101029}.sidebar{z-index:1;background:radial-gradient(circle, #d7ffe833 0 2px, transparent 3px) 10px 10px / 24px 24px, var(--sidebar-bg);border-right:2px solid #d7ffe847;flex-direction:column;flex:0 0 320px;gap:24px;width:320px;height:100dvh;padding:34px 38px 30px;display:flex;position:sticky;top:0}.identity{flex-direction:column;gap:12px;display:flex}.mark{border:2px solid var(--terminal);width:92px;height:92px;transition:transform .12s var(--ease), box-shadow .12s var(--ease);background:#071a1f;place-items:center;margin-bottom:0;display:grid;position:relative;overflow:hidden;box-shadow:7px 7px #031014}.mark:hover{transform:translate(-2px,-2px);box-shadow:9px 9px #031014}.mark img{object-fit:contain;width:104%;height:104%;image-rendering:pixelated}.identity h1{color:var(--terminal);font-family:var(--display);letter-spacing:.02em;text-shadow:3px 3px #041216;margin:0;font-size:36px;font-weight:400;line-height:1}.identity-kicker,.explore-card p,.contact p,.sidebar-status,.panel-label,.card-num,.tags,.card-details dt,.latest-log button{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em}.identity-kicker{max-width:240px;color:var(--teal);line-height:1.35}.identity p:not(.identity-kicker){color:var(--muted);line-height:1.55}.identity strong{color:var(--terminal);font-weight:400}.control-panel{width:244px;color:var(--terminal);background:#071a1f9e;border:2px solid #88ff9f8c;grid-template-columns:1fr 1fr;gap:10px;padding:10px;display:grid;box-shadow:6px 6px #031014}.portfolio-shell[data-color-mode=light] .control-panel{border-color:var(--terminal);background:#fff1c7b8;box-shadow:6px 6px #10101052}.control-panel div{gap:5px;display:grid}.control-panel span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:10px}.control-panel button{color:#06161a;background:var(--green);border:2px solid var(--terminal);cursor:pointer;min-height:28px;transition:transform .12s var(--ease), box-shadow .12s var(--ease);font-size:12px;box-shadow:3px 3px #02090b}.portfolio-shell[data-color-mode=light] .control-panel button{color:#fff4c9;background:#101010;border-color:#101010;box-shadow:3px 3px #10101047}.control-panel button:hover{transform:translate(-2px,-2px);box-shadow:5px 5px #02090b}.explore-card{border:2px solid var(--terminal);background:var(--nav-bg);border-radius:0;width:244px;padding:14px;position:relative;box-shadow:7px 7px #06161a}.explore-card:before{content:"MENU.EXE";color:var(--ink);background:var(--green);padding:2px 6px;font-size:10px;position:absolute;top:-11px;right:10px}.explore-card p{color:var(--terminal);margin:0 0 10px;font-size:14px}.explore-card ul{flex-direction:column;gap:6px;display:flex}.explore-card a{min-height:34px;color:var(--muted);transition:color .12s var(--ease), background-color .12s var(--ease), transform .12s var(--ease);border:1px solid #0000;justify-content:space-between;align-items:center;gap:12px;padding:7px 8px;display:flex;position:relative}.explore-card a:hover,.explore-card a.is-active{color:#06161a;background:var(--nav-active);border-color:var(--terminal);transform:translate(-2px,-2px);box-shadow:4px 4px #06161a}.hat{cursor:pointer;width:30px;height:28px;position:absolute;bottom:-24px;right:22px}.hat:before{content:"";background:var(--terminal);width:22px;height:3px;position:absolute;bottom:4px;left:4px}.hat span,.hat span:before,.hat span:after{content:"";background:var(--green);position:absolute}.hat span{width:4px;height:15px;bottom:7px;left:14px}.hat span:before,.hat span:after{width:13px;height:8px;top:-8px}.hat span:before{right:0}.hat span:after{left:0}.contact{flex-wrap:wrap;gap:8px 12px;margin-top:auto;margin-bottom:86px;display:flex}.contact p{color:var(--terminal);flex-basis:100%;font-size:13px}.contact a{color:var(--muted);transition:color .12s var(--ease)}.contact a:hover{color:var(--green)}.sidebar-status{max-width:142px;color:var(--terminal);gap:4px;font-size:13px;display:grid}.sidebar-status span:last-child{color:var(--muted)}.sidebar-status i{background:var(--green);width:8px;height:8px;margin-right:7px;display:inline-block;box-shadow:0 0 8px #88ff9fcc}.workspace{z-index:1;flex:1;min-width:0;padding:30px 56px 70px;position:relative}.workspace:before{content:". . . . . . . . . . . . . . . . . . . . . . . .";color:#2bd1de47;text-align:right;pointer-events:none;max-width:320px;font-size:18px;line-height:.75;position:absolute;top:108px;right:58px}.latest-log{margin-bottom:38px}.latest-log button{width:100%;min-height:66px;color:var(--green);border:2px solid var(--green);cursor:pointer;background:#071a1f;border-radius:0;align-items:center;gap:14px;padding:0 18px;font-size:15px;display:flex;box-shadow:7px 7px #02090b}.portfolio-shell[data-color-mode=light] .latest-log button{color:#101010;background:#dfffe8;border-color:#101010;box-shadow:7px 7px #10101047}.latest-log time{color:#d7ffe87a;font-family:var(--body);text-transform:none;letter-spacing:.04em;font-size:12px}.chevron{transition:transform .12s var(--ease);margin-left:auto;font-size:22px;line-height:1}.latest-log[data-collapsed=true] .chevron{transform:rotate(-90deg)}.latest-log-body{opacity:1;transition:grid-template-rows .16s var(--ease), opacity .12s var(--ease);grid-template-columns:minmax(180px,310px) minmax(0,1fr);gap:18px;display:grid}.latest-log[data-collapsed=true] .latest-log-body{opacity:0;grid-template-rows:0fr}.latest-log-body pre,.latest-log-body p{min-height:0;overflow:hidden}.latest-log-body pre{color:var(--terminal);background:#071a1fbf;border:1px solid #88ff9f5c;margin:18px 0 0;padding:12px;font-size:12px;line-height:1.5}.portfolio-shell[data-color-mode=light] .latest-log-body pre{color:#101010;background:#e8dfb9;border-color:#101010}.latest-log-body p{max-width:780px;color:var(--muted);padding:18px 2px 0}.config-error{color:var(--pink);margin-top:8px;display:block}.work-grid{grid-template-columns:repeat(2,minmax(280px,1fr));gap:34px 30px;display:grid}.index-card{color:var(--ink);background:var(--card);transform:rotate(var(--tilt));transform-origin:50% 35%;transition:transform .16s var(--ease), box-shadow .16s var(--ease);border:2px solid #0d1d1c;border-radius:0;padding:14px;box-shadow:9px 9px #02090b}.index-card:hover{transform:rotate(0)translate(-3px,-3px);box-shadow:13px 13px #02090b}.card-top{justify-content:space-between;align-items:center;height:18px;margin-bottom:10px;display:flex}.card-hole{background:linear-gradient(90deg,#0000 4px,#0d1d1c 4px 6px,#0000 6px),linear-gradient(#0000 4px,#0d1d1c 4px 6px,#0000 6px);border:1px solid #0d1d1c59;width:13px;height:13px}.card-num{color:#3f453d;font-size:12px}.project-visual{background:radial-gradient(circle, #d7ffe875 0 2px, transparent 3px) 12px 12px / 18px 18px, linear-gradient(135deg, var(--visual-a), var(--visual-b));border:2px solid #0d1d1c;border-radius:0;min-height:270px;position:relative;overflow:hidden}.project-visual:before{content:"ASCII PREVIEW";z-index:2;color:#d7ffe8c2;font-size:11px;position:absolute;top:9px;right:10px}.project-visual--teal{--visual-a:#0c7783;--visual-b:#1b9aa8;--visual-c:#d7ffe8}.project-visual--ink{--visual-a:#121212;--visual-b:#772f4a;--visual-c:#ffb5ce}.project-visual--sun{--visual-a:#e1a92d;--visual-b:#f7d55b;--visual-c:#fff5bd}.project-visual--leaf{--visual-a:#0c5136;--visual-b:#28a75d;--visual-c:#d7ffe8}.project-visual--rose{--visual-a:#bf466f;--visual-b:#f18bad;--visual-c:#151515}.project-visual--blue{--visual-a:#1440a0;--visual-b:#2aa6ff;--visual-c:#e8f7ff}.mock-window{gap:6px;display:inline-flex;position:absolute;top:14px;left:15px}.mock-window span{background:var(--visual-c);width:8px;height:8px}.visual-main{place-items:center;display:grid;position:absolute;inset:42px 34px 34px}.pixel-particles{pointer-events:none;position:absolute;inset:0;overflow:hidden}.pixel-particles span{background:var(--visual-c);opacity:0;width:5px;height:5px;animation:2.2s steps(5,end) infinite paused pixel-particle;position:absolute;box-shadow:0 0 10px}.index-card:hover .pixel-particles span{animation-play-state:running}.pixel-particles span:first-child{animation-delay:0s;top:76%;left:12%}.pixel-particles span:nth-child(2){animation-delay:80ms;top:28%;left:18%}.pixel-particles span:nth-child(3){animation-delay:.16s;top:62%;left:24%}.pixel-particles span:nth-child(4){animation-delay:.24s;top:41%;left:31%}.pixel-particles span:nth-child(5){animation-delay:.32s;top:72%;left:38%}.pixel-particles span:nth-child(6){animation-delay:.4s;top:33%;left:45%}.pixel-particles span:nth-child(7){animation-delay:.48s;top:84%;left:52%}.pixel-particles span:nth-child(8){animation-delay:.56s;top:22%;left:59%}.pixel-particles span:nth-child(9){animation-delay:.64s;top:66%;left:66%}.pixel-particles span:nth-child(10){animation-delay:.72s;top:38%;left:73%}.pixel-particles span:nth-child(11){animation-delay:.8s;top:78%;left:80%}.pixel-particles span:nth-child(12){animation-delay:.88s;top:50%;left:87%}.pixel-particles span:nth-child(13){animation-delay:.96s;top:48%;left:15%}.pixel-particles span:nth-child(14){animation-delay:1.04s;top:18%;left:28%}.pixel-particles span:nth-child(15){animation-delay:1.12s;top:58%;left:42%}.pixel-particles span:nth-child(16){animation-delay:1.2s;top:45%;left:56%}.pixel-particles span:nth-child(17){animation-delay:1.28s;top:18%;left:69%}.pixel-particles span:nth-child(18){animation-delay:1.36s;top:61%;left:77%}.pixel-particles span:nth-child(19){animation-delay:1.44s;top:88%;left:34%}.pixel-particles span:nth-child(20){animation-delay:1.52s;top:28%;left:91%}.pixel-map{opacity:.58;clip-path:polygon(0 20%,18% 20%,18% 0,56% 0,56% 22%,100% 22%,100% 70%,68% 70%,68% 100%,22% 100%,22% 68%,0 68%);background:radial-gradient(circle,#ffffffd1 0 2px,#0000 3px) 0 0/18px 18px;width:min(82%,360px);height:min(76%,190px);animation:1.4s steps(2,end) infinite pixel-blink;position:absolute}.ascii-scene{z-index:1;width:min(92%,360px);min-height:150px;color:var(--visual-c);text-align:left;white-space:pre;background:#051013db;border:2px solid;place-content:center;margin:0;padding:20px;font-size:17px;line-height:1.18;display:grid;position:relative;box-shadow:8px 8px #00000070}.media-frame{z-index:1;width:min(92%,390px);height:min(78%,190px);color:var(--visual-c);background:#051013db;border:2px solid;margin:0;position:relative;overflow:hidden;box-shadow:8px 8px #00000070}.media-frame img,.media-frame video{object-fit:cover;image-rendering:auto;width:100%;height:100%;display:block}.media-frame[data-fit=contain] img,.media-frame[data-fit=contain] video{object-fit:contain;background:#051013c7;padding:10px}.media-frame figcaption{color:var(--terminal);background:#051013db;border:1px solid;padding:5px 7px;font-size:10px;line-height:1.25;position:absolute;bottom:8px;left:8px;right:8px}.visual-chip{z-index:2;color:#06161a;background:var(--green);border:2px solid #06161a;padding:7px 9px;font-size:12px;position:absolute;box-shadow:4px 4px #0000007a}.visual-chip--a{top:28%;left:14%}.visual-chip--b{bottom:20%;right:13%}.card-body{padding:14px 2px 0}.card-body header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.card-body h2{color:#111;min-width:0;font-family:var(--display);letter-spacing:.02em;margin:0;font-size:24px;font-weight:400;line-height:1.05}.tags{flex-wrap:wrap;justify-content:flex-end;gap:7px;font-size:11px;display:flex}.tags span{color:var(--terminal);background:var(--chip);white-space:nowrap;border:1px solid #0d1d1c;padding:4px 7px}.portfolio-shell[data-color-mode=light] .tags span{color:#fff4c9}.card-body>p{color:#4a4431;margin-top:12px;font-size:13px;line-height:1.45}.card-body>.project-subtitle{color:#111;text-transform:uppercase;letter-spacing:.06em;margin-top:9px}.card-body>.project-note{color:#6c3f1f}.project-link{width:fit-content;color:var(--terminal);background:var(--chip);transition:transform .12s var(--ease), box-shadow .12s var(--ease);border:1px solid #0d1d1c;margin-top:12px;padding:5px 8px;font-size:12px;display:inline-flex}.project-link:hover{transform:translate(-2px,-2px);box-shadow:4px 4px #0d1d1c}.portfolio-shell[data-color-mode=light] .project-link{color:#fff4c9}.card-details{transition:grid-template-rows .16s var(--ease);grid-template-rows:0fr;display:grid}.index-card:hover .card-details{grid-template-rows:1fr}.card-details>*{min-height:0;overflow:hidden}.rule{opacity:0;height:2px;transition:opacity .12s var(--ease);background-image:linear-gradient(90deg,#0d1d1c8c 50%,#0000 0);background-size:10px 2px;margin:16px 0 13px;display:block}.index-card:hover .rule{opacity:1}.card-details dl{gap:8px;display:grid}.card-details dl div{color:#4a4431;grid-template-columns:106px minmax(0,1fr);gap:18px;font-size:12px;line-height:1.45;display:grid}.card-details dt{color:#171b17}.card-details dd{margin:0}.info-panel,.lab-strip,.visitor-gallery{color:var(--terminal);background:#071a1f8c;border:2px solid #88ff9f5c;margin-top:42px;padding:30px;box-shadow:8px 8px #02090b}.portfolio-shell[data-color-mode=light] .info-panel,.portfolio-shell[data-color-mode=light] .lab-strip,.portfolio-shell[data-color-mode=light] .visitor-gallery{color:#101010;background:#fff1c7c7;border-color:#101010}.portfolio-shell[data-color-mode=light] .info-panel h2,.portfolio-shell[data-color-mode=light] .lab-strip h2,.portfolio-shell[data-color-mode=light] .info-panel p:last-child{color:#101010}.panel-label{color:var(--teal);margin:0 0 12px;font-size:12px}.info-panel h2,.lab-strip h2{max-width:760px;color:var(--terminal);font-family:var(--display);margin:0;font-size:30px;font-weight:400;line-height:1.1}.info-panel p:last-child{max-width:760px;color:var(--muted);margin-top:14px}.lab-strip{justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.lab-items{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.lab-items button{color:#06161a;background:var(--green);cursor:pointer;transition:transform .12s var(--ease), box-shadow .12s var(--ease);border:2px solid #06161a;padding:9px 12px;box-shadow:4px 4px #02090b}.lab-items button:hover{transform:translate(-2px,-2px);box-shadow:6px 6px #02090b}.visitor-grid{grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px;display:grid}.visitor-grid div{color:#06161a;background:var(--card);border:2px solid #06161a;min-height:110px;padding:14px;box-shadow:5px 5px #02090b}.visitor-grid span{background:var(--screen);width:18px;height:18px;box-shadow:4px 0 0 var(--screen), 0 4px 0 var(--screen-dark);margin-bottom:18px;display:block}.site-badge-footer{justify-content:center;margin:42px 0 18px;display:flex}.site-badge-footer a{transition:border-color .12s var(--ease), transform .12s var(--ease);border:1px solid #0000;padding:4px;display:inline-flex}.site-badge-footer a:hover{border-color:color-mix(in oklab, var(--teal) 72%, transparent);transform:translateY(-2px)}.site-badge-footer img{width:auto;max-width:min(100%,297px);height:auto}.visitor-card{z-index:4;color:var(--green);border:2px solid var(--green);font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;background:#071a1f;align-items:center;gap:8px;padding:7px 10px;font-size:10px;display:inline-flex;position:fixed;bottom:132px;left:38px;box-shadow:5px 5px #02090b}.visitor-card span{background:var(--teal);width:8px;height:8px}.site-pet{z-index:5;border:2px solid var(--terminal);background:#071a1f;width:70px;height:70px;animation:.64s steps(2,end) infinite pet-bob;position:fixed;bottom:20px;left:156px;overflow:hidden;box-shadow:6px 6px #02090b}.site-pet img{object-fit:cover;width:100%;height:100%;image-rendering:pixelated}@keyframes pixel-blink{0%,to{opacity:.42}50%{opacity:.72}}@keyframes pixel-particle{0%{opacity:0;transform:translate(0)scale(1)}18%{opacity:.95}70%{opacity:.55}to{opacity:0;transform:translate(var(--particle-x,18px), -34px) scale(.5)}}@keyframes pet-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.portfolio-shell{--card-pop:#52d8df;--soft-shadow:#00000085;background:radial-gradient(circle, #d7ffe814 0 2px, transparent 3px) 10px 10px / 30px 30px, radial-gradient(circle at 84% 42%, #ff5d8f24 0 7px, transparent 8px), radial-gradient(circle at 74% 18%, #f7d55b1c 0 9px, transparent 10px), linear-gradient(90deg, var(--sidebar-bg) 0 320px, var(--paper) 320px 100%)}.portfolio-shell[data-color-mode=light]{--card-pop:#ff7aa7;--soft-shadow:#10101042;--green:#24a65a;--teal:#0ca7b5;background:radial-gradient(circle, #ffffff61 0 2px, transparent 3px) 10px 10px / 30px 30px, radial-gradient(circle at 84% 42%, #ff7aa730 0 7px, transparent 8px), radial-gradient(circle at 74% 18%, #ffe07033 0 9px, transparent 10px), linear-gradient(90deg, var(--sidebar-bg) 0 320px, var(--paper) 320px 100%)}.sidebar{background:radial-gradient(circle, #d7ffe81f 0 2px, transparent 3px) 10px 10px / 30px 30px, linear-gradient(180deg, #2bd1de14, transparent 42%), var(--sidebar-bg)}.mark{border-color:color-mix(in oklab, var(--terminal) 78%, var(--teal));box-shadow:5px 5px 0 var(--teal), 9px 9px 0 #031014;animation:4.2s ease-in-out infinite avatar-idle;overflow:visible}.mark:before{content:"";z-index:-1;background:radial-gradient(circle at 12% 18%, var(--pink) 0 3px, transparent 4px), radial-gradient(circle at 90% 24%, var(--yellow) 0 3px, transparent 4px), radial-gradient(circle at 18% 92%, var(--teal) 0 3px, transparent 4px);opacity:.86;image-rendering:pixelated;position:absolute;inset:-8px}.mark:after{content:"READY";color:#06161a;background:var(--green);border:2px solid #06161a;padding:4px 7px;font-size:10px;line-height:1;position:absolute;bottom:8px;right:-42px;box-shadow:3px 3px #031014}.mark:hover{box-shadow:7px 7px 0 var(--pink), 11px 11px 0 #031014;transform:translate(-2px,-4px)rotate(-1deg)}.control-panel,.explore-card,.latest-log button,.visitor-card,.site-pet,.info-panel,.lab-strip,.visitor-gallery{box-shadow:4px 4px 0 var(--card-pop), 8px 8px 0 var(--soft-shadow)}.control-panel button,.lab-items button,.project-link{box-shadow:3px 3px 0 var(--card-pop), 5px 5px 0 #00000059}.workspace:before{content:"*  .  +  .  *  .  +  .  *  .  +  .  *";color:#2bd1de33;animation:9s steps(7,end) infinite stardust-drift}.latest-log button{transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s cubic-bezier(.22,1,.36,1)}.latest-log button:hover{box-shadow:6px 6px 0 var(--card-pop), 10px 10px 0 var(--soft-shadow);transform:translate(-2px,-2px)}.index-card{box-shadow:5px 5px 0 var(--card-pop), 10px 10px 0 var(--soft-shadow);border-color:#0d1d1cdb;transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s cubic-bezier(.22,1,.36,1),filter .3s cubic-bezier(.22,1,.36,1);position:relative}.index-card:nth-child(6n+1){--card-pop:#52d8df}.index-card:nth-child(6n+2){--card-pop:#ff8ab4}.index-card:nth-child(6n+3){--card-pop:#72e58d}.index-card:nth-child(6n+4){--card-pop:#f7d55b}.index-card:nth-child(6n+5){--card-pop:#ff7aa7}.index-card:nth-child(6n+6){--card-pop:#65a7ff}.index-card:after{content:"PIXEL";z-index:3;color:#06161a;background:var(--card-pop);border:2px solid #06161a;padding:4px 8px;font-size:10px;line-height:1;position:absolute;top:-12px;right:22px;transform:rotate(1deg);box-shadow:3px 3px #00000061}.index-card:hover{box-shadow:8px 8px 0 var(--card-pop), 15px 15px 0 var(--soft-shadow);filter:saturate(1.08);transform:rotate(0)translate(-4px,-8px)}.index-card:hover:after{animation:.52s cubic-bezier(.22,1,.36,1) sticker-pop}.project-visual{background:radial-gradient(circle, #ffffff6b 0 2px, transparent 3px) 12px 12px / 22px 22px, radial-gradient(circle at 18% 20%, #ffffff38, transparent 22%), linear-gradient(135deg, var(--visual-a), var(--visual-b))}.project-visual:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(transparent 0 48%, #ffffff2e 49% 51%, transparent 52%), radial-gradient(circle at var(--spark-x,20%) var(--spark-y,30%), #ffffff57 0 2px, transparent 3px);mix-blend-mode:screen;opacity:.42;background-size:100% 18px,auto;animation:4.8s steps(9,end) infinite scanline-soft;position:absolute;inset:0}.media-frame,.ascii-scene{box-shadow:5px 5px 0 var(--card-pop), 9px 9px 0 #00000057;transition:transform .26s cubic-bezier(.22,1,.36,1),box-shadow .26s cubic-bezier(.22,1,.36,1);transform:rotate(-.6deg)}.index-card:hover .media-frame,.index-card:hover .ascii-scene{box-shadow:7px 7px 0 var(--card-pop), 12px 12px 0 #00000057;transform:rotate(.6deg)translateY(-3px)}.pixel-map{opacity:.36;animation:2.4s steps(4,end) infinite pixel-blink}.pixel-particles span{width:6px;height:6px;animation-duration:1.8s}.index-card:hover .visual-chip--a{animation:.7s cubic-bezier(.22,1,.36,1) chip-hop}.index-card:hover .visual-chip--b{animation:.7s cubic-bezier(.22,1,.36,1) 80ms chip-hop}.card-details dl div{padding:3px 0}.rule{background-image:linear-gradient(90deg, var(--card-pop) 50%, transparent 0)}.site-pet{border-color:var(--card-pop);box-shadow:4px 4px 0 var(--card-pop), 8px 8px 0 var(--soft-shadow);animation:1.6s steps(3,end) infinite pet-bob}.pixel-cursor{z-index:130;--cursor-cell:2px;width:26px;height:34px;image-rendering:pixelated;opacity:0;pointer-events:none;transform:translate3d(calc(var(--cursor-x,-40px) - 1px), calc(var(--cursor-y,-40px) - 1px), 0);will-change:transform, opacity;transition:opacity 80ms steps(2,end),transform 90ms steps(2,end);position:fixed;top:0;left:0}.pixel-cursor span{left:calc(var(--px) * var(--cursor-cell));top:calc(var(--py) * var(--cursor-cell));width:var(--cursor-cell);height:var(--cursor-cell);background:#fffdf6;position:absolute}.pixel-cursor span[data-tone=b]{background:#171315}.pixel-cursor.is-visible{opacity:1}.pixel-cursor.is-pressed{transform:translate3d(calc(var(--cursor-x,-40px) - 1px), calc(var(--cursor-y,-40px) - 1px), 0) scale(.96)}.cursor-trail{z-index:120;pointer-events:none;position:fixed;inset:0;overflow:hidden}.cursor-trail span{width:var(--cursor-size,6px);height:var(--cursor-size,6px);background:var(--cursor-color,var(--green));image-rendering:pixelated;transform:translate3d(var(--cursor-x), var(--cursor-y), 0);animation:cursor-pixel-burst var(--cursor-duration,.56s) steps(6, end) forwards;will-change:transform, opacity;position:fixed;top:0;left:0}@media (pointer:fine){.portfolio-shell,.portfolio-shell *{cursor:none!important}}@keyframes avatar-idle{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes stardust-drift{0%{transform:translate(0)}to{transform:translate(-36px)}}@keyframes sticker-pop{0%,to{transform:rotate(1deg)translateY(0)}45%{transform:rotate(-3deg)translateY(-5px)}}@keyframes scanline-soft{0%{background-position:0 -20px,0 0}to{background-position:0 80px,0 0}}@keyframes chip-hop{0%,to{transform:translateY(0)}45%{transform:translateY(-7px)}}@keyframes cursor-pixel-burst{0%{opacity:0;transform:translate3d(var(--cursor-x), var(--cursor-y), 0) scale(.3) rotate(0)}14%{opacity:1;transform:translate3d(var(--cursor-x), var(--cursor-y), 0) scale(1.15) rotate(0)}46%{opacity:.9}to{opacity:0;transform:translate3d(calc(var(--cursor-x) + var(--cursor-dx)), calc(var(--cursor-y) + var(--cursor-dy)), 0) scale(.18) rotate(var(--cursor-rotation))}}@media (width<=1100px){.portfolio-shell{background:linear-gradient(#d7ffe809 1px, transparent 1px), linear-gradient(90deg, #d7ffe809 1px, transparent 1px), var(--paper);background-size:18px 18px;display:block}.sidebar{border-bottom:2px solid #d7ffe847;border-right:0;width:auto;height:auto;padding:28px 24px;position:relative}.workspace{padding:26px 24px 60px}.contact,.sidebar-status,.visitor-card,.site-pet{display:none}.work-grid{grid-template-columns:1fr}}@media (width<=640px){.sidebar{gap:22px}.identity h1{font-size:31px}.explore-card{width:100%}.latest-log button{min-height:58px;font-size:13px}.latest-log time{display:none}.latest-log-body{grid-template-columns:1fr}.project-visual{min-height:230px}.visual-main{inset:42px 18px 30px}.ascii-scene{width:100%;min-height:128px;padding:14px;font-size:13px}.media-frame{width:100%;height:136px}.visual-chip--a{left:9%}.visual-chip--b{right:8%}.card-body header,.lab-strip{flex-direction:column;align-items:flex-start}.tags{justify-content:flex-start}.card-details{grid-template-rows:1fr}.rule{opacity:1}.info-panel,.lab-strip,.visitor-gallery{padding:22px}.info-panel h2,.lab-strip h2{font-size:24px}.visitor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-badge-footer{justify-content:flex-start}.site-badge-footer img{max-width:min(100%,268px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.cursor-trail span{animation:.36s steps(3,end) forwards cursor-pixel-burst!important}}
