:root{--s9-void: #0a0a0f;--s9-surface-1: #13131a;--s9-surface-2: #1c1c26;--s9-text-1: #ede8f0;--s9-text-2: #a09aac;--s9-gold: #ffd97a;--s9-gold-soft: #ffe6a0;--s9-cerulean: #8ec8e0;--s9-mint: #8ae0cc;--s9-coral: #f0a0a0;--s9-border: rgba(255, 255, 255, .08);--s9-border-hover: rgba(255, 255, 255, .15);--modfolio-magic-heading: "goldenbook", "Noto Serif KR", serif;--modfolio-poetic-quote: "mrs-eaves-roman", "Noto Serif KR", serif;--modfolio-storybook-body: "adobe-caslon-pro", "Noto Serif KR", serif;--modfolio-warm-tech: "brandon-grotesque", "Pretendard", sans-serif;--modfolio-clear-data: "proxima-nova", "Pretendard", sans-serif;--s9-font-mono: "JetBrains Mono", monospace}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--modfolio-storybook-body);background:var(--s9-void);color:var(--s9-text-1);min-height:100vh;line-height:1.6}a{color:var(--s9-cerulean);text-decoration:none}a:hover{text-decoration:underline}.nav{display:flex;align-items:center;gap:2rem;padding:1rem 2rem;border-bottom:1px solid var(--s9-border);background:var(--s9-surface-1)}.nav-brand{font-family:var(--modfolio-magic-heading);font-size:1.125rem;font-weight:700;background:linear-gradient(135deg,var(--s9-cerulean),var(--s9-gold-soft));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.nav-links{display:flex;gap:1.5rem;list-style:none}.nav-links a{color:var(--s9-text-2);font-size:.875rem;font-family:var(--modfolio-clear-data);transition:color .2s}.nav-links a:hover,.nav-links a.active{color:var(--s9-text-1);text-decoration:none}.stats-bar{display:flex;gap:2rem;padding:1rem 2rem;border-bottom:1px solid var(--s9-border);font-family:var(--modfolio-clear-data);font-size:.8rem;color:var(--s9-text-2)}.stat-value{color:var(--s9-gold);font-weight:600}.container{max-width:1280px;margin:0 auto;padding:2rem}.page-title{font-family:var(--modfolio-magic-heading);font-size:1.5rem;font-weight:700;margin-bottom:1.5rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.group-title{grid-column:1 / -1;font-size:.75rem;font-family:var(--modfolio-clear-data);text-transform:uppercase;letter-spacing:.1em;color:var(--s9-text-2);padding-top:1rem;border-top:1px solid var(--s9-border);margin-bottom:.25rem}.group-title:first-child{border-top:none;padding-top:0}.app-card{background:var(--s9-surface-1);border:1px solid var(--s9-border);border-radius:12px;padding:1.25rem;transition:border-color .2s,box-shadow .2s}.app-card:hover{border-color:var(--s9-border-hover);box-shadow:0 0 20px #ffd97a0a}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.card-title{font-family:var(--modfolio-warm-tech);font-size:1rem;font-weight:600}.card-role{font-size:.8rem;color:var(--s9-text-2);margin-bottom:.75rem}.card-meta{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}.tag{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-family:var(--modfolio-clear-data);font-size:.7rem}.tag.framework{background:#8ec8e01f;color:var(--s9-cerulean)}.tag.version{background:#ffd97a1f;color:var(--s9-gold)}.card-domain{font-family:var(--modfolio-clear-data);font-size:.75rem;color:var(--s9-text-2)}.card-note{font-size:.75rem;color:var(--s9-text-2);margin-top:.5rem;font-style:italic}.critical-badge{font-family:var(--modfolio-clear-data);font-size:.6rem;color:var(--s9-coral);border:1px solid var(--s9-coral);border-radius:4px;padding:.1rem .35rem;margin-left:.5rem}.status-badge{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--modfolio-clear-data);font-size:.7rem}.status-dot{width:6px;height:6px;border-radius:50%}.status-dot.active,.status-dot.deployed{background:var(--s9-mint)}.status-dot.landing,.status-dot.scaffolded{background:var(--s9-gold)}.status-dot.planned{background:var(--s9-text-2)}.stats-bar .stat-active{color:var(--s9-mint)}.stats-bar .stat-landing{color:var(--s9-gold)}.stats-bar .stat-planned{color:var(--s9-text-2)}.app-card--active{border-color:#8ae0cc33}.app-card--landing{opacity:.75}.app-card--planned{opacity:.5}.tag.doppler{background:#a09aac1f;color:var(--s9-text-2)}.timeline{display:flex;flex-direction:column;gap:.75rem}.timeline-item{display:flex;gap:1rem;padding:1rem 1.25rem;background:var(--s9-surface-1);border:1px solid var(--s9-border);border-radius:8px}.timeline-date{font-family:var(--modfolio-clear-data);font-size:.75rem;color:var(--s9-text-2);min-width:80px;flex-shrink:0}.timeline-content{flex:1}.timeline-title{font-size:.9rem;font-weight:600}.type-badge{display:inline-block;font-family:var(--modfolio-clear-data);font-size:.65rem;padding:.1rem .4rem;border-radius:4px;margin-right:.5rem}.type-badge.review{background:#8ae0cc26;color:var(--s9-mint)}.type-badge.plan{background:#ffd97a26;color:var(--s9-gold)}.type-badge.adr{background:#8ec8e026;color:var(--s9-cerulean)}.board{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}@media(max-width:1024px){.board{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.board{grid-template-columns:1fr}}.board-column{background:var(--s9-surface-1);border:1px solid var(--s9-border);border-radius:12px;padding:1rem}.column-header{font-family:var(--modfolio-clear-data);font-size:.8rem;font-weight:600;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--s9-border)}.board-item{padding:.75rem;background:var(--s9-surface-2);border-radius:8px;margin-bottom:.5rem}.board-item-title{font-size:.85rem;font-weight:600;margin-bottom:.25rem}.board-item-meta{font-family:var(--modfolio-clear-data);font-size:.7rem;color:var(--s9-text-2)}
