:root:not([data-theme]) .proj-hero,:root[data-theme=premium] .proj-hero{background:transparent}:root:not([data-theme]) .proj-hero-bracket,:root[data-theme=premium] .proj-hero-bracket{-webkit-text-stroke:1px rgba(139,92,246,.1);filter:drop-shadow(0 0 30px rgba(139,92,246,.04))}:root:not([data-theme]) .proj-code-block,:root[data-theme=premium] .proj-code-block{background:#0f0c19cc;border-color:#8b5cf61f;box-shadow:var(--shadow-lg),0 0 40px #8b5cf60f}:root:not([data-theme]) .proj-code-header,:root[data-theme=premium] .proj-code-header{background:#0000004d;border-bottom-color:#8b5cf61a}:root:not([data-theme]) .proj-card,:root[data-theme=premium] .proj-card{background:#0f0c198c;border-color:#ffffff0f}:root:not([data-theme]) .proj-card:hover,:root[data-theme=premium] .proj-card:hover{border-color:#8b5cf640;box-shadow:var(--shadow-md),0 0 24px #8b5cf614}:root:not([data-theme]) .proj-tab--active,:root[data-theme=premium] .proj-tab--active{background:#8b5cf626;border-color:var(--color-rainbow-2);color:var(--color-rainbow-2)}:root:not([data-theme]) .proj-card-chip,[data-theme=premium] .proj-card-chip{background:#8b5cf60d;border-color:#8b5cf61a}:root:not([data-theme]) .proj-card-chip:hover,[data-theme=premium] .proj-card-chip:hover{border-color:#8b5cf64d;color:var(--color-rainbow-2)}[data-theme=sketch] .proj-hero{background:transparent}[data-theme=sketch] .proj-hero-bg{background:radial-gradient(ellipse at 50% 40%,rgba(184,74,50,.05) 0%,transparent 50%)}[data-theme=sketch] .proj-hero-grid{background-image:linear-gradient(rgba(45,38,32,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(45,38,32,.035) 1px,transparent 1px);background-size:22px 22px}[data-theme=sketch] .proj-hero-bracket{font-family:Caveat,cursive;-webkit-text-stroke:1.5px rgba(184,74,50,.15);transform:rotate(-3deg)}[data-theme=sketch] .proj-hero-bracket--r{transform:rotate(-3deg)}[data-theme=sketch] .proj-badge{background:#b84a321a;border:1px dashed rgba(184,74,50,.25);border-radius:255px 15px 225px/15px 225px 15px 255px;font-family:Special Elite,monospace}[data-theme=sketch] .proj-code-block{background:#fffcf5e6;border:2px dashed rgba(45,38,32,.12);border-radius:240px 16px 210px/16px 210px 16px 240px;box-shadow:5px 5px #2d262014;transform:rotate(-1.5deg)}[data-theme=sketch] .proj-code-block:hover{transform:rotate(.5deg) translateY(-4px);box-shadow:7px 7px #2d26201a}[data-theme=sketch] .proj-code-header{background:#2d26200a;border-bottom-style:dashed}[data-theme=sketch] .proj-tab{border-style:dashed;border-radius:255px 15px 225px/15px 225px 15px 255px;font-family:Caveat,cursive;font-size:.82rem}[data-theme=sketch] .proj-tab--active{background:#b84a321a;border-color:var(--color-accent);border-style:dashed}[data-theme=sketch] .proj-filter{border-bottom-style:dashed}[data-theme=sketch] .proj-card{background:#fffcf5e0;border:2px dashed rgba(45,38,32,.1);border-radius:230px 16px 200px/16px 200px 16px 230px;box-shadow:4px 4px #2d26200f}[data-theme=sketch] .proj-card:hover{border-color:#b84a3240;transform:translateY(-4px) rotate(.3deg);box-shadow:6px 6px #2d262017}[data-theme=sketch] .proj-card-title{font-family:Caveat,cursive;font-size:1.25rem}[data-theme=sketch] .proj-card-chip{border-style:dashed;border-radius:160px 8px 140px/8px 140px 8px 160px;font-family:Caveat,cursive;font-size:.76rem}[data-theme=sketch] .proj-card-foot{border-top-style:dashed}[data-theme=sketch] .proj-card-link{font-family:Caveat,cursive}[data-theme=retro] .proj-hero{background:transparent}[data-theme=retro] .proj-hero-bg{background:radial-gradient(ellipse at 70% 30%,rgba(74,138,197,.08) 0%,transparent 50%)}[data-theme=retro] .proj-hero-grid{background-image:linear-gradient(rgba(0,36,106,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(0,36,106,.035) 1px,transparent 1px);background-size:18px 18px}[data-theme=retro] .proj-hero-bracket{-webkit-text-stroke:1.5px #0055ff;color:#0055ff0a;font-family:Consolas,Courier New,monospace}[data-theme=retro] .proj-badge{background:var(--xp-btn-normal);border:2px solid var(--xp-gray-dark);border-radius:3px;color:var(--xp-blue-dark);font-family:Tahoma,Verdana,sans-serif;font-weight:700;box-shadow:var(--xp-outset);padding:1px 7px}[data-theme=retro] .proj-code-block{background:#fff;border:2px solid var(--xp-gray-dark);border-radius:8px;box-shadow:var(--xp-outset);transform:none}[data-theme=retro] .proj-code-block:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}[data-theme=retro] .proj-code-header{background:linear-gradient(180deg,var(--xp-blue-pale),#ffffff);border-bottom:2px solid var(--xp-gray-dark)}[data-theme=retro] .proj-code-filename{font-family:Tahoma,Verdana,sans-serif}[data-theme=retro] .proj-tab{background:var(--xp-btn-normal);border:2px solid var(--xp-gray-dark);border-radius:3px;font-family:Tahoma,Verdana,sans-serif;font-size:11px;box-shadow:var(--xp-outset)}[data-theme=retro] .proj-tab:hover{background:var(--xp-btn-hover);border-color:var(--xp-blue-light)}[data-theme=retro] .proj-tab--active{background:var(--xp-blue-pale);color:var(--xp-blue-dark);border-color:var(--xp-blue-mid);font-weight:700}[data-theme=retro] .proj-filter{border-bottom:2px solid var(--xp-gray-dark)}[data-theme=retro] .proj-card{background:#fff;border:2px solid var(--xp-gray-dark);border-radius:8px;box-shadow:var(--xp-outset)}[data-theme=retro] .proj-card:hover{border-color:var(--xp-blue-light);box-shadow:var(--shadow-md)}[data-theme=retro] .proj-card:before{height:3px;background:var(--xp-titlebar)}[data-theme=retro] .proj-card-type{border-radius:2px;font-family:Tahoma,Verdana,sans-serif;font-size:10px;border:1px solid var(--xp-gray-mid)}[data-theme=retro] .proj-card-title{font-family:Tahoma,Verdana,sans-serif}[data-theme=retro] .proj-card-chip{background:#fff;border:1px solid var(--xp-gray-mid);border-radius:2px;font-family:Tahoma,Verdana,sans-serif;font-size:10px;box-shadow:1px 1px #fff}[data-theme=retro] .proj-card-foot{border-top:1px solid var(--xp-gray-mid)}[data-theme=retro] .proj-card-link{font-family:Tahoma,Verdana,sans-serif}[data-theme=pixel] .proj-hero{image-rendering:pixelated;background:transparent}[data-theme=pixel] .proj-hero-bg{background:radial-gradient(ellipse at 30% 20%,rgba(65,166,246,.06) 0%,transparent 50%),radial-gradient(ellipse at 70% 80%,rgba(78,201,176,.04) 0%,transparent 45%)}[data-theme=pixel] .proj-hero-grid{background-image:linear-gradient(rgba(78,201,176,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(78,201,176,.07) 1px,transparent 1px);background-size:14px 14px}[data-theme=pixel] .proj-hero-bracket{-webkit-text-stroke:2px var(--pixel-blue);color:#41a6f60f;image-rendering:pixelated}[data-theme=pixel] .proj-badge{background:var(--pixel-blue);border:2px solid var(--pixel-blue);color:#1a1c2c;border-radius:0;font-family:"Press Start 2P",monospace;font-size:.5rem;padding:3px 7px;box-shadow:2px 2px #000}[data-theme=pixel] .proj-code-block{background:var(--color-bg-secondary);border:3px solid var(--color-border);border-radius:2px;box-shadow:4px 4px #000;transform:none;image-rendering:pixelated}[data-theme=pixel] .proj-code-block:hover{transform:translate(-2px,-2px);box-shadow:6px 6px #000}[data-theme=pixel] .proj-code-header{background:var(--color-bg-tertiary);border-bottom:2px solid var(--color-border)}[data-theme=pixel] .proj-code-dot{width:10px;height:10px;border-radius:0;image-rendering:pixelated}[data-theme=pixel] .proj-tab{background:var(--color-bg-tertiary);border:2px solid var(--color-border);border-radius:0;font-family:VT323,monospace;font-size:.85rem;box-shadow:2px 2px #000}[data-theme=pixel] .proj-tab:hover{border-color:var(--pixel-blue);background:#41a6f61a}[data-theme=pixel] .proj-tab--active{background:var(--pixel-blue);color:#1a1c2c;border-color:var(--pixel-blue);box-shadow:inset 2px 2px #0003}[data-theme=pixel] .proj-filter{border-bottom:2px solid var(--color-border)}[data-theme=pixel] .proj-card{background:var(--color-bg-secondary);border:2px solid var(--color-border);border-radius:2px;box-shadow:3px 3px #000;image-rendering:pixelated}[data-theme=pixel] .proj-card:hover{border-color:var(--pixel-blue);box-shadow:4px 4px 0 var(--pixel-blue)}[data-theme=pixel] .proj-card:before{height:3px;background:var(--pixel-blue)}[data-theme=pixel] .proj-card-type{border-radius:0;font-family:"Press Start 2P",monospace;font-size:.48rem;border:2px solid currentColor;box-shadow:1px 1px #000}[data-theme=pixel] .proj-card-title{font-family:VT323,monospace;font-size:1.2rem}[data-theme=pixel] .proj-card-chip{background:var(--color-bg-tertiary);border:2px solid var(--color-border);border-radius:0;font-family:VT323,monospace;font-size:.8rem;box-shadow:1px 1px #0003}[data-theme=pixel] .proj-card-chip:hover{border-color:var(--pixel-yellow);color:var(--pixel-yellow)}[data-theme=pixel] .proj-card-foot{border-top:2px solid var(--color-border)}[data-theme=pixel] .proj-card-link{font-family:VT323,monospace}[data-theme=cozy] .proj-hero{background:transparent}[data-theme=cozy] .proj-hero-bg{background:radial-gradient(ellipse at 20% 25%,rgba(232,168,124,.08) 0%,transparent 50%),radial-gradient(ellipse at 80% 75%,rgba(143,174,139,.06) 0%,transparent 45%)}[data-theme=cozy] .proj-hero-grid{background-image:linear-gradient(rgba(193,127,89,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(193,127,89,.035) 1px,transparent 1px);background-size:28px 28px}[data-theme=cozy] .proj-hero-bracket{-webkit-text-stroke:1px rgba(193,127,89,.12);color:#c17f5908;font-family:Lora,serif}[data-theme=cozy] .proj-badge{background:#c17f591a;color:var(--color-accent);border-radius:9999px;font-family:Quicksand,sans-serif}[data-theme=cozy] .proj-code-block{background:#fffcf7e0;border:1px solid rgba(193,127,89,.08);border-radius:20px;box-shadow:0 4px 24px #3d32290f;transform:rotate(.5deg)}[data-theme=cozy] .proj-code-block:hover{transform:rotate(0) translateY(-4px);box-shadow:0 8px 36px #3d322917}[data-theme=cozy] .proj-code-header{background:#f0d9a814;border-bottom-color:#c17f5914}[data-theme=cozy] .proj-tab{border-radius:9999px;font-family:Nunito,sans-serif}[data-theme=cozy] .proj-tab--active{background:#c17f591f;border-color:var(--color-accent)}[data-theme=cozy] .proj-filter{border-bottom-color:#3d322914}[data-theme=cozy] .proj-card{background:#fffcf7d1;border:1px solid rgba(61,50,41,.06);border-radius:20px;box-shadow:0 2px 12px #3d32290a}[data-theme=cozy] .proj-card:hover{border-color:#c17f5926;box-shadow:0 6px 24px #3d322914}[data-theme=cozy] .proj-card:before{background:linear-gradient(90deg,rgba(193,127,89,.3),transparent)}[data-theme=cozy] .proj-card-type{border-radius:9999px;font-family:Quicksand,sans-serif}[data-theme=cozy] .proj-card-title{font-family:Quicksand,sans-serif}[data-theme=cozy] .proj-card-chip{border-radius:9999px;font-family:Nunito,sans-serif}[data-theme=cozy] .proj-card-chip:hover{border-color:var(--cozy-warm);color:var(--cozy-warm)}[data-theme=cozy] .proj-card-foot{border-top-color:#3d32290f}[data-theme=cozy] .proj-card-link{font-family:Quicksand,sans-serif}[data-theme=anime] .proj-hero{background:transparent}[data-theme=anime] .proj-hero-bg{background:radial-gradient(ellipse at 25% 20%,rgba(255,133,162,.08) 0%,transparent 50%),radial-gradient(ellipse at 75% 80%,rgba(125,211,192,.06) 0%,transparent 45%),radial-gradient(ellipse at 50% 50%,rgba(212,165,232,.04) 0%,transparent 50%)}[data-theme=anime] .proj-hero-grid{background-image:linear-gradient(rgba(255,133,162,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,133,162,.05) 1px,transparent 1px);background-size:24px 24px}[data-theme=anime] .proj-hero-bracket{-webkit-text-stroke:2px var(--anime-pink);color:#ff85a20d;font-family:Quicksand,cursive;filter:drop-shadow(0 0 16px rgba(255,133,162,.08))}[data-theme=anime] .proj-badge{background:#ff85a226;color:var(--anime-pink);border:2px dashed var(--anime-pink);border-radius:9999px;font-family:Quicksand,Comic Sans MS,sans-serif;font-weight:700}[data-theme=anime] .proj-code-block{background:#ffffffeb;border:2.5px dashed rgba(255,133,162,.15);border-radius:28px;box-shadow:0 6px 24px #ff85a214;transform:rotate(1.5deg)}[data-theme=anime] .proj-code-block:hover{transform:rotate(-.5deg) translateY(-6px);box-shadow:0 10px 36px #ff85a221}[data-theme=anime] .proj-code-header{background:#ff85a20d;border-bottom:2px dashed rgba(255,133,162,.1)}[data-theme=anime] .proj-tab{border:2px dashed rgba(180,154,168,.2);border-radius:9999px;font-family:Nunito,Comic Sans MS,sans-serif;font-size:.82rem}[data-theme=anime] .proj-tab:hover{border-color:var(--anime-pink);border-style:solid;background:#ff85a20f}[data-theme=anime] .proj-tab--active{background:#ff85a226;border-color:var(--anime-pink);border-style:solid;color:var(--anime-pink)}[data-theme=anime] .proj-filter{border-bottom:2px dashed rgba(180,154,168,.2)}[data-theme=anime] .proj-card{background:#ffffffe0;border:2px dashed rgba(255,133,162,.12);border-radius:28px;box-shadow:0 4px 16px #ff85a20d}[data-theme=anime] .proj-card:hover{border-color:var(--anime-pink);border-style:solid;box-shadow:0 8px 28px #ff85a21f;transform:translateY(-5px) scale(1.01)}[data-theme=anime] .proj-card:before{height:3px;background:linear-gradient(90deg,var(--anime-pink),var(--anime-lavender));border-radius:0 2px 2px 0}[data-theme=anime] .proj-card-type{border-radius:9999px;font-family:Quicksand,Comic Sans MS,sans-serif;border:1.5px dashed currentColor}[data-theme=anime] .proj-card-title{font-family:Quicksand,Comic Sans MS,sans-serif}[data-theme=anime] .proj-card-chip{border:1.5px dashed rgba(180,154,168,.18);border-radius:9999px;font-family:Nunito,Comic Sans MS,sans-serif}[data-theme=anime] .proj-card-chip:hover{border-color:var(--anime-pink);border-style:solid;color:var(--anime-pink);background:#ff85a214}[data-theme=anime] .proj-card-foot{border-top:1.5px dashed rgba(180,154,168,.15)}[data-theme=anime] .proj-card-link{font-family:Quicksand,Comic Sans MS,sans-serif;font-weight:700}[data-theme=sketch] .page-watermark{color:#b84a3209;font-family:Comic Sans MS,cursive;transform:rotate(-4deg)}[data-theme=sketch] .p-deco-tri--1{border-bottom-color:#b84a321f;filter:none}[data-theme=sketch] .p-deco-hex--1{border-color:#d4a57417;clip-path:polygon(28% 2%,76% 4%,98% 52%,72% 98%,24% 96%,2% 48%)}[data-theme=sketch] .p-deco-cross--1:before,[data-theme=sketch] .p-deco-cross--1:after{background:#b84a321c}[data-theme=sketch] .p-deco-combo--1{border-color:#b84a3212;border-radius:47% 53% 51% 49%/52% 48% 50% 50%}[data-theme=sketch] .p-deco-combo--1:before{border-color:#d4a5740d;border-radius:48% 52% 54% 46%/56% 44% 46% 54%}[data-theme=retro] .page-watermark{color:#0000ff06;font-family:Courier New,monospace;text-transform:uppercase;letter-spacing:.15em;transform:rotate(-2deg)}[data-theme=retro] .p-deco-tri--1{border-bottom-color:#00f3;animation:none!important;opacity:.35!important;image-rendering:pixelated}[data-theme=retro] .p-deco-hex--1{border-color:#80808044;border-width:2px;image-rendering:pixelated;animation:none!important;opacity:.3!important}[data-theme=retro] .p-deco-cross--1:before,[data-theme=retro] .p-deco-cross--1:after{background:#00f3}[data-theme=retro] .p-deco-cross--1{animation:none!important;opacity:.35!important}[data-theme=retro] .p-deco-combo--1{border:2px dotted #0000FF;border-radius:0;animation:none!important;opacity:.25!important}[data-theme=retro] .p-deco-combo--1:before{display:none}[data-theme=retro] .p-deco-combo--1:after{background:#00f5;box-shadow:0 9px #00f2,9px 0 #00f2,-9px 0 #00f2}[data-theme=pixel] .page-watermark{color:#4ec9b00a;font-family:monospace;image-rendering:pixelated;transform:rotate(0)}[data-theme=pixel] .p-deco-tri--1{border-bottom-color:#4ec9b033;image-rendering:pixelated;animation:none!important;opacity:.45!important}[data-theme=pixel] .p-deco-hex--1{border-color:#41a6f633;border-width:2px;clip-path:polygon(20% 0%,80% 0%,100% 50%,80% 100%,20% 100%,0% 50%);image-rendering:pixelated;animation:none!important;opacity:.4!important}[data-theme=pixel] .p-deco-cross--1:before,[data-theme=pixel] .p-deco-cross--1:after{background:#4ec9b0;image-rendering:pixelated}[data-theme=pixel] .p-deco-cross--1{animation:none!important;opacity:.45!important}[data-theme=pixel] .p-deco-combo--1{border:2px solid #4ec9b0;border-radius:0;animation:none!important;opacity:.35!important;image-rendering:pixelated}[data-theme=pixel] .p-deco-combo--1:before{border:2px solid #41a6f6;border-radius:0}[data-theme=pixel] .p-deco-combo--1:after{background:#4ec9b0;box-shadow:0 9px #4ec9b055,9px 0 #4ec9b055,-9px 0 #4ec9b055}[data-theme=cozy] .page-watermark{color:#c17f5909;font-family:Georgia,serif;font-style:italic;transform:rotate(-6deg)}[data-theme=cozy] .p-deco-tri--1{border-bottom-color:#c17f591c;filter:drop-shadow(0 0 5px rgba(232,196,156,.08))}[data-theme=cozy] .p-deco-hex--1{border-color:#e8c49c17}[data-theme=cozy] .p-deco-cross--1:before,[data-theme=cozy] .p-deco-cross--1:after{background:#c17f591a}[data-theme=cozy] .p-deco-combo--1{border-color:#c17f5914;box-shadow:0 0 12px #e8c49c0d}[data-theme=anime] .page-watermark{color:#ff69b40b;font-family:Comic Sans MS,cursive;transform:rotate(-10deg);animation-name:animeProjWatermarkBounce}@keyframes animeProjWatermarkBounce{0%,to{transform:rotate(-10deg) translate(0)}25%{transform:rotate(-7deg) translate(-6px,8px)}50%{transform:rotate(-12deg) translate(5px,-3px)}75%{transform:rotate(-8deg) translate(-3px,5px)}}[data-theme=anime] .p-deco-tri--1{border-bottom-color:#ff69b433;filter:drop-shadow(0 0 6px rgba(255,105,180,.12));animation-duration:5s}[data-theme=anime] .p-deco-hex--1{border-color:#ffd70033;animation-duration:18s}[data-theme=anime] .p-deco-cross--1:before,[data-theme=anime] .p-deco-cross--1:after{background:#ff69b433}[data-theme=anime] .p-deco-cross--1{animation-duration:14s}[data-theme=anime] .p-deco-combo--1{border-color:#ff69b420;box-shadow:0 0 18px #ff69b414;animation-duration:7s}[data-theme=anime] .p-deco-combo--1:before{border-color:#ffd70018}[data-theme=anime] .p-deco-combo--1:after{background:#ff69b4;box-shadow:0 9px #ffb6c12e,9px 0 #ffd7001f,-9px 0 #ffb6c12e}.proj-page{min-height:100vh}.proj-hero{position:relative;min-height:80vh;display:flex;align-items:center;overflow:hidden}.proj-hero-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 25% 20%,rgba(139,92,246,.07) 0%,transparent 50%),radial-gradient(ellipse at 75% 80%,rgba(0,136,255,.05) 0%,transparent 45%);z-index:0}.proj-hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:44px 44px;z-index:0}.proj-hero-bracket{position:absolute;font-family:JetBrains Mono,Fira Code,monospace;font-size:clamp(160px,25vw,320px);color:transparent;-webkit-text-stroke:1px rgba(139,92,246,.08);line-height:1;user-select:none;z-index:0;pointer-events:none}.proj-hero-bracket--l{top:5%;left:-2%;transform:translateY(-10%)}.proj-hero-bracket--r{bottom:5%;right:-2%;transform:translateY(10%)}.proj-hero-inner{position:relative;z-index:1;width:100%;padding-top:2rem;padding-bottom:3rem}.proj-hero-body{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;min-height:calc(80vh - 12rem)}@media(max-width:900px){.proj-hero-body{grid-template-columns:1fr;gap:2rem;min-height:auto}.proj-hero-bracket{display:none}}.proj-hero-left{display:flex;flex-direction:column;gap:1.15rem}.proj-meta-row{display:flex;align-items:center;gap:.65rem}.proj-badge{display:inline-flex;align-items:center;padding:.22rem .7rem;font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent);background:var(--color-accent-dim);border-radius:var(--radius-default);font-family:var(--font-mono)}.proj-meta-sep{width:4px;height:4px;border-radius:50%;background:var(--color-text-muted)}.proj-meta-text{font-size:.73rem;color:var(--color-text-muted);font-style:italic}.proj-title{display:flex;flex-direction:column;gap:.3rem;margin:0;line-height:1.08}.proj-title-cn{font-size:clamp(36px,6vw,60px);font-weight:800;letter-spacing:var(--letter-spacing-heading);color:var(--color-text-primary)}.proj-title-en{font-size:clamp(14px,2vw,20px);font-weight:400;color:var(--color-text-muted);letter-spacing:.02em;font-family:var(--font-mono)}.proj-desc{font-size:.95rem;line-height:1.7;color:var(--color-text-secondary);max-width:480px;margin:0}.proj-stats{display:flex;align-items:center;gap:1.25rem;margin-top:.3rem}.proj-stat{display:flex;align-items:baseline;gap:.35rem}.proj-stat-num{font-size:1.35rem;font-weight:800;color:var(--color-text-primary);font-family:var(--font-mono)}.proj-stat-label{font-size:.72rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em}.proj-stat-sep{width:1px;height:18px;background:var(--color-border)}.proj-hero-right{display:flex;justify-content:center;align-items:center}.proj-code-block{width:100%;max-width:420px;background:var(--glass-bg);backdrop-filter:var(--backdrop-blur);border:1px solid var(--glass-border);border-radius:var(--radius-card);overflow:hidden;box-shadow:var(--shadow-lg);transform:rotate(-.5deg);transition:transform var(--duration-normal) var(--ease-main),box-shadow var(--duration-normal) var(--ease-main)}.proj-code-block:hover{transform:rotate(0) translateY(-4px);box-shadow:var(--shadow-lg),0 0 40px #8b5cf60f}.proj-code-header{display:flex;align-items:center;gap:.5rem;padding:.7rem 1rem;background:#00000026;border-bottom:1px solid var(--color-border)}.proj-code-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.proj-code-dot:nth-child(1){background:#ff5f57}.proj-code-dot:nth-child(2){background:#ffbd2e}.proj-code-dot:nth-child(3){background:#28ca42}.proj-code-filename{font-size:.7rem;color:var(--color-text-muted);font-family:var(--font-mono);margin-left:auto}.proj-code-body{padding:1.25rem;overflow-x:auto}.proj-code-body pre{margin:0;font-family:var(--font-mono);font-size:.78rem;line-height:1.7;color:var(--color-text-secondary);white-space:pre-wrap;word-break:break-word}.proj-code-body code{font-family:inherit;color:inherit}.proj-filter{position:relative;z-index:1;padding:1.25rem 0;border-bottom:1px solid var(--color-border)}.proj-filter-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.proj-filter-tabs{display:flex;flex-wrap:wrap;gap:.4rem}.proj-tab{padding:.35rem .9rem;font-size:.78rem;font-weight:500;color:var(--color-text-secondary);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-pill);cursor:pointer;transition:all var(--duration-fast) var(--ease-main);font-family:var(--font-primary)}.proj-tab:hover{border-color:var(--color-border-hover);color:var(--color-text-primary)}.proj-tab--active{color:var(--color-accent);background:var(--color-accent-dim);border-color:var(--color-accent)}.proj-filter-meta{display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:var(--color-text-muted)}.proj-filter-dot{color:var(--color-text-dim)}.proj-grid-wrap{position:relative;z-index:1;padding:2rem 0 4rem}.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.5rem}@media(max-width:640px){.proj-grid{grid-template-columns:1fr}}.proj-card{background:var(--glass-bg);backdrop-filter:var(--backdrop-blur);border:1px solid var(--glass-border);border-radius:var(--radius-card);padding:1.75rem;display:flex;flex-direction:column;gap:.85rem;transition:all var(--duration-normal) var(--ease-main);animation:projCardFadeIn .5s ease-out both;animation-delay:calc(var(--card-i, 0) * .08s);position:relative;overflow:hidden}.proj-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--color-accent-dim),transparent);opacity:0;transition:opacity var(--duration-fast) var(--ease-main)}.proj-card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-md);transform:translateY(-4px)}.proj-card:hover:before{opacity:1}.proj-card-head{display:flex;justify-content:space-between;align-items:center}.proj-card-badge{font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);font-family:var(--font-mono)}.proj-card-type{font-size:.65rem;font-weight:600;padding:.15rem .55rem;border-radius:var(--radius-default);text-transform:uppercase;letter-spacing:.04em}.proj-card-type--featured{color:#f59e0b;background:#f59e0b1a}.proj-card-type--full-stack{color:#3b82f6;background:#3b82f61a}.proj-card-type--frontend{color:#06b6d4;background:#06b6d41a}.proj-card-type--backend{color:#10b981;background:#10b9811a}.proj-card-type--ai-ml{color:#a855f7;background:#a855f71a}.proj-card-type--tool{color:#6b7280;background:#6b72801a}.proj-card-type--web-app{color:#3b82f6;background:#3b82f61a}.proj-card-type--oss{color:#22c55e;background:#22c55e1a}.proj-card-type--cli{color:#a855f7;background:#a855f71a}.proj-card-type--side{color:#6b7280;background:#6b72801a}.proj-card-title{font-size:1.1rem;font-weight:700;color:var(--color-text-primary);margin:0;line-height:1.35;transition:color var(--duration-fast) var(--ease-main)}.proj-card:hover .proj-card-title{color:var(--color-accent)}.proj-card{cursor:pointer}.proj-card-title-link{color:inherit;text-decoration:none}.proj-card-desc{font-size:.85rem;color:var(--color-text-secondary);line-height:1.6;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.proj-card-tech{display:flex;flex-wrap:wrap;gap:.35rem}.proj-card-chip{font-size:.68rem;padding:.15rem .5rem;color:var(--color-text-muted);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-default);transition:all var(--duration-fast) var(--ease-main)}.proj-card-chip:hover{color:var(--color-text-secondary);border-color:var(--color-border-hover)}.proj-card-foot{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:.75rem;border-top:1px solid var(--color-border)}.proj-card-metrics{display:flex;align-items:center;gap:.5rem;font-size:.72rem;color:var(--color-text-muted);font-family:var(--font-mono)}.proj-card-link{display:inline-flex;align-items:center;gap:.35rem;font-size:.75rem;font-weight:600;color:var(--color-accent);transition:all var(--duration-fast) var(--ease-main)}.proj-card-link:hover{gap:.6rem;filter:brightness(1.15)}.proj-card-link svg{transition:transform var(--duration-fast) var(--ease-main)}.proj-card-link:hover svg{transform:translate(3px)}@keyframes projCardFadeIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.page-watermark{position:absolute;bottom:6%;right:2%;transform:rotate(-8deg);font-family:var(--font-display),"Dancing Script",cursive;font-size:clamp(140px,16vw,240px);font-weight:700;color:#8b5cf60a;pointer-events:none;z-index:1;white-space:nowrap;user-select:none;animation:projWatermarkFloat 12s ease-in-out infinite;line-height:1}@keyframes projWatermarkFloat{0%,to{transform:rotate(-8deg) translate(0)}33%{transform:rotate(-6deg) translate(-10px,5px)}66%{transform:rotate(-9deg) translate(7px,-3px)}}.p-deco-tri,.p-deco-hex,.p-deco-cross,.p-deco-combo{position:absolute;pointer-events:none;opacity:0;animation:pDecoFadeIn 2.5s ease-out forwards}@keyframes pDecoFadeIn{to{opacity:1}}.p-deco-tri--1{width:0;height:0;border-left:13px solid transparent;border-right:13px solid transparent;border-bottom:22px solid rgba(139,92,246,.09);top:25%;right:16%;filter:drop-shadow(0 0 4px rgba(139,92,246,.05));animation-delay:1s;animation:pTriPulse 8s ease-in-out infinite,pDecoFadeIn 2.5s ease-out forwards}@keyframes pTriPulse{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.15) rotate(4deg);opacity:.85}}.p-deco-hex--1{width:26px;height:15px;background:transparent;border:1px solid rgba(0,136,255,.08);clip-path:polygon(25% 0%,75% 0%,100% 50%,75% 100%,25% 100%,0% 50%);bottom:38%;left:11%;animation-delay:1.4s;animation:pHexSpin 28s linear infinite,pDecoFadeIn 2.8s ease-out forwards}@keyframes pHexSpin{to{transform:rotate(360deg)}}.p-deco-cross--1{width:15px;height:15px;top:58%;right:16%;animation-delay:.9s;animation:pCrossRotate 22s linear infinite,pDecoFadeIn 2.2s ease-out forwards}.p-deco-cross--1:before,.p-deco-cross--1:after{content:"";position:absolute;background:#ff008017}.p-deco-cross--1:before{width:1px;height:15px;left:7px;top:0}.p-deco-cross--1:after{width:15px;height:1px;left:0;top:7px}@keyframes pCrossRotate{to{transform:rotate(90deg)}}.p-deco-combo--1{width:34px;height:34px;top:40%;left:64%;border:1px solid rgba(139,92,246,.06);border-radius:50%;animation-delay:1.8s;animation:pComboBreath 11s ease-in-out infinite,pDecoFadeIn 3s ease-out forwards}.p-deco-combo--1:before{content:"";position:absolute;inset:10px;border:1px solid rgba(139,92,246,.04);border-radius:50%}.p-deco-combo--1:after{content:"";position:absolute;width:1px;height:9px;background:#8b5cf612;left:16.5px;top:12.5px;box-shadow:0 9px #8b5cf612,9px 0 #8b5cf612,-9px 0 #8b5cf612}@keyframes pComboBreath{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.04);opacity:1}}
