@charset "UTF-8";@font-face{font-family:"Noto Color Emoji";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-color-emoji-0-400-normal-tbXEaEG7.woff2) format("woff2"),url(/assets/noto-color-emoji-0-400-normal-5aPNcibp.woff) format("woff");unicode-range:U+1f1e6-1f1ff}@font-face{font-family:"Noto Color Emoji";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-color-emoji-1-400-normal-DPwJRBUT.woff2) format("woff2"),url(/assets/noto-color-emoji-1-400-normal-CFbKscMj.woff) format("woff");unicode-range:U+200d,U+2620,U+26a7,U+fe0f,U+1f308,U+1f38c,U+1f3c1,U+1f3f3-1f3f4,U+1f6a9,U+e0062-e0063,U+e0065,U+e0067,U+e006c,U+e006e,U+e0073-e0074,U+e0077,U+e007f}@font-face{font-family:"Noto Color Emoji";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-color-emoji-2-400-normal-DvwkPMI6.woff2) format("woff2"),url(/assets/noto-color-emoji-2-400-normal-BzKWahE8.woff) format("woff");unicode-range:U+23,U+2a,U+30-39,U+a9,U+ae,U+200d,U+203c,U+2049,U+20e3,U+2122,U+2139,U+2194-2199,U+21a9-21aa,U+23cf,U+23e9-23ef,U+23f8-23fa,U+24c2,U+25aa-25ab,U+25b6,U+25c0,U+25fb-25fe,U+2611,U+2622-2623,U+2626,U+262a,U+262e-262f,U+2638,U+2640,U+2642,U+2648-2653,U+2660,U+2663,U+2665-2666,U+2668,U+267b,U+267e-267f,U+2695,U+269b-269c,U+26a0,U+26a7,U+26aa-26ab,U+26ce,U+26d4,U+2705,U+2714,U+2716,U+271d,U+2721,U+2733-2734,U+2747,U+274c,U+274e,U+2753-2755,U+2757,U+2764,U+2795-2797,U+27a1,U+27b0,U+27bf,U+2934-2935,U+2b05-2b07,U+2b1b-2b1c,U+2b55,U+3030,U+303d,U+3297,U+3299,U+fe0f,U+1f170-1f171,U+1f17e-1f17f,U+1f18e,U+1f191-1f19a,U+1f201-1f202,U+1f21a,U+1f22f,U+1f232-1f23a,U+1f250-1f251,U+1f310,U+1f3a6,U+1f3b5-1f3b6,U+1f3bc,U+1f3e7,U+1f441,U+1f499-1f49c,U+1f49f-1f4a0,U+1f4ac-1f4ad,U+1f4b1-1f4b2,U+1f4b9,U+1f4db,U+1f4f2-1f4f6,U+1f500-1f507,U+1f515,U+1f518-1f524,U+1f52f-1f53d,U+1f549,U+1f54e,U+1f5a4,U+1f5e8,U+1f5ef,U+1f6ab,U+1f6ad-1f6b1,U+1f6b3,U+1f6b7-1f6bc,U+1f6be,U+1f6c2-1f6c5,U+1f6d0-1f6d1,U+1f6d7,U+1f6dc,U+1f7e0-1f7eb,U+1f7f0,U+1f90d-1f90e,U+1f9d1-1f9d2,U+1f9e1,U+1fa75-1fa77,U+1faaf}@font-face{font-family:"Noto Color Emoji";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-color-emoji-3-400-normal-BWhiraWo.woff2) format("woff2"),url(/assets/noto-color-emoji-3-400-normal-CNpuOb5M.woff) format("woff");unicode-range:U+200d,U+231a-231b,U+2328,U+23f0-23f3,U+2602,U+260e,U+2692,U+2694,U+2696-2697,U+2699,U+26b0-26b1,U+26cf,U+26d1,U+26d3,U+2702,U+2709,U+270f,U+2712,U+fe0f,U+1f302,U+1f321,U+1f392-1f393,U+1f3a9,U+1f3bd,U+1f3ee,U+1f3f7,U+1f3fa,U+1f451-1f462,U+1f484,U+1f489-1f48a,U+1f48c-1f48e,U+1f4a1,U+1f4a3,U+1f4a5,U+1f4b0,U+1f4b3-1f4b8,U+1f4bb-1f4da,U+1f4dc-1f4f1,U+1f4ff,U+1f508-1f514,U+1f516-1f517,U+1f526-1f529,U+1f52c-1f52e,U+1f550-1f567,U+1f56f-1f570,U+1f576,U+1f587,U+1f58a-1f58d,U+1f5a5,U+1f5a8,U+1f5b1-1f5b2,U+1f5c2-1f5c4,U+1f5d1-1f5d3,U+1f5dc-1f5de,U+1f5e1,U+1f5f3,U+1f6aa,U+1f6ac,U+1f6bd,U+1f6bf,U+1f6c1,U+1f6cb,U+1f6cd-1f6cf,U+1f6d2,U+1f6e0-1f6e1,U+1f6f0,U+1f97b-1f97f,U+1f9af,U+1f9ba,U+1f9e2-1f9e6,U+1f9ea-1f9ec,U+1f9ee-1f9f4,U+1f9f7-1f9ff,U+1fa71-1fa74,U+1fa79-1fa7b,U+1fa86,U+1fa8e-1fa8f,U+1fa91-1fa93,U+1fa96,U+1fa99-1faa0,U+1faa2-1faa7,U+1faaa-1faae}@font-face{font-family:"Noto Color Emoji";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-color-emoji-4-400-normal-D5xvrXFD.woff2) format("woff2"),url(/assets/noto-color-emoji-4-400-normal-D1xLHzFe.woff) format("woff");unicode-range:U+265f,U+26bd-26be,U+26f3,U+26f8,U+fe0f,U+1f004,U+1f0cf,U+1f380-1f384,U+1f386-1f38b,U+1f38d-1f391,U+1f396-1f397,U+1f399-1f39b,U+1f39e-1f39f,U+1f3a3-1f3a5,U+1f3a7-1f3a9,U+1f3ab-1f3b4,U+1f3b7-1f3bb,U+1f3bd-1f3c0,U+1f3c5-1f3c6,U+1f3c8-1f3c9,U+1f3cf-1f3d3,U+1f3f8-1f3f9,U+1f47e,U+1f4e2,U+1f4f7-1f4fd,U+1f52b,U+1f579,U+1f58c-1f58d,U+1f5bc,U+1f6f7,U+1f6f9,U+1f6fc,U+1f93f,U+1f941,U+1f945,U+1f947-1f94f,U+1f9e7-1f9e9,U+1f9f5-1f9f6,U+1fa70-1fa71,U+1fa80-1fa81,U+1fa83-1fa85,U+1fa87-1fa8a,U+1fa94-1fa95,U+1fa97-1fa98,U+1faa1,U+1faa9,U+1fadf}@font-face{font-family:"Noto Color Emoji";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-color-emoji-5-400-normal-DUH4Uty8.woff2) format("woff2"),url(/assets/noto-color-emoji-5-400-normal-D85AwhWP.woff) format("woff");unicode-range:U+2693,U+26e9-26ea,U+26f1-26f2,U+26f4-26f5,U+26fa,U+26fd,U+2708,U+fe0f,U+1f301,U+1f303,U+1f306-1f307,U+1f309,U+1f310,U+1f3a0-1f3a2,U+1f3aa,U+1f3cd-1f3ce,U+1f3d5,U+1f3d7-1f3db,U+1f3df-1f3e6,U+1f3e8-1f3ed,U+1f3ef-1f3f0,U+1f488,U+1f492,U+1f4ba,U+1f54b-1f54d,U+1f5fa-1f5ff,U+1f680-1f6a2,U+1f6a4-1f6a8,U+1f6b2,U+1f6d1,U+1f6d5-1f6d6,U+1f6dd-1f6df,U+1f6e2-1f6e5,U+1f6e9,U+1f6eb-1f6ec,U+1f6f3-1f6f6,U+1f6f8,U+1f6fa-1f6fb,U+1f9bc-1f9bd,U+1f9ed,U+1f9f3,U+1fa7c}@font-face{font-family:"Noto Color Emoji";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-color-emoji-6-400-normal-Ct8APc17.woff2) format("woff2"),url(/assets/noto-color-emoji-6-400-normal-Cd02m80r.woff) format("woff");unicode-range:U+200d,U+2615,U+fe0f,U+1f32d-1f330,U+1f336,U+1f33d,U+1f344-1f37f,U+1f382,U+1f52a,U+1f7e9,U+1f7eb,U+1f942-1f944,U+1f950-1f96f,U+1f99e,U+1f9aa,U+1f9c0-1f9cb,U+1fad0-1fadc}@font-face{font-family:"Noto Color Emoji";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-color-emoji-7-400-normal-b5Sk21m2.woff2) format("woff2"),url(/assets/noto-color-emoji-7-400-normal-CqXRJ-vN.woff) format("woff");unicode-range:U+200d,U+2600-2601,U+2603-2604,U+2614,U+2618,U+26a1,U+26c4-26c5,U+26c8,U+26f0,U+2728,U+2744,U+2b1b,U+2b50,U+fe0f,U+1f300,U+1f304-1f305,U+1f308,U+1f30a-1f30f,U+1f311-1f321,U+1f324-1f32c,U+1f331-1f335,U+1f337-1f33c,U+1f33e-1f344,U+1f3d4,U+1f3d6,U+1f3dc-1f3de,U+1f3f5,U+1f400-1f43f,U+1f490,U+1f4a7,U+1f4ae,U+1f525,U+1f54a,U+1f573,U+1f577-1f578,U+1f648-1f64a,U+1f6d8,U+1f940,U+1f980-1f9ae,U+1f9ba,U+1fa90,U+1faa8,U+1fab0-1fabf,U+1facd-1facf,U+1fae7}@font-face{font-family:"Noto Color Emoji";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-color-emoji-8-400-normal-D4dsBzUI.woff2) format("woff2"),url(/assets/noto-color-emoji-8-400-normal-BG9Fi5DC.woff) format("woff");unicode-range:U+200d,U+2640,U+2642,U+2695-2696,U+26f7,U+26f9,U+2708,U+2764,U+27a1,U+fe0f,U+1f33e,U+1f373,U+1f37c,U+1f384-1f385,U+1f393,U+1f3a4,U+1f3a8,U+1f3c2-1f3c4,U+1f3c7,U+1f3ca-1f3cc,U+1f3eb,U+1f3ed,U+1f3fb-1f3ff,U+1f430,U+1f466-1f469,U+1f46b-1f478,U+1f47c,U+1f481-1f483,U+1f486-1f487,U+1f48b,U+1f48f,U+1f491,U+1f4bb-1f4bc,U+1f527,U+1f52c,U+1f574-1f575,U+1f57a,U+1f645-1f647,U+1f64b,U+1f64d-1f64e,U+1f680,U+1f692,U+1f6a3,U+1f6b4-1f6b6,U+1f6c0,U+1f6cc,U+1f91d,U+1f926,U+1f930-1f931,U+1f934-1f93a,U+1f93c-1f93e,U+1f977,U+1f9af-1f9b3,U+1f9b8-1f9b9,U+1f9bc-1f9bd,U+1f9cc-1f9cf,U+1f9d1-1f9df,U+1fa70,U+1fa82,U+1fac3-1fac5,U+1fac8,U+1faef}@font-face{font-family:"Noto Color Emoji";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-color-emoji-9-400-normal-cxWfJXDF.woff2) format("woff2"),url(/assets/noto-color-emoji-9-400-normal-DftGkmnu.woff) format("woff");unicode-range:U+200d,U+2194-2195,U+2603,U+261d,U+2620,U+2639-263a,U+2665,U+26a1,U+26c4,U+270a-270d,U+2728,U+2763-2764,U+2b50,U+fe0f,U+1f31a-1f31f,U+1f32b,U+1f389-1f38a,U+1f3fb-1f3ff,U+1f440-1f450,U+1f463-1f465,U+1f479-1f47b,U+1f47d-1f480,U+1f485,U+1f48b-1f48c,U+1f493-1f49f,U+1f4a2,U+1f4a4-1f4a6,U+1f4a8-1f4ab,U+1f4af,U+1f525,U+1f573,U+1f590,U+1f595-1f596,U+1f5a4,U+1f5e3,U+1f600-1f644,U+1f648-1f64a,U+1f64c,U+1f64f,U+1f90c-1f925,U+1f927-1f92f,U+1f932-1f933,U+1f970-1f976,U+1f978-1f97a,U+1f9a0,U+1f9b4-1f9b7,U+1f9bb,U+1f9be-1f9bf,U+1f9d0,U+1f9e0-1f9e1,U+1fa75-1fa79,U+1fac0-1fac2,U+1fac6,U+1fae0-1fae6,U+1fae8-1faea,U+1faef-1faf8}img.dev-avatar{--s: 200px;--b: 4px;--c: #2980b9;width:var(--s);height:var(--s);object-fit:cover;border-radius:50%;border:var(--b) solid var(--c);box-shadow:0 0 20px rgba(41,128,185,.3);cursor:pointer;transition:transform .5s ease,box-shadow .5s ease}img.dev-avatar:hover{transform:scale(1.1);box-shadow:0 0 30px rgba(41,128,185,.5)}.main-portfolio-page{transition:color .5s ease;--section-bg-1: #1e6a9e;--section-bg-2: #1a5c8a;--section-bg-3: #164e75;--section-bg-4: #d6eaf8;--section-bg-5: #1e6a9e;--section-bg-6: #3498db;--text-on-dark: #eaf4fc;--text-on-light: #1a5276;--header-bg: linear-gradient(135deg, #164e75 0%, #1e6a9e 100%);--footer-bg: linear-gradient(135deg, #164e75 0%, #1e6a9e 100%);--glass-bg: rgba(214, 234, 248, .12);--glass-border: rgba(214, 234, 248, .22);--indicator-dot: rgba(214, 234, 248, .3);--indicator-dot-border: rgba(214, 234, 248, .5);--indicator-active: #3498db;--tag-text: #d6eaf8;--tag-bg: rgba(41, 128, 185, .15);--tag-border: rgba(41, 128, 185, .25);--link-text: #d6eaf8}[data-theme=light] .main-portfolio-page{--section-bg-1: #f0f7fc;--section-bg-2: #e8f4f8;--section-bg-3: #ffffff;--section-bg-4: #1a5276;--section-bg-5: #f0f7fc;--section-bg-6: #e0eef8;--text-on-dark: #1a5276;--text-on-light: #d6eaf8;--header-bg: linear-gradient(135deg, #ffffff 0%, #e8f4f8 100%);--footer-bg: linear-gradient(135deg, #ffffff 0%, #e8f4f8 100%);--glass-bg: rgba(26, 82, 118, .08);--glass-border: rgba(26, 82, 118, .15);--indicator-dot: rgba(26, 82, 118, .2);--indicator-dot-border: rgba(26, 82, 118, .4);--indicator-active: #2980b9;--tag-text: #1a5276;--tag-bg: rgba(41, 128, 185, .12);--tag-border: rgba(41, 128, 185, .25);--link-text: #1a5276}.main-portfolio-page .header{background:var(--header-bg)!important;background-color:transparent!important;display:flex;align-items:center;justify-content:space-between;position:fixed;top:0;left:0;right:0;z-index:1000;backdrop-filter:blur(16px);color:var(--text-on-dark);border-bottom:2px solid transparent;border-image:linear-gradient(135deg,#2980b9,#5dade2) 1;box-shadow:0 4px 20px rgba(26,82,118,.3);transition:background .5s ease,color .5s ease,box-shadow .5s ease}.main-portfolio-page .header .ant-btn-link,.main-portfolio-page .header .ant-btn-text,.main-portfolio-page .header a{color:var(--text-on-dark)!important}.main-portfolio-page .header .ant-btn-default{color:var(--text-on-dark)!important;border-color:rgba(214,234,248,.4)!important;background:rgba(214,234,248,.1)!important}.main-portfolio-page .header .ant-btn-default:hover{border-color:rgba(214,234,248,.6)!important;background:rgba(214,234,248,.2)!important}[data-theme=light] .main-portfolio-page .header{color:#1a5276;border-image:linear-gradient(135deg,#2980b9,#5dade2) 1;box-shadow:0 4px 20px rgba(0,0,0,.08)}[data-theme=light] .main-portfolio-page .header .ant-btn-link,[data-theme=light] .main-portfolio-page .header .ant-btn-text,[data-theme=light] .main-portfolio-page .header a{color:#1a5276!important}[data-theme=light] .main-portfolio-page .header .ant-btn-default{color:#1a5276!important;border-color:rgba(26,82,118,.3)!important;background:rgba(26,82,118,.06)!important}[data-theme=light] .main-portfolio-page .header .ant-btn-default:hover{border-color:rgba(26,82,118,.5)!important;background:rgba(26,82,118,.1)!important}.main-portfolio-page .content{padding:0;margin-top:64px;position:relative;overflow-x:hidden;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.main-portfolio-page .portfolio-section{min-height:auto;display:flex;align-items:center;justify-content:center;padding:80px 20px;position:relative;box-sizing:border-box;transition:background-color .5s ease,color .5s ease}.main-portfolio-page .portfolio-section[data-section=about]{background-color:var(--section-bg-1);color:var(--text-on-dark)}.main-portfolio-page .portfolio-section[data-section=experience]{background-color:var(--section-bg-2);color:var(--text-on-dark)}.main-portfolio-page .portfolio-section[data-section=projects]{background-color:var(--section-bg-3);color:var(--text-on-dark)}.main-portfolio-page .portfolio-section[data-section=skills]{background-color:var(--section-bg-4);color:var(--text-on-light)}.main-portfolio-page .portfolio-section[data-section=education]{background-color:var(--section-bg-5);color:var(--text-on-dark)}.main-portfolio-page .portfolio-section[data-section=contact]{background-color:var(--section-bg-6);color:var(--text-on-dark)}.main-portfolio-page .section-inner{max-width:1200px;width:100%;margin:0 auto;position:relative;z-index:1}.main-portfolio-page .network-mesh{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.main-portfolio-page .glass-card{background:var(--glass-bg)!important;backdrop-filter:blur(12px)!important;border:1px solid var(--glass-border)!important;box-shadow:0 4px 16px rgba(0,0,0,.1);transition:background .5s ease,border-color .5s ease}.main-portfolio-page .glow-text{display:inline-block}.main-portfolio-page .about-me-content{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1rem}.main-portfolio-page .about-me-content .about-me-avatar-wrapper{margin-bottom:1rem}.main-portfolio-page .about-me-content h2{font-size:1.5rem;margin-bottom:.3rem}.main-portfolio-page .about-me-content p{max-width:600px;line-height:1.6;font-size:.85rem}.main-portfolio-page .section-title{font-size:2.5rem;font-weight:700;margin-bottom:1.25rem;text-align:center;background:linear-gradient(135deg,#85c1e9,#d4effc);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;transition:background .5s ease}[data-theme=light] .main-portfolio-page .section-title{background:linear-gradient(135deg,#1a5276,#2980b9);-webkit-background-clip:text;background-clip:text}.main-portfolio-page .portfolio-section[data-section=skills] .section-title{background:linear-gradient(135deg,#1a5276,#154360);-webkit-background-clip:text;background-clip:text}[data-theme=light] .main-portfolio-page .portfolio-section[data-section=skills] .section-title{background:linear-gradient(135deg,#d6eaf8,#fff);-webkit-background-clip:text;background-clip:text}.main-portfolio-page .section-content{font-size:1rem;line-height:1.6}.main-portfolio-page .section-content h2{font-size:1.5rem;margin-bottom:1rem}.main-portfolio-page .section-content p{margin-bottom:.75rem;opacity:.9}.main-portfolio-page .skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;margin-top:2rem}.main-portfolio-page .skill-card{background:rgba(214,234,248,.3);backdrop-filter:blur(10px);border-radius:16px;padding:2rem;border:1px solid rgba(26,82,118,.2);transition:all .3s ease}.main-portfolio-page .skill-card:hover{background:rgba(93,173,226,.4);border-color:#2980b9;transform:translateY(-4px);box-shadow:0 8px 24px rgba(41,128,185,.3)}.main-portfolio-page .skill-card h3{font-size:1.5rem;margin-bottom:1rem;color:#2980b9}.main-portfolio-page .skill-card ul{list-style:none;padding:0;margin:0}.main-portfolio-page .skill-card ul li{padding:.5rem 0;border-bottom:1px solid rgba(26,82,118,.2)}.main-portfolio-page .skill-card ul li:last-child{border-bottom:none}.main-portfolio-page .skill-card ul li:before{content:"▹ ";color:#2980b9;font-weight:700}.main-portfolio-page .skills-split{display:flex;flex-direction:column;gap:2.5rem;max-width:900px;margin:0 auto}.main-portfolio-page .skills-subtitle{font-size:1.1rem;font-weight:700;color:#1a5276;margin-bottom:1rem;text-align:center;letter-spacing:.03em}.main-portfolio-page .skills-subtitle.secondary{font-size:.95rem;opacity:.8}.main-portfolio-page .main-stack-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem}.main-portfolio-page .main-stack-item{display:flex;align-items:center;gap:.6rem;padding:.65rem 1.2rem;background:rgba(26,82,118,.1);border:1px solid rgba(41,128,185,.2);border-radius:12px;cursor:default;transition:box-shadow .3s ease}.main-portfolio-page .main-stack-item .main-stack-icon{width:28px;height:28px;flex-shrink:0}.main-portfolio-page .main-stack-item .main-stack-name{font-size:.95rem;font-weight:600;color:#1a5276}.main-portfolio-page .secondary-categories{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.main-portfolio-page .secondary-category{display:flex;flex-direction:column;gap:.35rem}.main-portfolio-page .secondary-category-label{font-size:.65rem;font-weight:700;color:#1a5276;opacity:.55;text-transform:uppercase;letter-spacing:.05em}.main-portfolio-page .secondary-chips{display:flex;flex-wrap:wrap;gap:.35rem}.main-portfolio-page .secondary-skill-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .55rem;background:rgba(26,82,118,.06);border:1px solid rgba(41,128,185,.12);border-radius:8px;font-size:.68rem;font-weight:500;color:#1a5276;cursor:default}.main-portfolio-page .secondary-skill-chip .secondary-skill-icon{width:14px;height:14px;flex-shrink:0}.main-portfolio-page .portfolio-section[data-section=skills] .skills-subtitle,.main-portfolio-page .portfolio-section[data-section=skills] .skills-subtitle.secondary{color:#1a5276}[data-theme=light] .main-portfolio-page .portfolio-section[data-section=skills] .main-stack-item{background:rgba(214,234,248,.15);border-color:rgba(214,234,248,.25)}[data-theme=light] .main-portfolio-page .portfolio-section[data-section=skills] .main-stack-item .main-stack-name{color:#d6eaf8}[data-theme=light] .main-portfolio-page .portfolio-section[data-section=skills] .secondary-skill-chip{background:rgba(214,234,248,.1);border-color:rgba(214,234,248,.2);color:#d6eaf8}[data-theme=light] .main-portfolio-page .portfolio-section[data-section=skills] .skills-subtitle,[data-theme=light] .main-portfolio-page .portfolio-section[data-section=skills] .skills-subtitle.secondary,[data-theme=light] .main-portfolio-page .portfolio-section[data-section=skills] .secondary-category-label{color:#d6eaf8}.main-portfolio-page .contact-content{text-align:center}.main-portfolio-page .contact-content .contact-info{display:flex;flex-direction:column;gap:1.5rem;margin:2rem 0;max-width:600px;margin-left:auto;margin-right:auto}.main-portfolio-page .contact-content .contact-item{display:flex;align-items:center;gap:.75rem;padding:1rem;border-radius:10px;transition:all .3s ease;text-align:left}.main-portfolio-page .contact-content .contact-item:hover{transform:translate(6px)}.main-portfolio-page .contact-content .contact-item .contact-icon{font-size:1.5rem}.main-portfolio-page .contact-content .contact-item strong{color:var(--text-on-dark);margin-right:.3rem;font-size:.85rem;opacity:.8}.main-portfolio-page .contact-content .contact-item span{color:inherit;font-size:.85rem}.main-portfolio-page .contact-content .contact-cta{margin-top:1.25rem;font-size:1rem;font-style:italic;opacity:.8}.main-portfolio-page .section-indicator{position:fixed;right:2rem;top:50%;transform:translateY(-50%);z-index:1000;display:flex;flex-direction:column;gap:1rem}.main-portfolio-page .section-indicator .indicator-dot{width:12px;height:12px;border-radius:50%;background-color:var(--indicator-dot);border:2px solid var(--indicator-dot-border);cursor:pointer;transition:all .3s ease,background-color .5s ease,border-color .5s ease;position:relative;padding:0}.main-portfolio-page .section-indicator .indicator-dot:hover{background-color:rgba(214,234,248,.6);border-color:rgba(214,234,248,.8)}.main-portfolio-page .section-indicator .indicator-dot:hover .indicator-tooltip{opacity:1;visibility:visible;transform:translate(-10px)}.main-portfolio-page .section-indicator .indicator-dot.active{background-color:var(--indicator-active);border-color:var(--indicator-active);width:14px;height:14px;box-shadow:0 0 10px rgba(41,128,185,.6)}.main-portfolio-page .section-indicator .indicator-dot .indicator-tooltip{position:absolute;right:100%;top:50%;transform:translateY(-50%);margin-right:1rem;padding:.5rem 1rem;background-color:rgba(26,82,118,.9);backdrop-filter:blur(10px);color:#fff;border-radius:8px;white-space:nowrap;font-size:.875rem;opacity:0;visibility:hidden;transition:all .3s ease;pointer-events:none;border:1px solid rgba(214,234,248,.5)}.main-portfolio-page .portfolio-footer{position:relative;text-align:left;padding:12px 48px;background:var(--footer-bg);backdrop-filter:blur(16px);color:var(--text-on-dark);border-top:2px solid transparent;border-image:linear-gradient(135deg,#2980b9,#5dade2) 1;font-size:.9rem;box-shadow:0 -4px 20px rgba(26,82,118,.3);transition:background .5s ease,color .5s ease,box-shadow .5s ease}[data-theme=light] .main-portfolio-page .portfolio-footer{color:#1a5276;box-shadow:0 -4px 20px rgba(0,0,0,.05)}@media(max-width:768px){.main-portfolio-page .header{padding:8px 12px}.main-portfolio-page .header .ant-row{flex-wrap:nowrap}.main-portfolio-page .header .ant-col{flex-shrink:1;min-width:0}.main-portfolio-page .content{padding:0;margin-top:56px}.main-portfolio-page .portfolio-section{padding:40px 16px;min-height:auto}.main-portfolio-page .section-title{font-size:1.8rem;margin-bottom:.75rem}.main-portfolio-page .section-content{font-size:.85rem}.main-portfolio-page .section-content h2{font-size:1.2rem}.main-portfolio-page .about-me-content{gap:.5rem}.main-portfolio-page .about-me-content .about-me-avatar-wrapper{margin-bottom:.5rem}.main-portfolio-page .about-me-content h2{font-size:1.2rem}.main-portfolio-page .about-me-content p{font-size:.78rem;line-height:1.5}.main-portfolio-page .skills-grid{grid-template-columns:1fr;gap:1rem}.main-portfolio-page .secondary-categories{grid-template-columns:1fr}.main-portfolio-page .section-indicator{right:.5rem;gap:.4rem}.main-portfolio-page .section-indicator .indicator-dot{width:7px;height:7px}.main-portfolio-page .section-indicator .indicator-dot.active{width:9px;height:9px}.main-portfolio-page .section-indicator .indicator-dot .indicator-tooltip{display:none}.main-portfolio-page .contact-content .contact-info{gap:.75rem;margin:1rem 0}.main-portfolio-page .contact-content .contact-item{padding:.6rem .75rem;gap:.5rem}.main-portfolio-page .contact-content .contact-item .contact-icon{font-size:1.2rem}.main-portfolio-page .contact-content .contact-item strong,.main-portfolio-page .contact-content .contact-item span{font-size:.75rem}.main-portfolio-page .contact-content .contact-cta{font-size:.85rem;margin-top:.75rem}.main-portfolio-page .portfolio-footer{padding:8px 16px;font-size:.75rem}}.experience-content{display:flex;justify-content:center;width:100%}.experience-content .vtl-timeline{position:relative;width:100%;max-width:800px;padding:1rem 0}.experience-content .vtl-line{position:absolute;left:50%;top:0;bottom:0;width:3px;margin-left:-1.5px;background:linear-gradient(180deg,rgba(41,128,185,.1),#2980b9,rgba(41,128,185,.1));transform-origin:top;border-radius:2px;z-index:0}.experience-content .vtl-item{position:relative;display:flex;align-items:center;width:100%;margin-bottom:2rem}.experience-content .vtl-item:last-child{margin-bottom:0}.experience-content .vtl-left{justify-content:flex-start}.experience-content .vtl-left .vtl-card{margin-right:auto;margin-left:0;width:calc(50% - 30px)}.experience-content .vtl-left .vtl-node{left:50%;margin-left:-8px}.experience-content .vtl-left .vtl-connector{left:calc(50% - 22px);width:22px;transform-origin:right}.experience-content .vtl-right{justify-content:flex-end}.experience-content .vtl-right .vtl-card{margin-left:auto;margin-right:0;width:calc(50% - 30px)}.experience-content .vtl-right .vtl-node{left:50%;margin-left:-8px}.experience-content .vtl-right .vtl-connector{left:calc(50% + 1px);width:22px;transform-origin:left}.experience-content .vtl-node{position:absolute;top:50%;width:16px;height:16px;margin-top:-8px;border-radius:50%;background:#2980b9;border:3px solid rgba(214,234,248,.7);box-shadow:0 0 10px rgba(41,128,185,.4);z-index:3}.experience-content .vtl-node .vtl-node-pulse{position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;border-radius:50%;background:rgba(41,128,185,.25);pointer-events:none}.experience-content .vtl-connector{position:absolute;top:50%;height:2px;margin-top:-1px;background:#2980b9;z-index:1}.experience-content .vtl-card{position:relative;padding:.8rem 1rem;border-radius:12px;cursor:default;z-index:2}.experience-content .vtl-period{display:inline-block;font-size:.6rem;font-weight:700;color:var(--text-on-dark);background:rgba(41,128,185,.15);padding:.1rem .5rem;border-radius:10px;margin-bottom:.25rem}.experience-content .vtl-role{font-size:.85rem;font-weight:700;color:var(--text-on-dark);margin:0 0 .1rem}.experience-content .vtl-company{font-size:.72rem;font-weight:500;opacity:.8;margin:0 0 .25rem}.experience-content .vtl-description{font-size:.68rem;line-height:1.5;opacity:.85;margin-bottom:.35rem}.experience-content .vtl-tech{display:flex;flex-wrap:wrap;gap:.2rem}.experience-content .tech-tag{display:inline-block;padding:.1rem .4rem;font-size:.52rem;font-weight:600;border-radius:12px;background:var(--tag-bg);border:1px solid var(--tag-border);color:var(--tag-text);cursor:default}@media(max-width:768px){.experience-content .vtl-line{left:16px;margin-left:0}.experience-content .vtl-item{margin-bottom:1.5rem}.experience-content .vtl-left,.experience-content .vtl-right{justify-content:flex-end}.experience-content .vtl-left .vtl-card,.experience-content .vtl-right .vtl-card{width:calc(100% - 50px);margin-left:auto;margin-right:0}.experience-content .vtl-left .vtl-node,.experience-content .vtl-right .vtl-node{left:16px;margin-left:-8px}.experience-content .vtl-left .vtl-connector,.experience-content .vtl-right .vtl-connector{left:16px;width:20px;transform-origin:left}.experience-content .vtl-card{padding:.6rem .8rem}.experience-content .vtl-period{font-size:.52rem}.experience-content .vtl-role{font-size:.75rem}.experience-content .vtl-company{font-size:.65rem}.experience-content .vtl-description{font-size:.6rem}.experience-content .tech-tag{font-size:.48rem;padding:.08rem .35rem}.experience-content .vtl-node{width:12px;height:12px;margin-top:-6px;margin-left:-6px}}.education-content{display:flex;flex-direction:column;align-items:center;gap:1rem;max-width:700px;margin:0 auto}.education-content .edu-card{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;border-radius:12px;width:100%;cursor:default}.education-content .edu-card .edu-icon{font-size:2.2rem;flex-shrink:0}.education-content .edu-card .edu-info h3{font-size:1rem;font-weight:700;color:var(--text-on-dark);margin:0 0 .15rem}.education-content .edu-card .edu-info .edu-school{font-size:.8rem;opacity:.85;margin:0 0 .3rem}.education-content .edu-card .edu-info .edu-meta{display:flex;gap:.75rem;font-size:.75rem;opacity:.7}.education-content .edu-card .edu-info .edu-meta .edu-grade{padding:.1rem .5rem;background:rgba(41,128,185,.2);border-radius:10px;font-weight:600}.education-content .edu-certs{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.75rem;width:100%}.education-content .cert-card{display:flex;align-items:flex-start;gap:.75rem;padding:.85rem 1rem;border-radius:12px;cursor:default}.education-content .cert-card .cert-icon{font-size:1.5rem;flex-shrink:0}.education-content .cert-card .cert-info h4{font-size:.85rem;font-weight:700;color:var(--text-on-dark);margin:0 0 .15rem}.education-content .cert-card .cert-info p{font-size:.7rem;opacity:.75;margin:0 0 .3rem}.education-content .cert-card .cert-info .cert-tech{font-size:.65rem;padding:.1rem .4rem;background:rgba(41,128,185,.15);border-radius:8px;font-weight:500}.education-content .edu-languages{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}.education-content .lang-badge{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:30px;cursor:default}.education-content .lang-badge .lang-icon{font-size:1.2rem}.education-content .lang-badge .lang-name{font-weight:600;font-size:.8rem}.education-content .lang-badge .lang-level{font-size:.65rem;opacity:.7;padding:.1rem .4rem;background:rgba(41,128,185,.15);border-radius:8px}@media(max-width:768px){.education-content .edu-card{flex-direction:column;text-align:center}.education-content .edu-card .edu-meta{justify-content:center}.education-content .edu-certs{grid-template-columns:1fr}}.projects-section .projects-inner{max-width:950px;display:flex;flex-direction:column;align-items:center}.projects-section .projects-slideshow{position:relative;width:100%;min-height:280px;overflow:visible;padding:0 2.5rem}.projects-section .project-slide{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;align-items:center}.projects-section .project-screenshot{border-radius:12px;overflow:hidden;aspect-ratio:16/10;display:flex;align-items:center;justify-content:center}.projects-section .project-screenshot .project-img{width:100%;height:100%;object-fit:cover}.projects-section .project-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;width:100%;height:100%;min-height:160px;background:rgba(41,128,185,.08)}.projects-section .project-placeholder .placeholder-icon{font-size:3rem}.projects-section .project-placeholder .placeholder-text{font-size:.75rem;opacity:.5;font-style:italic}.projects-section .project-info{display:flex;flex-direction:column;gap:.5rem}.projects-section .project-header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.projects-section .project-name{font-size:1.15rem;font-weight:700;color:#2980b9;margin:0}.projects-section .project-type{font-size:.6rem;font-weight:600;padding:.15rem .5rem;border-radius:16px;background:rgba(41,128,185,.2);border:1px solid rgba(41,128,185,.3);text-transform:uppercase;letter-spacing:.06em}.projects-section .project-description{font-size:.78rem;line-height:1.6;opacity:.9;margin:0}.projects-section .project-highlights{display:flex;flex-direction:column;gap:.2rem}.projects-section .project-highlights .highlight-item{display:flex;align-items:flex-start;gap:.4rem;font-size:.7rem;line-height:1.5;opacity:.85}.projects-section .project-highlights .highlight-item .highlight-bullet{color:#2980b9;font-weight:700;flex-shrink:0;margin-top:.1em}.projects-section .project-tech-stack{display:flex;flex-wrap:wrap;gap:.2rem}.projects-section .project-tech-tag{display:inline-block;padding:.1rem .45rem;font-size:.58rem;font-weight:600;border-radius:12px;background:var(--tag-bg);border:1px solid var(--tag-border);color:var(--tag-text);cursor:default}.projects-section .project-links{display:flex;gap:.4rem;flex-wrap:wrap}.projects-section .project-links .project-link{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .75rem;border-radius:8px;font-size:.7rem;font-weight:600;color:var(--link-text);text-decoration:none;cursor:pointer}.projects-section .project-links .demo-btn{background:rgba(41,128,185,.25);border:1px solid rgba(41,128,185,.4);transition:all .3s}.projects-section .project-links .demo-btn.active{background:rgba(255,77,79,.2);border-color:rgba(255,77,79,.4);color:#ff6b6b}.projects-section .project-links .demo-btn:hover:not(.active){background:rgba(41,128,185,.4);box-shadow:0 0 12px rgba(41,128,185,.3)}.projects-section .project-demo-area{grid-column:1/-1}.projects-section .micro-app-container{border-radius:10px;overflow:hidden;border:1px solid rgba(41,128,185,.25);box-shadow:0 8px 32px rgba(0,0,0,.3)}.projects-section .micro-app-toolbar{display:flex;align-items:center;padding:.4rem .6rem;background:rgba(30,30,30,.95);border-bottom:1px solid rgba(214,234,248,.1);gap:.3rem}.projects-section .micro-app-toolbar .toolbar-left{display:flex;gap:.25rem}.projects-section .micro-app-toolbar .toolbar-dot{width:8px;height:8px;border-radius:50%}.projects-section .micro-app-toolbar .toolbar-dot.red{background:#ff5f57}.projects-section .micro-app-toolbar .toolbar-dot.yellow{background:#febc2e}.projects-section .micro-app-toolbar .toolbar-dot.green{background:#28c840}.projects-section .micro-app-toolbar .toolbar-title{flex:1;text-align:center;font-size:.58rem;opacity:.5;color:#d6eaf8;font-family:JetBrains Mono,monospace}.projects-section .micro-app-toolbar .toolbar-close{background:none;border:none;color:rgba(214,234,248,.5);cursor:pointer;font-size:.7rem;padding:.1rem .3rem;border-radius:4px;transition:all .2s}.projects-section .micro-app-toolbar .toolbar-close:hover{color:#ff5f57;background:rgba(255,95,87,.15)}.projects-section .micro-app-content{min-height:200px}.projects-section .micro-app-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2rem;color:#d6eaf8;font-size:.7rem;opacity:.6}.projects-section .micro-app-loading .loading-spinner{font-size:1.5rem}.projects-section .slide-arrow{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;background:rgba(214,234,248,.1);backdrop-filter:blur(8px);border:1px solid rgba(214,234,248,.2);color:var(--tag-text);font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10;transition:all .3s ease;padding:0;line-height:1}.projects-section .slide-arrow:hover:not(:disabled){background:rgba(41,128,185,.3);border-color:#2980b9}.projects-section .slide-arrow:disabled{opacity:.2;cursor:not-allowed}.projects-section .slide-arrow-left{left:0}.projects-section .slide-arrow-right{right:0}.projects-section .slide-dots{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1rem}.projects-section .slide-dot{width:8px;height:8px;border-radius:50%;background:rgba(214,234,248,.25);border:2px solid rgba(214,234,248,.4);cursor:pointer;padding:0;transition:all .3s}.projects-section .slide-dot.active{background:#2980b9;border-color:#2980b9;width:10px;height:10px}.projects-section .slide-counter{font-size:.65rem;opacity:.5;margin-left:.4rem}@media(max-width:768px){.projects-section .projects-inner{max-width:100%;padding:0}.projects-section .projects-slideshow{min-height:auto;padding:0 1.75rem}.projects-section .project-slide{grid-template-columns:1fr;gap:.6rem}.projects-section .project-screenshot{aspect-ratio:16/9;border-radius:8px}.projects-section .project-placeholder{min-height:100px}.projects-section .project-placeholder .placeholder-icon{font-size:1.8rem}.projects-section .project-placeholder .placeholder-text{font-size:.6rem}.projects-section .project-name{font-size:.9rem}.projects-section .project-type{font-size:.48rem;padding:.1rem .35rem}.projects-section .project-description{font-size:.68rem;line-height:1.5}.projects-section .project-highlights .highlight-item{font-size:.62rem}.projects-section .project-tech-stack{gap:.15rem}.projects-section .project-tech-tag{font-size:.5rem;padding:.06rem .3rem}.projects-section .project-links{gap:.3rem}.projects-section .project-links .project-link{font-size:.6rem;padding:.2rem .5rem}.projects-section .slide-arrow{width:26px;height:26px;font-size:1rem}.projects-section .slide-arrow-left{left:0}.projects-section .slide-arrow-right{right:0}.projects-section .slide-dots{margin-top:.5rem;gap:.35rem}.projects-section .slide-dot{width:6px;height:6px}.projects-section .slide-dot.active{width:8px;height:8px}.projects-section .micro-app-container{border-radius:8px}.projects-section .micro-app-toolbar{padding:.3rem .5rem}.projects-section .micro-app-toolbar .toolbar-title{font-size:.5rem}.projects-section .micro-app-toolbar .toolbar-dot{width:6px;height:6px}.projects-section .micro-app-content{min-height:160px}}.gold-page{min-height:100vh;padding:24px;background:linear-gradient(135deg,#1a5276,#2980b9,#5dade2);color:#fff;display:flex;flex-direction:column;align-items:center}.gold-page .gold-back-btn{align-self:flex-start;margin-bottom:16px;color:#fff!important;border-color:rgba(214,234,248,.4)!important;background:rgba(214,234,248,.1)!important}.gold-page .gold-back-btn:hover{border-color:rgba(214,234,248,.6)!important;background:rgba(214,234,248,.2)!important}.gold-page .gold-card{width:100%;max-width:1000px;background:rgba(214,234,248,.1)!important;backdrop-filter:blur(12px);border:1px solid rgba(214,234,248,.2)!important;border-radius:16px!important;box-shadow:0 8px 32px rgba(0,0,0,.2)}.gold-page .gold-card .ant-card-head{border-bottom:1px solid rgba(214,234,248,.15);color:#fff}.gold-page .gold-card .ant-card-head .ant-card-head-title{color:#fff;font-size:1.25rem;font-weight:600}.gold-page .gold-card .ant-card-body{padding:0}.gold-page .gold-card .ant-ribbon{background:linear-gradient(135deg,#2980b9,#5dade2)}.gold-page .gold-card .ant-table{background:transparent!important;border-radius:0 0 16px 16px}.gold-page .gold-card .ant-table .ant-table-thead>tr>th{background:rgba(26,82,118,.5)!important;color:#fff!important;border-bottom:1px solid rgba(214,234,248,.25)!important;border-inline-end:1px solid rgba(214,234,248,.2)!important;font-weight:600;font-size:.85rem}.gold-page .gold-card .ant-table .ant-table-tbody>tr>td{background:transparent!important;color:#fff!important;border-bottom:1px solid rgba(214,234,248,.15)!important;border-inline-end:1px solid rgba(214,234,248,.12)!important;font-size:.85rem}.gold-page .gold-card .ant-table .ant-table-tbody>tr:hover>td{background:rgba(214,234,248,.08)!important}.gold-page .gold-card .ant-table .ant-table-tbody>tr>td.ant-table-cell-fix-left,.gold-page .gold-card .ant-table .ant-table-tbody>tr>td.ant-table-cell-fix-right{background:#1a5276!important;z-index:2!important}.gold-page .gold-card .ant-table .ant-table-thead>tr>th.ant-table-cell-fix-left,.gold-page .gold-card .ant-table .ant-table-thead>tr>th.ant-table-cell-fix-right{background:#11354c!important}.gold-page .gold-card .ant-table .ant-table-tbody>tr:hover>td.ant-table-cell-fix-left,.gold-page .gold-card .ant-table .ant-table-tbody>tr:hover>td.ant-table-cell-fix-right{background:#287eb5!important}.gold-page .gold-card .ant-table .ant-table-container{border:1px solid rgba(214,234,248,.25)!important;border-radius:0 0 12px 12px;overflow:hidden}.gold-page .gold-card .ant-spin .ant-spin-dot-item{background-color:#d6eaf8!important}@media(max-width:768px){.gold-page{padding:12px}.gold-page .gold-card{border-radius:12px!important}.gold-page .gold-card .ant-card-head .ant-card-head-title{font-size:1rem}.gold-page .gold-card .ant-table .ant-table-thead>tr>th,.gold-page .gold-card .ant-table .ant-table-tbody>tr>td{font-size:.75rem;padding:8px 6px!important}}.express-basic-layout{height:100vh}.express-basic-layout.ant-layout .ant-layout-sider{background-color:#fff;color:#000}.express-basic-layout.ant-layout .ant-layout-sider .express-basic-layout-sider-header{padding:16px;border-bottom:1px solid #e0e0e0}.express-basic-layout.ant-layout .ant-layout-sider .express-basic-layout-sider-content{padding:16px}.express-basic-layout.ant-layout .ant-layout-sider .express-basic-layout-sider-content .express-basic-layout-sider-content-user-info{display:flex;flex-direction:column;margin-bottom:16px}.crm-layout .ant-menu-dark .ant-menu-sub,.crm-layout .ant-menu-dark .ant-menu-sub .ant-menu-item{background:transparent!important}.crm-layout .ant-menu-dark .ant-menu-sub .ant-menu-item:hover{background:rgba(255,255,255,.08)!important}.crm-layout .ant-menu-dark .ant-menu-sub .ant-menu-item-selected{background:var(--ant-color-primary)!important}.crm-layout .ant-card{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.crm-layout .ant-card:hover{transform:translateY(-2px)}[data-theme=dark] .crm-layout .ant-card:hover,.crm-layout[data-crm-dark=true] .ant-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.35),0 0 0 1px rgba(255,255,255,.1);border-color:rgba(255,255,255,.15)!important}.crm-layout[data-crm-dark=false] .ant-card:hover{box-shadow:0 8px 24px rgba(26,82,118,.12);border-color:rgba(52,152,219,.25)!important}.crm-layout .ant-statistic .ant-card:hover{transform:translateY(-3px)}.crm-layout .ant-card .ant-card:hover{transform:translateY(-2px)}.crm-layout .ant-card:has(>.ant-card-head):hover{transform:none}.portainer-hub-page{min-height:100vh;background:linear-gradient(180deg,#0a1628,#0f1f3a,#0a1628);color:#e8edf5}.portainer-hub-page .ph-header{position:sticky;top:0;z-index:10;border-bottom:1px solid rgba(255,255,255,.06);background:rgba(10,22,40,.85);backdrop-filter:blur(16px)}.portainer-hub-page .ph-header .ph-header-inner{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;max-width:1400px;margin:0 auto}.portainer-hub-page .ph-logo{display:flex;align-items:center;gap:12px}.portainer-hub-page .ph-logo-icon{width:40px;height:40px;border-radius:12px;background:rgba(22,119,255,.15);display:flex;align-items:center;justify-content:center}.portainer-hub-page .ph-main{max-width:1400px;margin:0 auto;padding:24px}.portainer-hub-page .ph-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.portainer-hub-page .ph-host-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:16px}.portainer-hub-page .ph-host-card{background:rgba(255,255,255,.03)!important;border:1px solid rgba(255,255,255,.08)!important;border-radius:16px!important;transition:all .3s!important}.portainer-hub-page .ph-host-card:hover{border-color:rgba(22,119,255,.3)!important;box-shadow:0 8px 32px rgba(22,119,255,.1)!important}.portainer-hub-page .ph-host-card .ant-card-body{padding:20px!important}.portainer-hub-page .ph-host-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.portainer-hub-page .ph-host-card-info{display:flex;gap:12px;align-items:flex-start}.portainer-hub-page .ph-host-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.portainer-hub-page .ph-host-card-body{margin-bottom:16px}.portainer-hub-page .ph-field{margin-bottom:8px}.portainer-hub-page .ph-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:1px;margin-bottom:4px}.portainer-hub-page .ph-value{font-size:13px}.portainer-hub-page .ph-stats-row{margin-top:12px}.portainer-hub-page .ph-error-box{margin-top:12px;padding:8px 12px;background:rgba(255,77,79,.1);border-radius:8px}.portainer-hub-page .ph-host-card-actions{display:flex;gap:8px}.portainer-hub-page .status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.portainer-hub-page .ph-host-detail-card{background:rgba(255,255,255,.03)!important;border:1px solid rgba(255,255,255,.08)!important;border-radius:16px!important;margin-bottom:24px}.portainer-hub-page .ph-host-detail-card .ant-card-body{padding:24px!important}.portainer-hub-page .ph-detail-header{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap}.portainer-hub-page .ph-host-icon-large{width:64px;height:64px;border-radius:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.portainer-hub-page .ph-stat-card,.portainer-hub-page .ph-info-card{background:rgba(255,255,255,.03)!important;border:1px solid rgba(255,255,255,.08)!important;border-radius:12px!important}.portainer-hub-page .ph-env-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.portainer-hub-page .ph-env-card{background:rgba(255,255,255,.03)!important;border:1px solid rgba(255,255,255,.08)!important;border-radius:12px!important;cursor:pointer}.portainer-hub-page .ph-env-card.active{border-color:rgba(22,119,255,.5)!important;background:rgba(22,119,255,.05)!important}.portainer-hub-page .ph-logs-card{background:rgba(255,255,255,.03)!important;border:1px solid rgba(255,255,255,.08)!important;border-radius:12px!important}.portainer-hub-page .ph-logs-container{height:calc(100vh - 280px);overflow-y:auto;background:#0d1117;border-radius:8px;padding:16px}.portainer-hub-page .ph-logs-pre{margin:0;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;line-height:1.8}.portainer-hub-page .ph-log-line{padding:1px 0}.portainer-hub-page .ph-log-line.error{color:#ff4d4f}.portainer-hub-page .ph-log-time{color:rgba(255,255,255,.35);margin-right:8px}.portainer-hub-page .ph-log-content{color:#c9d1d9}.portainer-hub-page .ph-drawer .ant-drawer-content{border-radius:24px 24px 0 0}.portainer-hub-page .ant-card,.portainer-hub-page .ant-typography{color:#e8edf5}.portainer-hub-page h1.ant-typography,.portainer-hub-page h2.ant-typography,.portainer-hub-page h3.ant-typography,.portainer-hub-page h4.ant-typography,.portainer-hub-page h5.ant-typography{color:#e8edf5!important}.portainer-hub-page .ant-typography-secondary{color:rgba(255,255,255,.45)!important}.portainer-hub-page .ant-statistic-title{color:rgba(255,255,255,.45)}.portainer-hub-page .ant-statistic-content{color:#e8edf5}.portainer-hub-page .ant-descriptions-item-label{color:rgba(255,255,255,.45)!important}.portainer-hub-page .ant-descriptions-item-content{color:#e8edf5!important}.portainer-hub-page .ant-tabs-tab{color:rgba(255,255,255,.45)!important}.portainer-hub-page .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#1677ff!important}.portainer-hub-page .ant-table{background:transparent!important;color:#e8edf5!important}.portainer-hub-page .ant-table .ant-table-thead>tr>th{background:rgba(255,255,255,.04)!important;color:rgba(255,255,255,.65)!important;border-bottom:1px solid rgba(255,255,255,.08)!important}.portainer-hub-page .ant-table .ant-table-tbody>tr>td{border-bottom:1px solid rgba(255,255,255,.06)!important;color:#e8edf5!important}.portainer-hub-page .ant-table .ant-table-tbody>tr:hover>td{background:rgba(22,119,255,.05)!important}.portainer-hub-page .ant-table .ant-table-cell{background:transparent!important}.portainer-hub-page .ant-pagination .ant-pagination-item{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1)}.portainer-hub-page .ant-pagination .ant-pagination-item a{color:#e8edf5}.portainer-hub-page .ant-input,.portainer-hub-page .ant-select-selector{background:rgba(255,255,255,.06)!important;border-color:rgba(255,255,255,.1)!important;color:#e8edf5!important}.portainer-hub-page .ant-select-dropdown{background:#1a2640!important}.portainer-hub-page .ant-empty-description{color:rgba(255,255,255,.35)}.portainer-hub-page .ant-card-head{border-bottom-color:rgba(255,255,255,.08)!important;color:#e8edf5!important}.portainer-hub-page .ant-card-head-title{color:#e8edf5!important}.portainer-hub-page .ant-tabs-ink-bar{background:#1677ff}@media(max-width:768px){.portainer-hub-page .ph-host-grid{grid-template-columns:1fr}.portainer-hub-page .ph-main{padding:16px}.portainer-hub-page .ph-header .ph-header-inner{padding:12px 16px}.portainer-hub-page .ph-detail-header{flex-direction:column}.portainer-hub-page .ph-host-icon-large{width:48px;height:48px}}.center{display:flex;justify-content:center;align-items:center}.green{color:#2980b9}.red{color:#ff4d4f}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{border-radius:6px}::-webkit-scrollbar-button{display:none}::-webkit-scrollbar-thumb{background-color:rgba(132,140,153,.7);border-radius:6px}::-webkit-scrollbar-thumb:hover{background-color:#848c99}
