:root{--font-sans: "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;--radius-xs: 2px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--ease: cubic-bezier(.16,.8,.45,1);--focus-ring: 0 0 0 2px var(--color-bg), 0 0 0 4px var(--color-focus);--shadow-1: 0 1px 2px rgba(0,0,0,.25), 0 0 0 1px rgba(255,255,255,.04) inset;--shadow-2: 0 2px 4px rgba(0,0,0,.35), 0 0 0 1px rgba(255,255,255,.06) inset;--space-1: 2px;--space-2:4px;--space-3:8px;--space-4:12px;--space-5:16px;--space-6:20px;--space-7:24px;--space-8:32px;--space-9:40px;--space-10:48px}:root[data-theme=dark]{--color-bg: #0f1114;--color-bg-alt: #1b1f23;--color-surface: #20252b;--color-surface-alt: #2a3138;--color-border: #2f3942;--color-border-strong: #3d4a55;--color-accent: #0a84ff;--color-accent-hover: #369bff;--color-accent-active: #5cb3ff;--color-danger: #d13438;--color-danger-hover: #e15357;--color-text: #f5f7fa;--color-text-secondary: #b8c2cc;--color-focus: #5cb3ff;--color-warning: #f2c744;--color-success: #37b26c;--grad-accent: linear-gradient(135deg,#0a84ff,#2563eb 60%)}:root[data-theme=light]{--color-bg: #f5f7fa;--color-bg-alt: #eef1f5;--color-surface: #ffffff;--color-surface-alt: #f3f6fa;--color-border: #dfe5eb;--color-border-strong: #c5cfd8;--color-accent: #0a62d0;--color-accent-hover: #0d74f1;--color-accent-active: #2a87ff;--color-danger: #b4231e;--color-danger-hover: #d13438;--color-text: #1a1f23;--color-text-secondary: #4a5a68;--color-focus: #0d74f1;--color-warning: #c08c11;--color-success: #1b8f53;--grad-accent: linear-gradient(135deg,#0a62d0,#2563eb 60%)}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;background:radial-gradient(circle at 25% 15%,var(--color-bg-alt),var(--color-bg) 60%);color:var(--color-text);font-size:15px;line-height:1.4;display:flex;flex-direction:column}::selection{background:var(--color-accent-active);color:#fff}h1,h2,h3{font-weight:600;letter-spacing:.25px;margin:0 0 var(--space-4)}h1{font-size:clamp(1.25rem,1.1rem + 1vw,1.65rem)}h2{font-size:1.05rem;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary)}p{margin:0 0 var(--space-4)}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}*{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:50px;border:2px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:var(--color-accent);border:2px solid transparent}.visually-hidden{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}#toast{position:fixed;z-index:1000;bottom:var(--space-7);right:var(--space-7);background:var(--color-surface-alt);border:1px solid var(--color-border);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);font-size:.8rem;backdrop-filter:blur(6px);max-width:260px;transform:translateY(100px);opacity:0;transition:all .3s var(--ease)}#toast.show{transform:translateY(0);opacity:1}#toast.info{border-color:var(--color-accent)}#toast.error{border-color:var(--color-danger)}.focusable:focus-visible,button:focus-visible,select:focus-visible,input[type=file]:focus-visible{outline:none;box-shadow:var(--focus-ring);border-color:var(--color-focus)}.elevation-1{box-shadow:var(--shadow-1)}.elevation-2{box-shadow:var(--shadow-2)}.surface{background:var(--color-surface);border:1px solid var(--color-border)}.surface-alt{background:var(--color-surface-alt);border:1px solid var(--color-border)}@keyframes subtle-pop{0%{transform:translateY(4px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-down{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.page-transition{animation:fade-in .3s var(--ease)}.site-content{flex:1;overflow-y:auto;padding-top:var(--space-7)}.global-header{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-7);background:linear-gradient(90deg,#0f6cbd,#1a74d3 60%,#2b88e6);border-bottom:1px solid rgba(255,255,255,.15);backdrop-filter:blur(8px);color:#fff;z-index:100;height:64px}.header-left{display:flex;align-items:center;gap:var(--space-7)}.header-right,.product-brand{display:flex;align-items:center;gap:var(--space-4)}.brand-logo{width:32px;height:32px;flex-shrink:0;object-fit:contain}.app-title{font-size:1.1rem;font-weight:600;letter-spacing:.4px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35);margin:0;line-height:1}.main-nav{display:flex;align-items:center;gap:var(--space-2)}.nav-link{display:flex;align-items:center;padding:var(--space-3) var(--space-5);color:#ffffffd9;text-decoration:none;border-radius:var(--radius-md);font-weight:500;font-size:.9rem;transition:all .2s var(--ease);position:relative}.nav-link:hover{color:#fff;background:#ffffff1a;text-decoration:none}.nav-link[data-active=true]{color:#fff;background:#ffffff26;font-weight:600}.nav-link[data-active=true]:after{content:"";position:absolute;bottom:-1px;left:50%;transform:translate(-50%);width:60%;height:2px;background:#fff;border-radius:2px}.global-header .icon-btn.theme-toggle{background:#ffffff26;border:1px solid rgba(255,255,255,.25);color:#fff}.global-header .icon-btn.theme-toggle:hover{background:#ffffff40}.site-content{flex:1;overflow-y:auto;padding-top:64px}.shell{width:100%;max-width:1480px;margin:0 auto;padding:var(--space-9) var(--space-7) var(--space-10)}.category-section{margin-bottom:var(--space-10);animation:fade-in .6s var(--ease)}.category-title{font-size:1.75rem;font-weight:600;color:var(--color-text);margin-bottom:var(--space-3);letter-spacing:0;text-transform:none}.category-description{font-size:.95rem;color:var(--color-text-secondary);margin-bottom:var(--space-7)}.card-grid{display:grid;gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.projects-hero{text-align:center;padding:var(--space-10) 0 var(--space-9);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-10)}.projects-hero h1{font-size:2.5rem;font-weight:700;margin-bottom:var(--space-4);background:var(--grad-accent);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.projects-hero p{font-size:1.1rem;color:var(--color-text-secondary);max-width:600px;margin:0 auto}.project-header{padding:var(--space-8) 0;border-bottom:1px solid var(--color-border);margin-bottom:var(--space-8)}.project-meta{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-5)}.project-logo{width:64px;height:64px;border-radius:var(--radius-lg);object-fit:cover}.project-title{font-size:2rem;font-weight:700;margin:0}.project-tagline{font-size:1.1rem;color:var(--color-text-secondary);margin:var(--space-3) 0 var(--space-6)}.project-actions{display:flex;gap:var(--space-4);align-items:center}@media(max-width:780px){.shell{padding:var(--space-7) var(--space-5) var(--space-8)}.global-header{padding:var(--space-3) var(--space-5)}.header-left{gap:var(--space-5)}.card-grid{grid-template-columns:1fr;gap:var(--space-5)}.category-title{font-size:1.5rem}.projects-hero h1{font-size:2rem}.main-nav{gap:var(--space-1)}.nav-link{padding:var(--space-2) var(--space-4);font-size:.85rem}}.btn{--btn-bg: var(--color-surface-alt);--btn-border: var(--color-border);--btn-color: var(--color-text);--btn-bg-hover: var(--color-surface-alt);--btn-bg-active: var(--color-surface);font:500 13px/1 var(--font-sans);letter-spacing:.3px;display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer;border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--btn-color);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);position:relative;transition:background .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease),transform .2s var(--ease)}.btn:hover:not(:disabled){background:var(--btn-bg-hover)}.btn:active:not(:disabled){background:var(--btn-bg-active);transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{--btn-bg: rgba(255, 255, 255, .15);--btn-border: rgba(255, 255, 255, .25);--btn-color: #fff;--btn-bg-hover: rgba(255, 255, 255, .25);--btn-bg-active: rgba(255, 255, 255, .18)}.btn.subtle{--btn-bg: transparent;--btn-border: rgba(255, 255, 255, .3);--btn-color: rgba(255, 255, 255, .85);--btn-bg-hover: rgba(255, 255, 255, .12);--btn-bg-active: rgba(255, 255, 255, .18)}.btn.large{padding:var(--space-4) var(--space-6);font-size:14px}.user-info{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);font-size:13px;color:#fff}:root[data-theme=dark] .aws-icon-light{display:none!important}:root[data-theme=dark] .aws-icon-dark{display:inline-block!important}:root[data-theme=light] .aws-icon-dark{display:none!important}:root[data-theme=light] .aws-icon-light{display:inline-block!important}.user-display{font-weight:500}.icon-btn{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;font-size:16px;cursor:pointer;transition:background .25s var(--ease),border-color .25s var(--ease)}.icon-btn:hover{background:var(--color-surface);border-color:var(--color-border-strong)}.segmented{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.segmented>*{border-right:1px solid var(--color-border)}.segmented>*:last-child{border-right:none}.portal-card{position:relative;display:flex;align-items:center;gap:var(--space-5);background:linear-gradient(var(--color-surface),var(--color-surface-alt));border:1px solid var(--color-border);padding:var(--space-7);border-radius:var(--radius-lg);transition:all .3s var(--ease);cursor:pointer;text-decoration:none;min-height:120px}.portal-card:hover{border-color:var(--color-accent);background:var(--color-surface);transform:translateY(-2px);box-shadow:0 4px 12px #0000004d,0 0 0 1px #ffffff14 inset;text-decoration:none}.portal-card:active{transform:translateY(0)}.project-card{position:relative;display:block;background:linear-gradient(var(--color-surface),var(--color-surface-alt));border:1px solid var(--color-border);padding:var(--space-7);border-radius:var(--radius-lg);transition:all .3s var(--ease);cursor:pointer;text-decoration:none;overflow:hidden}.project-card:hover{border-color:var(--color-accent);background:var(--color-surface);transform:translateY(-2px);box-shadow:0 4px 12px #0000004d,0 0 0 1px #ffffff14 inset;text-decoration:none}.project-card-header{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-5)}.project-card-logo{width:56px;height:56px;border-radius:var(--radius-md);object-fit:cover;box-shadow:0 2px 8px #0003;border:2px solid var(--color-border);transition:all .3s var(--ease)}.project-card:hover .project-card-logo{border-color:var(--color-accent);box-shadow:0 4px 12px #0000004d}.project-card-title{font-size:1.2rem;font-weight:600;color:var(--color-text);margin:0}.project-card-description{font-size:.9rem;color:var(--color-text-secondary);line-height:1.5;margin-bottom:var(--space-5)}.project-card-tech{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.tech-tag{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;color:var(--color-text-secondary)}.project-card:hover .tech-tag{border-color:var(--color-accent);color:var(--color-text)}.project-card-actions{display:flex;justify-content:space-between;align-items:center}.project-status{font-size:.8rem;color:var(--color-text-secondary);display:flex;align-items:center;gap:var(--space-2)}.status-indicator{width:8px;height:8px;border-radius:50%;background:var(--color-success)}.status-indicator.in-progress{background:var(--color-warning)}.status-indicator.planned{background:var(--color-text-secondary)}.card-icon{flex-shrink:0;width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-md);transition:all .3s var(--ease)}.portal-card:hover .card-icon{transform:scale(1.05)}.card-icon svg{width:48px;height:48px}.card-icon.project-icon{background:transparent;border:none;padding:0}.project-logo{width:64px;height:64px;border-radius:50%;object-fit:cover;box-shadow:0 2px 8px #0000004d;border:2px solid var(--color-border);transition:all .3s var(--ease)}.portal-card:hover .project-logo{border-color:var(--color-accent);box-shadow:0 4px 12px #0006}.card-content{flex:1;min-width:0}.card-title{font-size:1.1rem;font-weight:600;color:var(--color-text);margin:0 0 var(--space-2);letter-spacing:0;text-transform:none}.card-description{font-size:.9rem;color:var(--color-text-secondary);margin:0;line-height:1.4}.card-arrow{flex-shrink:0;font-size:1.5rem;color:var(--color-text-secondary);transition:all .3s var(--ease);opacity:.5}.portal-card:hover .card-arrow,.project-card:hover .card-arrow{color:var(--color-accent);opacity:1;transform:translate(4px)}.portal-card[data-provider=azure]:hover{border-color:#0078d4}.portal-card[data-provider=azure]:hover .card-arrow{color:#0078d4}.portal-card[data-provider=aws]:hover{border-color:#f90}.portal-card[data-provider=aws]:hover .card-arrow{color:#f90}.portal-card[data-provider=gcp]:hover{border-color:#4285f4}.portal-card[data-provider=gcp]:hover .card-arrow{color:#4285f4}.portal-card[data-provider=project]:hover{border-color:var(--color-accent)}.breadcrumb{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-6);font-size:.9rem}.breadcrumb-item{color:var(--color-text-secondary);text-decoration:none}.breadcrumb-item:hover{color:var(--color-accent)}.breadcrumb-separator{color:var(--color-text-secondary);font-size:.8rem}.breadcrumb-item[aria-current=page]{color:var(--color-text);font-weight:500}.portal-card,.project-card{animation:subtle-pop .5s var(--ease) backwards}.portal-card:nth-child(1),.project-card:nth-child(1){animation-delay:.05s}.portal-card:nth-child(2),.project-card:nth-child(2){animation-delay:.1s}.portal-card:nth-child(3),.project-card:nth-child(3){animation-delay:.15s}.portal-card:nth-child(4),.project-card:nth-child(4){animation-delay:.2s}.loading,.error{margin:var(--space-9) auto;max-width:480px;padding:var(--space-7);border-radius:var(--radius-lg);border:1px dashed var(--color-border);background:var(--color-surface-alt);text-align:center;color:var(--color-text-secondary)}.error{border-color:var(--color-danger);color:var(--color-danger)}
