.project-report-page{background:var(--bg-primary);}.report-shell{min-height:60vh;}.report-hero{padding-top:108px;padding-bottom:0;background:var(--bg-primary);border-bottom:1px solid var(--border-color);}.report-hero-frame{width:calc(100% - 4rem);max-width:1100px;margin:0 auto;padding:0 0 2rem;}.report-banner{width:100%;margin-top:1rem;aspect-ratio:21 / 7;max-height:260px;border-radius:14px;overflow:hidden;border:1px solid var(--border-color);background:var(--bg-secondary);line-height:0;}.report-banner img{width:100%;height:100%;display:block;object-fit:cover;object-position:center;}.report-banner--screenshot{background:#0a0a0a;}.report-banner--screenshot img{object-fit:cover;object-position:center top;}.report-banner--logo{background:#ffffff;aspect-ratio:21 / 5;max-height:168px;display:flex;align-items:center;justify-content:center;line-height:normal;}.report-banner--logo img{width:auto;height:auto;max-width:min(200px,38%);max-height:52%;object-fit:contain;object-position:center;padding:0;image-rendering:auto;}.report-title-bar{display:flex;align-items:stretch;gap:1.25rem;margin-top:1.25rem;padding:1.35rem 1.5rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;box-shadow:0 12px 32px rgba(0,0,0,0.06);}.report-hero--no-image .report-title-bar{margin-top:1rem;}.report-back{display:inline-flex;align-items:center;gap:0.5rem;color:var(--text-secondary);font-weight:600;font-size:0.88rem;text-decoration:none;padding:0.45rem 0.85rem;border-radius:999px;border:1px solid var(--border-color);background:var(--bg-card);transition:color 0.2s,border-color 0.2s,background 0.2s;}.report-back:hover{color:var(--primary);border-color:rgba(180,30,30,0.35);background:rgba(180,30,30,0.06);}.report-title-accent{flex-shrink:0;width:4px;border-radius:4px;background:linear-gradient(180deg,var(--primary) 0%,rgba(180,30,30,0.35) 100%);}.report-title{font-family:'Outfit',sans-serif;font-size:clamp(1.25rem,2.2vw,1.85rem);font-weight:700;line-height:1.35;letter-spacing:-0.5px;color:var(--text-primary);margin:0;align-self:center;}.report-layout{display:grid;grid-template-columns:1fr 280px;gap:2rem;padding:2.5rem 0 5rem;width:calc(100% - 4rem);max-width:1100px;margin:0 auto;align-items:start;}.report-document{background:var(--bg-card);border:1px solid var(--border-color);border-radius:20px;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,0.12);}.report-doc-header{padding:1.75rem 2rem;border-bottom:1px solid var(--border-color);background:linear-gradient(to right,rgba(180,30,30,0.04),transparent);}.report-doc-brand{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem;}.report-doc-icon{width:44px;height:44px;border-radius:12px;background:rgba(180,30,30,0.12);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:1.1rem;}.report-doc-brand strong{display:block;font-size:0.95rem;color:var(--text-primary);}.report-doc-brand span{font-size:0.82rem;color:var(--text-secondary);}.report-toc-label{display:block;font-size:0.72rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:0.6rem;}.report-toc-nav{display:flex;flex-wrap:wrap;gap:0.4rem 1rem;}.report-toc-nav a{font-size:0.85rem;color:var(--primary);text-decoration:none;font-weight:500;transition:opacity 0.2s;}.report-toc-nav a:hover{opacity:0.75;text-decoration:underline;}.report-cover{display:none;}.report-sections{padding:0.5rem 0 1rem;}.report-section{padding:2rem 2rem 2.25rem;border-bottom:1px solid var(--border-color);animation:reportFadeIn 0.4s ease both;}.report-section:last-child{border-bottom:none;}.report-section:nth-child(1){animation-delay:0.05s;}.report-section:nth-child(2){animation-delay:0.1s;}.report-section:nth-child(3){animation-delay:0.15s;}.report-section:nth-child(4){animation-delay:0.2s;}.report-section:nth-child(5){animation-delay:0.25s;}.report-section:nth-child(6){animation-delay:0.3s;}@keyframes reportFadeIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}.report-section-head{display:flex;gap:1.25rem;align-items:flex-start;margin-bottom:1.25rem;}.report-section-num{flex-shrink:0;width:42px;height:42px;border-radius:10px;background:rgba(180,30,30,0.1);color:var(--primary);font-family:'Outfit',sans-serif;font-weight:800;font-size:0.9rem;display:flex;align-items:center;justify-content:center;border:1px solid rgba(180,30,30,0.2);}.report-section-head h2{font-family:'Outfit',sans-serif;font-size:1.35rem;font-weight:700;color:var(--text-primary);margin:0 0 0.3rem;display:flex;align-items:center;gap:0.5rem;}.report-section-head h2 i{color:var(--primary);font-size:1rem;opacity:0.85;}.report-section-sub{font-size:0.88rem;color:var(--text-secondary);margin:0;}.report-section-body{font-size:1.02rem;line-height:1.85;color:var(--text-secondary);padding-left:calc(42px + 1.25rem);}.report-section-body p{margin:0 0 1rem;}.report-section-body p:last-child{margin-bottom:0;}.report-section-body h2,.report-section-body h3{color:var(--text-primary);font-family:'Outfit',sans-serif;margin:1.5rem 0 0.75rem;}.report-section-body ul,.report-section-body ol{padding-left:1.25rem;margin:0 0 1rem;}.report-section-empty{text-align:center;padding:3rem 2rem;color:var(--text-secondary);}.report-sidebar{position:sticky;top:110px;display:flex;flex-direction:column;gap:1.25rem;}.report-sidebar-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;padding:1.5rem;}.report-sidebar-card h3{font-size:0.85rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-primary);margin:0 0 1rem;display:flex;align-items:center;gap:0.5rem;}.report-sidebar-card h3 i{color:var(--primary);}.report-info-list{list-style:none;padding:0;margin:0;}.report-info-list li{display:flex;justify-content:space-between;align-items:center;padding:0.6rem 0;border-bottom:1px solid var(--border-color);font-size:0.9rem;}.report-info-list li:last-child{border-bottom:none;}.report-info-list span{color:var(--text-secondary);}.report-info-list strong{color:var(--text-primary);font-weight:600;}.report-empty-note{font-size:0.88rem;color:var(--text-secondary);margin:0;}.report-links .sidebar-btn{margin-bottom:0.6rem;}.report-links .sidebar-btn:last-child{margin-bottom:0;}.report-not-found{padding:8rem 1.5rem 5rem;text-align:center;}.report-not-found-inner{max-width:420px;margin:0 auto;}.report-not-found-inner i{font-size:3.5rem;opacity:0.25;margin-bottom:1.25rem;display:block;}.report-not-found-inner h2{font-family:'Outfit',sans-serif;margin:0 0 0.75rem;}.report-not-found-inner p{color:var(--text-secondary);margin:0 0 2rem;}.page-main{padding:2.5rem 0 4rem;}.project-card{cursor:pointer;transition:transform 0.2s ease,box-shadow 0.2s ease;}.project-card:hover{transform:translateY(-4px);}.tech-tags{display:flex;flex-wrap:wrap;gap:0.5rem;}.tech-tag{padding:5px 12px;background:rgba(180,30,30,0.08);color:var(--primary);border-radius:20px;font-size:0.82rem;font-weight:600;border:1px solid rgba(180,30,30,0.15);}.sidebar-btn{display:flex;align-items:center;justify-content:center;gap:0.5rem;width:100%;padding:0.8rem;border-radius:10px;font-weight:600;font-size:0.95rem;transition:all 0.2s;text-decoration:none;}.sidebar-btn.primary{background:var(--primary);color:white;}.sidebar-btn.primary:hover{background:var(--primary-dark);transform:translateY(-2px);}.sidebar-btn.outline{border:1.5px solid var(--primary);color:var(--primary);background:transparent;}.sidebar-btn.outline:hover{background:var(--primary);color:white;transform:translateY(-2px);}@media (max-width:960px){.report-hero-frame,.report-layout{width:calc(100% - 2rem);}.report-layout{grid-template-columns:1fr;}.report-sidebar{position:static;}.report-section-body{padding-left:0;}}@media (max-width:640px){.report-hero{padding-top:100px;}.report-hero-frame,.report-layout{width:calc(100% - 1.5rem);}.report-title-bar{flex-direction:row;gap:0.85rem;padding:1rem 1.1rem;}.report-doc-header,.report-section{padding-left:1.25rem;padding-right:1.25rem;}.report-cover{padding:0 1.25rem;}.report-section-head{flex-direction:column;gap:0.75rem;}}@media print{.report-back,.report-sidebar,#header-placeholder,#footer-placeholder,#preloader{display:none !important;}.report-document{box-shadow:none;border:none;}.report-section{break-inside:avoid;}}