:root{--color-primary: #3b82f6;--color-primary-dark: #2563eb;--color-primary-light: #dbeafe;--color-secondary: #6366f1;--color-accent: #10b981;--color-warning: #f59e0b;--color-error: #ef4444;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--color-background: #ffffff;--color-background-alt: var(--color-gray-50);--color-text: var(--color-gray-900);--color-text-muted: var(--color-gray-600);--color-text-light: var(--color-gray-500);--color-border: var(--color-gray-200);--color-border-focus: var(--color-primary);--font-family-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-family-mono: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.625;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem;--radius-full: 9999px;--transition-fast: .15s ease-in-out;--transition-normal: .25s ease-in-out;--transition-slow: .35s ease-in-out}*{box-sizing:border-box;margin:0;padding:0}html{line-height:var(--leading-normal);-moz-tab-size:4;tab-size:4}@supports (text-size-adjust: 100%){html{text-size-adjust:100%}}body{font-family:var(--font-family-sans);font-feature-settings:"cv02","cv03","cv04","cv11";background-color:var(--color-background);color:var(--color-text);line-height:var(--leading-relaxed)}.skeleton{position:relative;overflow:hidden;background:var(--color-gray-200);border-radius:var(--radius-md)}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,#fff0,#ffffff80,#fff0);animation:skeleton-shimmer 1.4s infinite}@keyframes skeleton-shimmer{to{transform:translate(100%)}}.skeleton-text{height:1em;width:100%;margin:.25em 0}.skeleton-title{height:2em;width:60%;margin:.5em 0}.skeleton-chip{height:1.5em;width:5em;display:inline-block;margin-right:.5em;border-radius:var(--radius-full)}.skeleton-card{height:140px}.skeleton-w-30{width:30%}.skeleton-w-80{width:80%}.skeleton-btn{height:36px;width:120px;border-radius:8px;display:inline-block}.skeleton-gallery{height:180px;border-radius:12px}.visually-hidden{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}.navigation{position:fixed;top:0;left:0;right:0;z-index:100;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--color-border)}.nav-container{max-width:1200px;margin:0 auto;padding:0 var(--space-4);display:flex;align-items:center;justify-content:space-between;height:70px}.nav-brand{display:flex;align-items:center;gap:var(--space-2);text-decoration:none;color:var(--color-text);font-weight:600;font-size:var(--text-lg)}.brand-icon{font-size:var(--text-xl)}.brand-text{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.nav-links{display:flex;align-items:center;gap:var(--space-2);list-style:none;margin:0;padding:0}.nav-link{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);text-decoration:none;color:var(--color-text-muted);font-weight:500;font-size:var(--text-sm);border-radius:var(--radius-lg);transition:all var(--transition-fast)}.nav-actions{display:flex;align-items:center;gap:var(--space-2)}.data-source-label{font-size:var(--text-sm);color:var(--color-text-muted)}.data-source-select{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-background);color:var(--color-text)}.nav-link:hover,.nav-link-active{color:var(--color-primary);background:var(--color-primary-light)}.nav-icon{font-size:var(--text-base)}.nav-text{display:none}@media (min-width: 768px){.nav-text{display:block}}.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-background);color:var(--color-text);text-decoration:none;font-weight:600;transition:all var(--transition-fast)}.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-primary{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);color:#fff;border-color:var(--color-primary)}.btn-primary:hover{box-shadow:var(--shadow-md)}.btn-secondary{background:var(--color-background-alt);color:var(--color-text)}.btn-outline{background:transparent;color:var(--color-primary);border-color:var(--color-primary)}.page{min-height:100vh;padding-top:70px;background:linear-gradient(135deg,var(--color-background) 0%,var(--color-gray-50) 100%)}.page-header{text-align:center;margin-bottom:var(--space-16);padding:var(--space-12) 0 var(--space-8)}.page-title{font-size:var(--text-4xl);font-weight:700;line-height:var(--leading-tight);margin-bottom:var(--space-4);background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.page-description{font-size:var(--text-lg);color:var(--color-text-muted);line-height:var(--leading-relaxed);max-width:600px;margin:0 auto}.hero-section{display:grid;grid-template-columns:1fr;gap:var(--space-12);align-items:center;padding:var(--space-16) 0}@media (min-width: 768px){.hero-section{grid-template-columns:1fr 1fr}}.hero-content{text-align:center}@media (min-width: 768px){.hero-content{text-align:left}}.hero-title{font-size:var(--text-5xl);font-weight:700;line-height:var(--leading-tight);margin-bottom:var(--space-6);color:var(--color-text)}.hero-highlight{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-description{font-size:var(--text-lg);color:var(--color-text-muted);line-height:var(--leading-relaxed);margin-bottom:var(--space-8)}.hero-actions{display:flex;gap:var(--space-4);justify-content:center}@media (min-width: 768px){.hero-actions{justify-content:flex-start}}.hero-button{display:inline-flex;align-items:center;padding:var(--space-3) var(--space-6);border-radius:var(--radius-lg);font-weight:600;text-decoration:none;transition:all var(--transition-normal);border:2px solid transparent}.hero-button-primary{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);color:#fff}.hero-button-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.hero-button-secondary{background:var(--color-background);color:var(--color-primary);border-color:var(--color-primary)}.hero-button-secondary:hover{background:var(--color-primary);color:#fff;transform:translateY(-2px)}.hero-visual{display:flex;justify-content:center}.hero-code-block{background:var(--color-gray-900);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:400px;width:100%;overflow:hidden}.code-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--color-gray-800);border-bottom:1px solid var(--color-gray-700)}.code-dots{display:flex;gap:var(--space-2)}.dot{width:var(--space-3);height:var(--space-3);border-radius:var(--radius-full)}.dot-red{background:#ff5f56}.dot-yellow{background:#ffbd2e}.dot-green{background:#27ca3f}.code-title{color:var(--color-gray-300);font-size:var(--text-sm);font-family:var(--font-family-mono)}.code-content{padding:var(--space-4);font-family:var(--font-family-mono);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.code-line{margin-bottom:var(--space-1)}.code-indent{padding-left:var(--space-4)}.code-comment{color:#6a9955}.code-keyword{color:#569cd6}.code-variable{color:#9cdcfe}.code-property{color:#92c5f8}.code-string{color:#ce9178}.stats-section{padding:var(--space-16) 0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-6)}.stat-card{text-align:center;padding:var(--space-6);background:var(--color-background);border-radius:var(--radius-xl);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);transition:transform var(--transition-normal)}.stat-card:hover{transform:translateY(-4px)}.stat-icon{font-size:2.5rem;margin-bottom:var(--space-3)}.stat-number{font-size:var(--text-3xl);font-weight:700;color:var(--color-primary);margin-bottom:var(--space-2)}.stat-label{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:500}.status-section{padding:var(--space-12) 0}.status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-6)}.status-card{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-sm)}.status-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.status-header h3{font-size:var(--text-lg);font-weight:600;color:var(--color-text)}.status-indicator{width:var(--space-3);height:var(--space-3);border-radius:var(--radius-full)}.status-online{background:var(--color-accent);box-shadow:0 0 0 3px #10b98133}.status-details p{margin:var(--space-1) 0;font-size:var(--text-sm);color:var(--color-text-muted)}.about-content{max-width:800px;margin:0 auto}.about-section{margin-bottom:var(--space-16)}.about-text h2{font-size:var(--text-2xl);font-weight:600;color:var(--color-text);margin-bottom:var(--space-4)}.about-text p{font-size:var(--text-lg);line-height:var(--leading-relaxed);color:var(--color-text-muted);margin-bottom:var(--space-4)}.skills-section{margin-bottom:var(--space-16)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-8)}.skill-category h3{font-size:var(--text-lg);font-weight:600;color:var(--color-text);margin-bottom:var(--space-4)}.skill-tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}.skill-tag{display:inline-flex;align-items:center;padding:var(--space-2) var(--space-3);background:var(--color-primary-light);color:var(--color-primary-dark);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:500}.experience-section{margin-bottom:var(--space-16)}.experience-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-6)}.experience-card{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-6);text-align:center;box-shadow:var(--shadow-sm);transition:transform var(--transition-normal)}.experience-card:hover{transform:translateY(-4px)}.experience-icon{font-size:2.5rem;margin-bottom:var(--space-4)}.experience-card h3{font-size:var(--text-lg);font-weight:600;color:var(--color-text);margin-bottom:var(--space-3)}.experience-card p{color:var(--color-text-muted);line-height:var(--leading-relaxed)}.contact-content{max-width:1000px;margin:0 auto}.contact-grid{display:grid;grid-template-columns:1fr;gap:var(--space-12)}@media (min-width: 768px){.contact-grid{grid-template-columns:1fr 1.5fr}}.contact-info{display:grid;gap:var(--space-6)}.contact-card{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-6);text-align:center;box-shadow:var(--shadow-sm)}.contact-icon{font-size:2rem;margin-bottom:var(--space-3)}.contact-card h3{font-size:var(--text-lg);font-weight:600;color:var(--color-text);margin-bottom:var(--space-2)}.contact-card p{color:var(--color-text-muted);margin-bottom:var(--space-4)}.contact-link{display:inline-flex;align-items:center;padding:var(--space-2) var(--space-4);background:var(--color-primary);color:#fff;text-decoration:none;border-radius:var(--radius-md);font-weight:500;font-size:var(--text-sm);transition:all var(--transition-fast)}.contact-link:hover{background:var(--color-primary-dark);transform:translateY(-1px)}.contact-text{color:var(--color-text-muted);font-size:var(--text-sm)}.contact-form-section{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-sm)}.contact-form{display:flex;flex-direction:column;gap:var(--space-6)}.form-textarea{padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background);color:var(--color-text);font-size:var(--text-sm);font-family:inherit;resize:vertical;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-textarea:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px #3b82f61a}.form-submit{padding:var(--space-3) var(--space-6);background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);color:#fff;border:none;border-radius:var(--radius-lg);font-weight:600;font-size:var(--text-base);cursor:pointer;transition:all var(--transition-normal)}.form-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.form-submit:disabled{opacity:.6;cursor:not-allowed}.form-success{padding:var(--space-4) var(--space-6);background:#10b9811a;border:1px solid rgb(16 185 129 / .2);border-radius:var(--radius-lg);color:var(--color-accent);font-size:var(--text-sm)}.form-error{padding:var(--space-4) var(--space-6);background:#ef44441a;border:1px solid rgb(239 68 68 / .2);border-radius:var(--radius-lg);color:var(--color-error);font-size:var(--text-sm)}.container{max-width:1200px;margin:0 auto;padding:var(--space-6) var(--space-4)}.header{text-align:center;margin-bottom:var(--space-16);padding:var(--space-12) 0}.hero-title{font-size:var(--text-5xl);font-weight:700;line-height:var(--leading-tight);margin-bottom:var(--space-4);background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:var(--text-xl);color:var(--color-text-muted);margin-bottom:var(--space-8);line-height:var(--leading-relaxed)}.status-info{display:flex;justify-content:center;gap:var(--space-8);margin-bottom:var(--space-8)}.status-badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--text-sm);color:var(--color-text-muted);box-shadow:var(--shadow-sm)}.status-dot{width:var(--space-2);height:var(--space-2);border-radius:var(--radius-full);background-color:var(--color-accent)}.projects-section{background:var(--color-background);border-radius:var(--radius-2xl);padding:var(--space-8);box-shadow:var(--shadow-lg);border:1px solid var(--color-border)}.section-header{margin-bottom:var(--space-8)}.section-title{font-size:var(--text-3xl);font-weight:600;color:var(--color-text);margin-bottom:var(--space-4)}.section-description{font-size:var(--text-lg);color:var(--color-text-muted);line-height:var(--leading-relaxed)}.controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4);margin-bottom:var(--space-8);padding:var(--space-6);background:var(--color-background-alt);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-label{font-size:var(--text-sm);font-weight:500;color:var(--color-text)}.form-input,.form-select{padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background);color:var(--color-text);font-size:var(--text-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-input:focus,.form-select:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px #3b82f61a}.form-input::placeholder{color:var(--color-text-light)}.limit-input{max-width:80px}.loading-state{display:flex;align-items:center;justify-content:center;padding:var(--space-12);font-size:var(--text-lg);color:var(--color-text-muted)}.error-state{padding:var(--space-4) var(--space-6);background:#ef44441a;border:1px solid rgb(239 68 68 / .2);border-radius:var(--radius-lg);color:var(--color-error);font-size:var(--text-sm);margin-bottom:var(--space-6)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:var(--space-6);list-style:none}.project-card{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-sm);transition:all var(--transition-normal);position:relative;overflow:hidden}.project-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-xl);border-color:var(--color-primary)}.project-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--color-primary) 0%,var(--color-secondary) 100%);opacity:0;transition:opacity var(--transition-normal)}.project-card:hover:before{opacity:1}.project-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--space-4)}.project-title{font-size:var(--text-xl);font-weight:600;color:var(--color-text);line-height:var(--leading-tight)}.featured-badge{background:linear-gradient(135deg,var(--color-warning) 0%,#f97316 100%);color:#fff;padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500;display:inline-flex;align-items:center;gap:var(--space-1)}.project-meta{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);font-size:var(--text-sm);color:var(--color-text-light)}.project-slug{font-family:var(--font-family-mono);background:var(--color-gray-100);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs)}.project-tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.tag{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);background:var(--color-primary-light);color:var(--color-primary-dark);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500}.project-summary{font-size:var(--text-base);color:var(--color-text-muted);line-height:var(--leading-relaxed);margin-bottom:var(--space-6)}.project-links{display:flex;gap:var(--space-3)}.project-link{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-background-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);text-decoration:none;font-size:var(--text-sm);font-weight:500;transition:all var(--transition-fast)}.project-link:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary);transform:translateY(-1px)}@media (max-width: 768px){.container{padding:var(--space-4) var(--space-3)}.hero-title{font-size:var(--text-3xl)}.hero-subtitle{font-size:var(--text-lg)}.status-info{flex-direction:column;gap:var(--space-4)}.controls,.projects-grid{grid-template-columns:1fr}.projects-section{padding:var(--space-6)}}.breadcrumb{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-6);font-size:var(--text-sm)}.breadcrumb-link{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}.breadcrumb-link:hover{color:var(--color-primary-dark)}.breadcrumb-separator{color:var(--color-text-muted)}.breadcrumb-current{color:var(--color-text-muted);font-weight:500}.project-detail-header{border-bottom:1px solid var(--color-border);padding-bottom:var(--space-8);margin-bottom:var(--space-8)}.project-detail-title-section{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6)}.project-detail-title{font-size:var(--text-4xl);font-weight:700;color:var(--color-text);margin:0}.featured-badge-large{background:linear-gradient(45deg,var(--color-accent),var(--color-secondary));color:#fff;padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600;white-space:nowrap}.project-detail-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.project-data-source{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.status-badge.status-live .status-dot{background:var(--color-accent)}.status-badge.status-mock .status-dot{background:var(--color-warning)}.btn.btn-xs,.btn-xs{padding:var(--space-1) var(--space-2);font-size:var(--text-xs);border-radius:var(--radius)}.retry-btn{border:1px solid var(--color-border);background:var(--color-background)}.meta-item{display:flex;flex-direction:column;gap:var(--space-1)}.meta-label{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:500}.meta-value{font-size:var(--text-base);color:var(--color-text)}.project-detail-tags{margin-bottom:var(--space-6)}.project-detail-tags h3{font-size:var(--text-lg);color:var(--color-text);margin-bottom:var(--space-3)}.tag-list{display:flex;flex-wrap:wrap;gap:var(--space-2)}.tag-large{padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}.project-detail-actions{display:flex;gap:var(--space-4);flex-wrap:wrap}.btn-large{padding:var(--space-3) var(--space-6);font-size:var(--text-lg)}.project-detail-content,.project-section{margin-bottom:var(--space-8)}.project-section .section-title{font-size:var(--text-2xl);font-weight:600;color:var(--color-text);margin-bottom:var(--space-4);border-bottom:2px solid var(--color-primary);padding-bottom:var(--space-2);display:inline-block}.project-summary-large{font-size:var(--text-lg);line-height:1.7;color:var(--color-text);background:var(--color-background-alt);padding:var(--space-6);border-radius:var(--radius-lg);border-left:4px solid var(--color-primary)}.project-gallery{background:var(--color-background-alt);border-radius:var(--radius-lg);padding:var(--space-8);text-align:center}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-4)}.gallery-item{overflow:hidden;border-radius:var(--radius-md);border:1px solid var(--color-border);background:#fff;box-shadow:var(--shadow-sm)}.gallery-item img{display:block;width:100%;height:auto;transition:transform var(--transition-normal)}.gallery-item:hover img{transform:scale(1.03)}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-6)}.feature-card{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);transition:all var(--transition-base)}.feature-card:hover{border-color:var(--color-primary);transform:translateY(-2px);box-shadow:0 10px 25px #0000001a}.feature-icon{font-size:var(--text-3xl);margin-bottom:var(--space-3);display:block}.feature-card h3{font-size:var(--text-xl);font-weight:600;color:var(--color-text);margin-bottom:var(--space-2)}.feature-card p{color:var(--color-text-muted);line-height:1.6}.tech-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-6)}.tech-detail-card{background:var(--color-background-alt);border-radius:var(--radius-lg);padding:var(--space-6);border:1px solid var(--color-border)}.tech-detail-card h3{font-size:var(--text-xl);font-weight:600;color:var(--color-text);margin-bottom:var(--space-3)}.tech-detail-card p{color:var(--color-text-muted);margin-bottom:var(--space-4)}.tech-list{list-style:none;padding:0;margin:0}.tech-list li{padding:var(--space-2);background:#fff;border-radius:var(--radius);margin-bottom:var(--space-2);border-left:3px solid var(--color-primary);text-transform:capitalize}.highlights-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-4)}.highlight-card{background:linear-gradient(135deg,var(--color-primary-light),white);border-radius:var(--radius-lg);padding:var(--space-5);border:1px solid var(--color-border)}.highlight-card h4{font-size:var(--text-lg);font-weight:600;color:var(--color-primary-dark);margin-bottom:var(--space-2)}.highlight-card p{color:var(--color-text);font-size:var(--text-sm);line-height:1.6}.project-detail-footer{border-top:1px solid var(--color-border);padding-top:var(--space-6);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-4)}.project-navigation{display:flex;align-items:center;gap:var(--space-3)}.project-navigation span{color:var(--color-text-muted);font-size:var(--text-sm)}.project-link-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.project-link-primary:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}@media (max-width: 768px){.project-detail-title-section{flex-direction:column;align-items:flex-start;gap:var(--space-3)}.project-detail-title{font-size:var(--text-2xl)}.project-detail-actions{flex-direction:column;width:100%}.project-detail-actions .btn{text-align:center;width:100%}.project-detail-footer{flex-direction:column;text-align:center}.features-grid,.tech-details,.highlights-grid{grid-template-columns:1fr}}.probe{padding:var(--space-4)}.probe pre{background:var(--color-gray-900);color:#0f0;padding:var(--space-3);border-radius:var(--radius-md);overflow-x:auto}.probe p{margin:var(--space-2) 0}
