@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Playfair+Display:ital,wght@0,700;0,800;1,700&display=swap";:root{--dsu-blue:#0057a8;--dsu-gold:#f5a623;--dsu-dark:#0a0f1e;--accent:#0057a8;--accent-light:#e8f0fb;--text-primary:#111827;--text-secondary:#4b5563;--text-muted:#9ca3af;--surface:#fff;--surface-2:#f9fafb;--surface-3:#f3f4f6;--border:#e5e7eb;--border-light:#f3f4f6;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-xl:28px;--shadow-sm:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow-md:0 4px 16px #00000014;--shadow-lg:0 12px 40px #0000001a;--shadow-hover:0 20px 60px #0057a826;--transition:.22s cubic-bezier(.4,0,.2,1);--nav-h:68px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{color:var(--text-primary);-webkit-font-smoothing:antialiased;background:#fff;min-height:100vh;font-family:Inter,system-ui,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{cursor:pointer;background:0 0;border:none;font-family:inherit}ul,ol{list-style:none}.container{max-width:1240px;margin:0 auto;padding:0 24px}.nav{z-index:100;height:var(--nav-h);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);transition:box-shadow var(--transition);background:#ffffffeb;position:fixed;top:0;left:0;right:0}.nav.scrolled{box-shadow:var(--shadow-md)}.nav--post{background:#fffffff5}.nav-inner{justify-content:space-between;align-items:center;max-width:1240px;height:100%;margin:0 auto;padding:0 24px;display:flex}.nav-logo{align-items:center;gap:10px;font-weight:700;display:flex}.nav-logo-img{object-fit:contain;width:auto;height:40px}.nav-logo-fallback{align-items:center;gap:10px;display:flex}.nav-logo-mark{background:var(--dsu-blue);color:#fff;letter-spacing:.5px;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;font-size:11px;font-weight:800;display:flex}.nav-logo-name{color:var(--text-primary);font-size:15px;font-weight:700;line-height:1.2}.nav-logo-sub{color:var(--text-secondary);font-size:11px;font-weight:400}.nav-links{align-items:center;gap:8px;display:flex}.nav-link{color:var(--text-secondary);transition:all var(--transition);border-radius:8px;padding:6px 14px;font-size:14px;font-weight:500}.nav-link:hover,.nav-link.active{color:var(--dsu-blue);background:var(--accent-light)}.nav-cta{background:var(--dsu-blue);color:#fff;transition:all var(--transition);border-radius:8px;padding:8px 18px;font-size:13px;font-weight:600}.nav-cta:hover{background:#004a90;transform:translateY(-1px)}.hero{padding-top:calc(var(--nav-h) + 60px);background:#fff;align-items:center;min-height:480px;padding-bottom:72px;display:flex;position:relative;overflow:hidden}.hero-content{width:100%}.hero-bg{pointer-events:none;position:absolute;inset:0;overflow:hidden}.hero-bg:before{content:"";background:url(/blog/background.png) 50%/cover no-repeat;position:absolute;inset:0}.hero-bg:after{content:"";background:linear-gradient(90deg,#ffffffbf 0%,#fff6 50%,#0000 100%);position:absolute;inset:0}.hero-content{z-index:1;max-width:1240px;margin:0 auto;padding:0 24px;position:relative}.hero-badge{color:var(--dsu-blue);background:#e8f0fb;border:1px solid #0057a830;border-radius:40px;align-items:center;gap:8px;margin-bottom:24px;padding:6px 14px;font-size:12px;font-weight:600;display:inline-flex}.hero-badge-dot{background:var(--dsu-blue);border-radius:50%;width:6px;height:6px;animation:2s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.hero-title{color:var(--text-primary);letter-spacing:-.02em;text-shadow:0 2px 10px #fffc;margin-bottom:20px;font-family:Playfair Display,Georgia,serif;font-size:clamp(42px,6vw,76px);font-weight:800;line-height:1.08}.hero-title-accent{color:var(--dsu-blue);display:inline-block;position:relative}.hero-title-accent:after{content:"";background:var(--dsu-gold);border-radius:2px;height:3px;position:absolute;bottom:-4px;left:0;right:0}.hero-subtitle{color:var(--text-secondary);text-shadow:0 1px 4px #fffc;max-width:600px;margin-bottom:40px;font-size:clamp(16px,2vw,19px);line-height:1.7}.hero-stats{flex-wrap:wrap;align-items:center;gap:32px;display:flex}.hero-stat-num{color:var(--text-primary);font-size:28px;font-weight:800;display:block}.hero-stat-label{color:var(--text-muted);font-size:13px;font-weight:500}.hero-divider{background:var(--border);width:1px;height:40px}.filter-section{top:var(--nav-h);z-index:50;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);background:#fffffff2;padding:14px 0;position:sticky}.filter-inner{flex-wrap:wrap;align-items:center;gap:12px;max-width:1240px;margin:0 auto;padding:0 24px;display:flex}.filter-btn{color:var(--text-secondary);border:1px solid var(--border);background:var(--surface);transition:all var(--transition);white-space:nowrap;border-radius:40px;padding:7px 16px;font-size:13px;font-weight:500}.filter-btn:hover{border-color:var(--dsu-blue);color:var(--dsu-blue);background:var(--accent-light)}.filter-btn.active{background:var(--dsu-blue);color:#fff;border-color:var(--dsu-blue)}.search-wrap{margin-left:auto;position:relative}.search-input{border:1px solid var(--border);width:220px;transition:all var(--transition);color:var(--text-primary);background:#fff;border-radius:40px;outline:none;padding:8px 14px 8px 38px;font-family:inherit;font-size:13px}.search-input:focus{border-color:var(--dsu-blue);width:260px;box-shadow:0 0 0 3px #0057a815}.search-icon{color:var(--text-muted);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.listing-section{padding:48px 0 80px}.section-header{justify-content:space-between;align-items:baseline;margin-bottom:32px;display:flex}.section-title{color:var(--text-primary);font-size:22px;font-weight:700}.results-count{color:var(--text-muted);font-size:14px}.blog-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:28px;display:grid}.blog-card{border:1px solid var(--border);border-radius:var(--radius-lg);transition:all var(--transition);cursor:pointer;background:#fff;flex-direction:column;display:flex;overflow:hidden}.blog-card:hover{box-shadow:var(--shadow-hover);border-color:#0000;transform:translateY(-4px)}.card-body{flex-direction:column;flex:1;padding:32px;display:flex}.card-top-meta{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.card-category{letter-spacing:.05em;text-transform:uppercase;background:var(--surface-2);color:var(--dsu-blue);border:1px solid var(--border);border-radius:4px;padding:4px 12px;font-size:11px;font-weight:700}.card-num{color:var(--text-muted);font-size:12px;font-weight:700}.card-title{color:var(--text-primary);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-bottom:12px;font-family:Playfair Display,Georgia,serif;font-size:22px;font-weight:800;line-height:1.35;display:-webkit-box;overflow:hidden}.card-excerpt{color:var(--text-secondary);-webkit-line-clamp:6;-webkit-box-orient:vertical;flex:1;margin-bottom:24px;font-size:15px;line-height:1.7;display:-webkit-box;overflow:hidden}.card-footer{border-top:1px solid var(--border-light);justify-content:space-between;align-items:center;padding-top:16px;display:flex}.card-author{color:var(--text-secondary);font-size:12px;font-weight:600}.card-date{color:var(--text-muted);font-size:12px}.card-arrow{background:var(--accent-light);width:32px;height:32px;color:var(--dsu-blue);transition:all var(--transition);border-radius:50%;justify-content:center;align-items:center;font-size:14px;display:flex}.blog-card:hover .card-arrow{background:var(--dsu-blue);color:#fff;transform:translate(2px)}.card-header{isolation:isolate}.card-header:after{content:"";pointer-events:none;z-index:0;position:absolute;inset:0}.card-category,.card-num{z-index:1;position:relative}.no-results{text-align:center;color:var(--text-muted);padding:80px 24px}.no-results-icon{margin-bottom:12px;font-size:48px}.post-page{background:#fff}.post-hero{height:300px;margin-top:var(--nav-h);border-bottom:1px solid var(--border);background:linear-gradient(#fff,#f3f4f6);align-items:flex-end;display:flex;position:relative;overflow:hidden}.post-hero-overlay{display:none}.post-hero-content{z-index:2;width:100%;padding:40px;position:relative}.breadcrumb{align-items:center;gap:10px;display:flex}.breadcrumb-back{color:var(--text-secondary);border:1px solid var(--border);transition:all var(--transition);background:#fff;border-radius:40px;align-items:center;gap:6px;padding:6px 14px;font-size:14px;font-weight:500;display:inline-flex}.breadcrumb-back:hover{background:var(--surface-2);color:var(--text-primary)}.breadcrumb-cat{background:var(--dsu-blue);color:#fff;letter-spacing:.05em;text-transform:uppercase;border-radius:40px;padding:4px 12px;font-size:11px;font-weight:600}.post-article{padding:0 24px 80px}.post-article-inner{max-width:760px;margin:0 auto;padding-top:48px}.post-title{color:var(--text-primary);letter-spacing:-.02em;margin-bottom:20px;font-family:Playfair Display,Georgia,serif;font-size:clamp(28px,4vw,46px);font-weight:800;line-height:1.15}.post-subtitle{color:var(--text-secondary);margin-bottom:28px;font-size:19px;font-style:italic;line-height:1.7}.post-meta-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:32px;display:flex}.post-author-block{align-items:center;gap:12px;display:flex}.post-author-avatar{background:var(--dsu-blue);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:11px;font-weight:800;display:flex}.post-author-label{color:var(--text-muted);margin-bottom:2px;font-size:11px;display:block}.post-author-name{color:var(--text-primary);font-size:15px;font-weight:600}.post-meta-right{align-items:center;gap:20px;display:flex}.post-date-block,.post-read-block{color:var(--text-secondary);align-items:center;gap:6px;font-size:13px;display:flex}.post-divider{border:none;border-top:1px solid var(--border);margin:28px 0}.post-content{color:var(--text-primary);font-size:17px;line-height:1.8}.post-content p{margin-bottom:22px}.post-content h2{color:var(--text-primary);margin:36px 0 14px;font-size:22px;font-weight:700}.post-content h3{color:var(--text-primary);margin:28px 0 10px;font-size:18px;font-weight:600}.post-content ul,.post-content ol{margin:0 0 22px 24px;list-style:outside}.post-content ol{list-style:decimal}.post-content li{margin-bottom:8px}.post-content strong{font-weight:700}.post-content blockquote{border-left:3px solid var(--dsu-blue);background:var(--accent-light);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--text-secondary);margin:28px 0;padding:16px 24px;font-style:italic}.post-author-card{border-radius:var(--radius-lg);background:var(--surface-2);border:1px solid var(--border);align-items:flex-start;gap:20px;margin-top:48px;padding:28px;display:flex}.post-author-card-avatar{background:var(--dsu-blue);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:60px;height:60px;font-size:13px;font-weight:800;display:flex}.post-author-card-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:4px;font-size:11px}.post-author-card-name{color:var(--text-primary);margin-bottom:8px;font-size:17px;font-weight:700}.post-author-card-bio{color:var(--text-secondary);font-size:14px;line-height:1.6}.post-nav{flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:48px;display:flex}.post-nav-prev,.post-nav-next{border:1px solid var(--border);border-radius:var(--radius-md);min-width:200px;transition:all var(--transition);background:#fff;flex:1;padding:20px 24px;display:block}.post-nav-prev:hover,.post-nav-next:hover{border-color:var(--dsu-blue);background:var(--accent-light);transform:translateY(-2px)}.post-nav-next{text-align:right}.post-nav-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:6px;font-size:11px;display:block}.post-nav-title{color:var(--text-primary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;font-weight:600;display:-webkit-box;overflow:hidden}.footer{background:var(--dsu-dark);color:#fff;padding:60px 0 0}.footer-inner{grid-template-columns:2fr 1fr 1fr;gap:48px;max-width:1240px;margin:0 auto;padding:0 24px 48px;display:grid}.footer-logo{align-items:center;gap:12px;margin-bottom:16px;display:flex}.footer-logo-mark{background:var(--dsu-blue);color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:12px;font-weight:800;display:flex}.footer-logo-name{font-size:16px;font-weight:700;line-height:1.3}.footer-logo-tagline{color:#ffffff80;font-size:12px}.footer-desc{color:#ffffff80;max-width:300px;font-size:14px;line-height:1.7}.footer-links-title{text-transform:uppercase;letter-spacing:.1em;color:#fff6;margin-bottom:16px;font-size:12px;font-weight:700}.footer-link{color:#fff9;transition:color var(--transition);margin-bottom:10px;font-size:14px;display:block}.footer-link:hover{color:#fff}.footer-bottom{color:#ffffff59;border-top:1px solid #ffffff14;flex-wrap:wrap;justify-content:space-between;gap:8px;max-width:1240px;margin:0 auto;padding:20px 24px;font-size:13px;display:flex}.admin-page{background:var(--surface-2);min-height:100vh;padding-top:var(--nav-h)}.admin-hero{background:linear-gradient(135deg,#0a0f1e 0%,#0057a8 60%,#1d4ed8 100%);padding:48px 24px}.admin-hero-inner{max-width:1240px;margin:0 auto}.admin-badge{color:#fff;background:#ffffff26;border:1px solid #ffffff40;border-radius:40px;align-items:center;gap:8px;margin-bottom:16px;padding:5px 14px;font-size:12px;font-weight:600;display:inline-flex}.admin-hero h1{color:#fff;margin-bottom:10px;font-family:Playfair Display,Georgia,serif;font-size:clamp(28px,4vw,42px);font-weight:800;line-height:1.15}.admin-hero p{color:#ffffffb3;max-width:560px;font-size:16px}.admin-layout{grid-template-columns:1fr 1fr;align-items:start;gap:32px;max-width:1240px;margin:0 auto;padding:32px 24px 80px;display:grid}.admin-form-panel{border-radius:var(--radius-xl);border:1px solid var(--border);background:#fff;overflow:hidden}.admin-form-header{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:20px 28px;display:flex}.admin-form-icon{background:var(--accent-light);width:36px;height:36px;color:var(--dsu-blue);border-radius:8px;justify-content:center;align-items:center;font-size:18px;display:flex}.admin-form-header h2{font-size:16px;font-weight:700}.admin-form-header p{color:var(--text-muted);margin-top:1px;font-size:13px}.admin-form{flex-direction:column;gap:20px;padding:28px;display:flex}.field-group{flex-direction:column;gap:6px;display:flex}.field-label{color:var(--text-primary);align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.field-required{color:#ef4444;font-size:10px}.field-hint{color:var(--text-muted);margin-top:2px;font-size:11px}.field-input,.field-textarea,.field-select{border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color var(--transition),box-shadow var(--transition);color:var(--text-primary);background:#fff;outline:none;width:100%;padding:10px 14px;font-family:inherit;font-size:14px}.field-input:focus,.field-textarea:focus,.field-select:focus{border-color:var(--dsu-blue);box-shadow:0 0 0 3px #0057a815}.field-textarea{resize:vertical;min-height:140px;line-height:1.6}.theme-picker{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.theme-swatch{cursor:pointer;width:36px;height:36px;transition:all var(--transition);border:2px solid #0000;border-radius:8px;flex-shrink:0}.theme-swatch:hover{transform:scale(1.1)}.theme-swatch.selected{box-shadow:0 0 0 3px var(--dsu-blue),0 2px 8px #0003;border-color:#fff}.admin-actions{border-top:1px solid var(--border);gap:12px;margin-top:4px;padding-top:8px;display:flex}.btn-primary{border-radius:var(--radius-sm);background:var(--dsu-blue);color:#fff;transition:all var(--transition);border:none;flex:1;padding:12px 24px;font-size:14px;font-weight:600}.btn-primary:hover{box-shadow:var(--shadow-md);background:#004a90;transform:translateY(-1px)}.btn-secondary{border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--text-secondary);transition:all var(--transition);background:#fff;padding:12px 20px;font-size:14px;font-weight:500}.btn-secondary:hover{border-color:var(--dsu-blue);color:var(--dsu-blue)}.admin-right{flex-direction:column;gap:24px;display:flex}.admin-preview-panel{border-radius:var(--radius-xl);border:1px solid var(--border);background:#fff;overflow:hidden}.admin-preview-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.admin-preview-header h3{font-size:14px;font-weight:700}.preview-live-dot{color:#10b981;align-items:center;gap:6px;font-size:12px;font-weight:500;display:flex}.preview-live-dot:before{content:"";background:#10b981;border-radius:50%;width:6px;height:6px;animation:2s infinite pulse}.template-guide{border-radius:var(--radius-xl);border:1px solid var(--border);background:#fff;overflow:hidden}.template-guide-header{border-bottom:1px solid var(--border);background:linear-gradient(135deg,#f9fafb,#f3f4f6);padding:16px 24px}.template-guide-header h3{margin-bottom:2px;font-size:14px;font-weight:700}.template-guide-header p{color:var(--text-muted);font-size:12px}.template-fields{flex-direction:column;gap:12px;padding:20px 24px;display:flex}.template-field{border-radius:var(--radius-sm);border:1px solid var(--border-light);background:var(--surface-2);align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.template-field-num{background:var(--dsu-blue);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;font-weight:800;display:flex}.template-field-name{color:var(--text-primary);margin-bottom:2px;font-size:13px;font-weight:700}.template-field-desc{color:var(--text-muted);font-size:12px}.copy-output{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);white-space:pre-wrap;word-break:break-all;max-height:200px;padding:16px;font-family:SF Mono,Fira Code,monospace;font-size:11px;line-height:1.6;overflow-y:auto}.copy-output-wrap{flex-direction:column;gap:8px;display:flex}.copy-output-actions{gap:8px;display:flex}.toast{z-index:200;border-radius:var(--radius-md);color:#fff;box-shadow:var(--shadow-lg);background:#10b981;align-items:center;gap:10px;padding:12px 20px;font-size:14px;font-weight:500;animation:.3s slideUp;display:flex;position:fixed;bottom:24px;right:24px}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (width<=900px){.blog-grid{grid-template-columns:repeat(2,1fr)}.footer-inner{grid-template-columns:1fr 1fr}}@media (width<=640px){.blog-grid{grid-template-columns:1fr}.filter-inner{gap:8px}.search-wrap,.search-input{width:100%}.footer-inner{grid-template-columns:1fr}.post-meta-row{flex-direction:column;align-items:flex-start}.post-nav{flex-direction:column}.hero-stats{gap:20px}}.login-screen{min-height:calc(100vh - var(--nav-h));background:var(--surface-2);justify-content:center;align-items:center;padding:24px;display:flex}.login-card{background:var(--surface);box-shadow:var(--shadow-lg);text-align:center;border:1px solid var(--border);border-radius:16px;width:100%;max-width:400px;padding:40px}.login-header{margin-bottom:32px}.login-icon{margin-bottom:16px;font-size:48px}.login-header h2{color:var(--text-primary);margin-bottom:8px;font-size:24px;font-weight:800}.login-header p{color:var(--text-secondary);font-size:14px;line-height:1.5}.login-form{flex-direction:column;gap:16px;display:flex}.login-field{text-align:left;flex-direction:column;gap:8px;display:flex}.login-field input{border:1px solid var(--border);width:100%;transition:border-color var(--transition);background:var(--surface-2);border-radius:8px;outline:none;padding:14px 16px;font-family:inherit;font-size:15px}.login-field input:focus{border-color:var(--dsu-blue)}.login-field input.input-error{border-color:var(--error);background:#fef2f2}.login-error{color:var(--error);font-size:12px;font-weight:500}.login-btn{background:var(--dsu-blue);color:#fff;cursor:pointer;width:100%;transition:all var(--transition);border:none;border-radius:8px;margin-top:8px;padding:14px 24px;font-size:15px;font-weight:600}.login-btn:hover{background:#004a90;transform:translateY(-1px)}
