.header{position:sticky;top:0;z-index:100;background:var(--bg);border-bottom:1px solid var(--line)}.header-inner{max-width:var(--measure);margin:0 auto;padding:0 2rem;height:3.5rem;display:flex;align-items:center;gap:2rem}.header-logo{font-size:.9rem;font-weight:600;color:var(--text-bright)}.header-nav{display:flex;gap:1.5rem;margin-left:auto}.header-nav a{font-family:var(--mono);font-size:.78rem;color:var(--text-faint);transition:color .15s ease}.header-nav a:hover{color:var(--text)}.header-nav a.active{color:var(--text-bright);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:6px}.status-pill{display:inline-flex;align-items:center;gap:.5rem;padding:.3rem .7rem;border:1px solid var(--line);border-radius:2px;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.7rem;color:var(--text-dim);transition:border-color .15s ease,color .15s ease}.status-pill:hover{border-color:var(--line-strong);color:var(--text)}.status-pill.is-operational .status-dot{background:var(--up);animation:dot-pulse 2.4s ease-out infinite}.status-pill.is-degraded .status-dot{background:var(--degraded)}.status-pill.is-degraded{color:var(--degraded)}.status-pill.is-down .status-dot{background:var(--down)}.status-pill.is-down{color:var(--down)}.status-pill.is-unknown .status-dot,.status-pill.is-pending .status-dot{background:none;border:1px dashed var(--text-ghost)}@media(max-width:640px){.header-inner{padding:0 1.25rem;gap:1.25rem}.header-nav{gap:1rem}}@media(max-width:420px){.status-pill-label{display:none}}.hero{padding-top:3.5rem}.hero-meter-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;font-size:.72rem;color:var(--text-faint)}.hero-meter-more{flex:none;color:var(--text-faint);transition:color .15s ease}.hero-meter-more:hover{color:var(--accent-bright)}.hero-figures{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem;margin-top:1.75rem}.hero-figure-value{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:clamp(2.3rem,5.2vw,3.9rem);font-weight:600;line-height:1.05;letter-spacing:-.03em;color:var(--text-bright);transition:color .5s ease}.hero-figure-unit{margin-left:.28em;font-size:.34em;font-weight:500;letter-spacing:0;color:var(--text-dim)}.hero-figure-label{display:flex;align-items:center;gap:.5rem;margin-top:.6rem;font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;color:var(--text-faint)}.hero-figure.is-pending .hero-figure-value{color:var(--text-ghost)}.hero-figure.is-degraded .hero-figure-value{color:var(--degraded)}.hero-figure.is-fresh .hero-figure-value{color:var(--accent-bright);transition:none}.hero-meter-fallback{margin-top:1.5rem;font-size:.75rem;color:var(--text-faint)}.hero-id{margin-top:3.5rem;padding-top:2.75rem;border-top:1px solid var(--line)}.hero-id h1{font-size:clamp(1.9rem,3.2vw,2.5rem);font-weight:700;letter-spacing:-.02em;color:var(--text-bright)}.hero-role{margin-top:.5rem;font-size:1.05rem;color:var(--text)}.hero-intro{margin-top:1.5rem;max-width:58ch;font-size:.95rem;line-height:1.85;color:var(--text-dim)}.hero-links{display:flex;flex-wrap:wrap;gap:1.5rem;margin-top:1.9rem;font-size:.8rem}@media(max-width:860px){.hero-figures{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.75rem 1.25rem}}@media(max-width:420px){.hero-meter-head{flex-direction:column;gap:.3rem}}.project-list{display:flex;flex-direction:column}.project{display:grid;grid-template-columns:11.5rem minmax(0,1fr);gap:2.5rem;padding:2.75rem 0;border-top:1px solid var(--line)}.project-meta{display:flex;flex-direction:column;align-items:flex-start;gap:.7rem;font-size:.74rem;color:var(--text-faint)}.project-state{display:inline-flex;align-items:center;gap:.5rem;color:var(--text-dim)}.project-state.is-degraded{color:var(--degraded)}.project-state.is-down{color:var(--down)}.project-title{font-size:1.4rem;font-weight:700;letter-spacing:-.01em;color:var(--text-bright)}.project-lede{margin-top:.55rem;max-width:62ch;font-size:.95rem;color:var(--text)}.project-points{display:flex;flex-direction:column;gap:.5rem;margin-top:1.2rem;max-width:70ch}.project-points li{position:relative;padding-left:1.15rem;font-size:.9rem;line-height:1.7;color:var(--text-dim)}.project-points li:before{content:"";position:absolute;left:0;top:.78em;width:.4rem;height:1px;background:var(--text-ghost)}.project-trouble{margin-top:1.35rem;padding-left:1.15rem;border-left:2px solid var(--line-strong);max-width:70ch}.project-trouble-label{display:block;margin-bottom:.4rem;font-size:.66rem;letter-spacing:.16em;color:var(--text-faint)}.project-trouble p{font-size:.9rem;line-height:1.75;color:var(--text-dim)}.project-foot{display:flex;flex-wrap:wrap;align-items:baseline;gap:.75rem 1.5rem;margin-top:1.5rem;font-size:.74rem}.project-stack{color:var(--text-ghost)}.project-links{display:inline-flex;gap:1.25rem;margin-left:auto}.projects-archive-title{margin-top:4.5rem}.archive-list{display:flex;flex-direction:column}.archive-row{display:grid;grid-template-columns:9.5rem minmax(0,1fr) 3.5rem auto;align-items:baseline;gap:1.5rem;padding:.95rem .5rem;margin:0 -.5rem;border-top:1px solid var(--line);transition:background .15s ease}.archive-list .archive-row:last-child{border-bottom:1px solid var(--line)}.archive-row:hover{background:#f2ede308}.archive-name{font-size:.95rem;font-weight:600;color:var(--text);transition:color .15s ease}.archive-desc{font-size:.85rem;color:var(--text-faint)}.archive-year{font-size:.74rem;color:var(--text-ghost)}.archive-link{font-size:.74rem;color:var(--text-faint);transition:color .15s ease}.archive-row:hover .archive-name{color:var(--text-bright)}.archive-row:hover .archive-link{color:var(--accent-bright)}@media(max-width:820px){.project{grid-template-columns:minmax(0,1fr);gap:1rem;padding:2.25rem 0}.project-meta{flex-direction:row;align-items:center;gap:1.25rem}.archive-row{grid-template-columns:minmax(0,1fr) auto;gap:.35rem 1rem;padding:.9rem .5rem}.archive-name{grid-column:1;grid-row:1}.archive-link{grid-column:2;grid-row:1;justify-self:end}.archive-desc{grid-column:1;grid-row:2}.archive-year{grid-column:2;grid-row:2;justify-self:end}}.timeline-list{display:flex;flex-direction:column}.timeline-row{display:grid;grid-template-columns:11.5rem 3.5rem minmax(0,1fr);gap:2rem;padding:1.6rem 0;border-top:1px solid var(--line)}.timeline-list .timeline-row:last-child{border-bottom:1px solid var(--line)}.timeline-date{font-size:.78rem;color:var(--text-dim);white-space:nowrap}.timeline-end{color:var(--text-ghost)}.timeline-kind{font-size:.68rem;letter-spacing:.12em;color:var(--text-ghost);padding-top:.15rem}.timeline-kind.is-수상{color:var(--accent)}.timeline-title{font-size:1.02rem;font-weight:600;color:var(--text-bright)}.timeline-org{margin-top:.25rem;font-size:.86rem;color:var(--text-dim)}.timeline-note{margin-top:.25rem;font-size:.84rem;color:var(--text-faint)}.timeline-details{display:flex;flex-direction:column;gap:.45rem;margin-top:.8rem;max-width:68ch}.timeline-details li{position:relative;padding-left:1.15rem;font-size:.88rem;line-height:1.7;color:var(--text-dim)}.timeline-details li:before{content:"";position:absolute;left:0;top:.78em;width:.4rem;height:1px;background:var(--text-ghost)}@media(max-width:820px){.timeline-row{grid-template-columns:minmax(0,1fr);gap:.4rem;padding:1.4rem 0}.timeline-date{display:flex;align-items:baseline;gap:.75rem}.timeline-kind{display:none}.timeline-body{margin-top:.15rem}}.stack-runtimes{display:flex;flex-wrap:wrap;gap:.9rem 2rem;padding:1.4rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:.85rem}.stack-runtime{display:inline-flex;align-items:baseline;gap:.5rem}.stack-runtime-name{color:var(--text)}.stack-runtime-count{font-size:.74rem;color:var(--text-ghost)}.stack-runtime-count.is-up{color:var(--up)}.stack-runtime-count.is-degraded{color:var(--degraded)}.stack-runtime-count.is-down{color:var(--down)}.stack-tools{margin:0;display:flex;flex-direction:column}.stack-tool-row{display:grid;grid-template-columns:11.5rem minmax(0,1fr);gap:2rem;padding:1.1rem 0;border-bottom:1px solid var(--line)}.stack-tool-row dt{font-size:.72rem;letter-spacing:.08em;color:var(--text-faint);padding-top:.2rem}.stack-tool-row dd{margin:0;font-size:.9rem;line-height:1.75;color:var(--text-dim)}@media(max-width:820px){.stack-tool-row{grid-template-columns:minmax(0,1fr);gap:.35rem}}.footprints-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem 2rem}.footprints-year-label{display:flex;align-items:baseline;gap:.75rem;padding-bottom:.8rem;border-bottom:1px solid var(--line)}.footprints-year-number{font-size:1.05rem;font-weight:600;color:var(--text-bright)}.footprints-year-count{font-size:.72rem;color:var(--text-faint)}.footprints-year ul{display:flex;flex-direction:column;margin-top:.9rem;gap:.55rem}.footprints-year li{display:flex;align-items:baseline;gap:.8rem}.footprint-date{flex:none;font-size:.7rem;color:var(--text-ghost)}.footprint-name{font-size:.84rem;line-height:1.55;color:var(--text-dim)}.footprints-year li.is-highlight .footprint-name{color:var(--text-bright)}.footprint-tag{margin-left:.6rem;font-size:.66rem;letter-spacing:.1em;color:var(--accent);white-space:nowrap}@media(max-width:900px){.footprints-columns{grid-template-columns:minmax(0,1fr);gap:2rem}}.about-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"quote quote portrait" "currently likes portrait" "night night bunny";gap:2.5rem 2rem}.about-quote{grid-area:quote;margin:0}.about-portrait{grid-area:portrait}.about-currently{grid-area:currently}.about-likes{grid-area:likes}.about-night{grid-area:night}.about-bunny{grid-area:bunny}.about-quote,.about-list{border-top:1px solid var(--line);padding-top:1.4rem}.about-quote p{font-size:clamp(1.4rem,2.6vw,2rem);font-weight:700;line-height:1.45;letter-spacing:-.01em;color:var(--text-bright)}.about-quote cite{display:block;margin-top:.9rem;font-size:.7rem;font-style:normal;letter-spacing:.14em;color:var(--text-faint)}.about-cell-title{font-size:.72rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint)}.about-list ul{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.about-list li{position:relative;padding-left:1.15rem;font-size:.9rem;line-height:1.7;color:var(--text-dim)}.about-list li:before{content:"";position:absolute;left:0;top:.78em;width:.4rem;height:1px;background:var(--text-ghost)}.about-photo{margin:0;display:flex;flex-direction:column;gap:.6rem}.about-photo img{width:100%;height:100%;min-height:0;object-fit:cover;border-radius:2px;filter:saturate(.92)}.about-portrait img{aspect-ratio:3 / 4}.about-night img{aspect-ratio:21 / 9}.about-bunny img{aspect-ratio:4 / 3}.about-photo figcaption{font-size:.68rem;color:var(--text-ghost)}.footprints-section{padding-top:1rem}.contact{padding-top:1rem;padding-bottom:6rem}.contact-lede{font-size:1.05rem;color:var(--text)}.contact-links{display:flex;flex-wrap:wrap;gap:1.5rem;margin-top:1.5rem;font-size:.82rem}@media(max-width:900px){.about-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"quote quote" "currently likes" "portrait bunny" "night night";gap:2rem 1.5rem}}@media(max-width:560px){.about-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"quote" "currently" "likes" "portrait" "night" "bunny"}}.tree{overflow-x:auto;padding:1.5rem .5rem;margin:0 -.5rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.82rem;line-height:1.6}.tree-root+.tree-root{margin-top:1.75rem;padding-top:1.5rem;border-top:1px dashed var(--line-strong)}.tree-row{display:grid;grid-template-columns:minmax(20rem,1fr) 6rem 4.5rem 5.5rem 5rem;align-items:center;gap:.75rem;min-width:46rem;padding:.2rem .35rem}.tree-row.is-root{grid-template-columns:minmax(0,1fr) auto;padding-bottom:.5rem}.tree-row.is-group{grid-template-columns:minmax(0,1fr);padding-top:.7rem}.tree-row.is-container:hover{background:#f2ede309}.tree-label{display:flex;align-items:center;gap:.5rem;min-width:0;padding:0;border:0;background:none;font:inherit;color:inherit;text-align:left;text-decoration:none}.tree-label.is-clickable{cursor:pointer}.tree-label.is-clickable:hover .tree-group-name{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px}.tree-label.is-clickable:focus-visible{outline:1px solid var(--accent);outline-offset:3px}.tree-glyph{flex:none;white-space:pre;color:var(--text-ghost);-webkit-user-select:none;user-select:none}.tree-domain{font-size:1.05rem;font-weight:700;color:var(--text-bright)}.tree-uptime{font-size:.72rem;color:var(--text-dim);white-space:nowrap}.tree-group-name{font-family:var(--sans);font-size:.95rem;font-weight:600;color:var(--text-bright);white-space:nowrap}.tree-kind{flex:none;font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;color:var(--text-faint);white-space:nowrap}.tree-route{color:var(--text-faint);font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-name{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-note{flex:none;font-family:var(--sans);font-size:.7rem;color:var(--text-faint);white-space:nowrap}.tree-runtime,.tree-port,.tree-latency{font-size:.74rem;white-space:nowrap}.tree-runtime{color:var(--text-dim)}.tree-port{color:var(--text-faint)}.tree-latency{color:var(--up);text-align:right}.tree-row.is-internal .tree-name,.tree-row.is-internal .tree-runtime{color:var(--text-faint)}.tree-dot{flex:none;width:6px;height:6px;border-radius:50%;background:var(--idle)}.tree-dot.is-up{background:var(--up);animation:dot-pulse 2.4s ease-out infinite}.tree-dot.is-down{background:var(--down)}.tree-dot.is-degraded{background:var(--degraded)}.tree-dot.is-internal{background:none;border:1px solid var(--idle)}.tree-dot.is-unknown{background:none;border:1px dashed var(--text-ghost)}.tree-spark{display:flex;align-items:center}.spark{width:100%;height:18px}.spark path{fill:none;stroke:var(--idle);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.tree-row.is-up .spark path{stroke:var(--up)}.tree-row.is-down .spark path{stroke:var(--down)}.tree-row.is-degraded .spark path{stroke:var(--degraded)}.map-resources{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;margin-top:2.5rem}.gauge{display:flex;flex-direction:column;gap:.5rem}.gauge-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.gauge-label{font-size:.8rem;font-weight:600;color:var(--text)}.gauge-detail{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.72rem;color:var(--text-dim)}.gauge-track{height:4px;background:var(--line);overflow:hidden}.gauge-fill{height:100%;transition:width .6s ease,background-color .6s ease}.gauge-fill.is-up{background:var(--up)}.gauge-fill.is-degraded{background:var(--degraded)}.gauge-fill.is-down{background:var(--down)}.map-host{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--line);font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.75rem;color:var(--text-faint)}@media(max-width:900px){.map-resources{grid-template-columns:minmax(0,1fr);gap:1rem}}@media(max-width:560px){.tree{font-size:.76rem}}@media(prefers-reduced-motion:reduce){.tree-dot.is-up{animation:none}}.incidents-list{display:flex;flex-direction:column}.incident{padding:2.25rem 0;border-top:1px solid var(--line)}.incidents-list .incident:last-child{border-bottom:1px solid var(--line)}.incident-head{display:flex;align-items:baseline;gap:1rem;font-size:.72rem}.incident-kind{letter-spacing:.12em}.incident-kind.is-incident{color:var(--degraded)}.incident-kind.is-decision{color:var(--text-faint)}.incident-date{color:var(--text-ghost)}.incident-title{margin-top:.6rem;font-size:1.1rem;font-weight:600;color:var(--text-bright)}.incident-body{display:flex;flex-direction:column;gap:.75rem;margin:1.25rem 0 0}.incident-row{display:grid;grid-template-columns:3.5rem minmax(0,1fr);gap:1.25rem;max-width:78ch}.incident-row dt{font-size:.72rem;letter-spacing:.14em;color:var(--text-faint);padding-top:.25rem}.incident-row dd{margin:0;font-size:.9rem;line-height:1.75;color:var(--text-dim)}.incident-row.is-fix dd{color:var(--text)}.incident-tags{margin-top:1.25rem;font-size:.72rem;color:var(--text-ghost)}@media(max-width:640px){.incident-row{grid-template-columns:minmax(0,1fr);gap:.25rem}}.system-orbit{max-width:1200px;margin:0 auto;padding:0 2rem}.orbit-canvas{position:relative;height:clamp(420px,62vh,680px);border-radius:2px;border:1px solid var(--line);overflow:hidden}.orbit-canvas canvas{display:block;touch-action:pan-y!important}.orbit-label-wrapper{pointer-events:none}.orbit-domain-label{display:block;padding:.12rem .4rem;border-radius:2px;background:#15131299;border:1px solid var(--line);font-family:var(--mono);font-size:.6rem;color:var(--text-ghost);white-space:nowrap;-webkit-user-select:none;user-select:none}.orbit-planet-label{display:block;padding:.14rem .44rem;border-radius:2px;background:#151312d9;border:1px solid var(--line-strong);font-family:var(--sans);font-size:.68rem;font-weight:600;color:var(--text);white-space:nowrap;-webkit-user-select:none;user-select:none}.orbit-planet-label.is-up{border-color:#57ab6a73}.orbit-planet-label.is-alive{border-color:var(--line-strong)}.orbit-planet-label.is-degraded{border-color:#d28a2c8c;color:var(--degraded)}.orbit-planet-label.is-stopped{border-color:#ce4f448c;color:var(--down)}.orbit-hud{position:absolute;top:1rem;left:1rem;display:flex;flex-wrap:wrap;gap:.4rem;pointer-events:none}.orbit-hud-item{padding:.3rem .6rem;border-radius:2px;background:#151312d9;border:1px solid var(--line);font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.7rem;color:var(--text-dim)}.orbit-hud-item strong{color:var(--text-bright);font-weight:600}.orbit-hud-item.is-up{color:var(--up);border-color:#57ab6a59}.orbit-hud-item.is-down{color:var(--down);border-color:#ce4f4466}.orbit-detail{position:absolute;left:1rem;bottom:1rem;display:flex;flex-direction:column;gap:.2rem;max-width:min(24rem,calc(100% - 2rem));padding:.75rem .9rem;border-radius:2px;background:#151312eb;border:1px solid var(--line-strong);pointer-events:none}.orbit-detail-state{font-family:var(--mono);font-size:.66rem;color:var(--text-faint)}.orbit-detail-state.is-up{color:var(--up)}.orbit-detail-state.is-alive{color:var(--info)}.orbit-detail-state.is-degraded{color:var(--degraded)}.orbit-detail-state.is-stopped{color:var(--down)}.orbit-tick{transition:color .25s ease,border-color .25s ease}.orbit-tick.is-fresh{color:var(--accent-bright);border-color:#c9a87673}.orbit-legend{position:absolute;top:1rem;right:1rem;display:flex;flex-direction:column;align-items:flex-end;gap:.3rem;pointer-events:none}.orbit-legend-item{display:flex;align-items:center;gap:.4rem;font-family:var(--mono);font-size:.64rem;color:var(--text-faint)}.orbit-legend-item:after{content:"";width:7px;height:7px;border-radius:50%;flex:none}.orbit-legend-item.is-up:after{background:var(--up)}.orbit-legend-item.is-alive:after{background:var(--info)}.orbit-legend-item.is-degraded:after{background:var(--degraded)}.orbit-legend-item.is-stopped:after{background:var(--down)}@media(max-width:720px){.orbit-legend{display:none}}.orbit-detail-name{font-family:var(--mono);font-size:.85rem;color:var(--text-bright);word-break:break-all}.orbit-detail-meta{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.7rem;color:var(--text-dim)}.orbit-hint{position:absolute;left:1rem;bottom:1rem;font-family:var(--mono);font-size:.68rem;color:var(--text-ghost);pointer-events:none}.orbit-fallback{display:grid;place-items:center;height:clamp(420px,62vh,680px);border-radius:2px;border:1px solid var(--line);font-family:var(--mono);font-size:.78rem;color:var(--text-faint)}@media(max-width:640px){.system-orbit{padding:0 1.25rem}.orbit-canvas{height:380px}.orbit-hint{font-size:.62rem}}.cv-root{min-height:100vh;padding:2.5rem 1.25rem 4rem;background:var(--bg)}.cv-toolbar{max-width:51rem;margin:0 auto 1.25rem;display:flex;align-items:baseline;justify-content:space-between;gap:1rem;font-size:.78rem}.cv-toolbar a{color:var(--text-faint);transition:color .15s ease}.cv-toolbar a:hover{color:var(--text-bright)}.cv-toolbar button{font-family:var(--mono);font-size:.78rem;color:var(--accent);transition:color .15s ease}.cv-toolbar button:hover{color:var(--accent-bright)}.cv-sheet{max-width:51rem;margin:0 auto;padding:3.5rem 3.25rem 3rem;background:#f6f3ec;color:#23211d;border-radius:2px;line-height:1.65}.cv-missing{font-family:var(--mono);font-size:.85rem;color:#6b665c}.cv-sheet a{color:inherit;text-decoration:underline;text-decoration-color:#23211d59;text-underline-offset:3px}.cv-head h1{font-size:1.9rem;font-weight:700;letter-spacing:-.02em}.cv-tagline{margin-top:.4rem;font-size:1rem;color:#45423b}.cv-contacts{margin-top:.8rem;font-size:.76rem;color:#6b665c}.cv-sep{color:#a49e91}.cv-section{margin-top:2.4rem}.cv-label{display:flex;align-items:center;gap:1rem;font-size:.7rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:#8a8478;margin-bottom:1.1rem}.cv-label:after{content:"";flex:1;height:1px;background:#23211d29}.cv-paragraph{font-size:.9rem;color:#3a372f;max-width:72ch}.cv-paragraph+.cv-paragraph{margin-top:.7rem}.cv-skills{margin:0;display:flex;flex-direction:column;gap:.55rem}.cv-skill-row{display:grid;grid-template-columns:9.5rem minmax(0,1fr);gap:1.25rem}.cv-skill-row dt{font-size:.8rem;font-weight:600;color:#45423b}.cv-skill-row dd{margin:0;font-size:.84rem;color:#57534a}.cv-row-head{display:flex;align-items:baseline;justify-content:space-between;gap:1.25rem}.cv-row-head h3{font-size:1rem;font-weight:700;color:#23211d}.cv-period{flex:none;font-size:.74rem;color:#8a8478}.cv-job+.cv-job,.cv-project+.cv-project{margin-top:1.8rem}.cv-block{margin-top:1.1rem}.cv-block h4{font-size:.9rem;font-weight:600;color:#33302a}.cv-block-meta{margin-top:.2rem;font-size:.72rem;color:#8a8478}.cv-sheet ul{margin-top:.55rem;display:flex;flex-direction:column;gap:.35rem}.cv-sheet li{position:relative;padding-left:1.05rem;font-size:.86rem;line-height:1.65;color:#45423b}.cv-sheet li:before{content:"";position:absolute;left:0;top:.75em;width:.38rem;height:1px;background:#a49e91}.cv-plain-list li{padding-left:0}.cv-plain-list li:before{content:none}.cv-plain-list li+li{margin-top:.8rem}.cv-detail{margin-top:.15rem;font-size:.8rem;color:#6b665c}.cv-links{margin-top:.5rem;font-size:.76rem;color:#57534a}.cv-extra{margin-top:1.6rem;font-size:.82rem;color:#6b665c}.cv-foot{margin-top:3rem;padding-top:1rem;border-top:1px solid rgba(35,33,29,.16);font-size:.7rem;color:#8a8478}@media(max-width:640px){.cv-sheet{padding:2.25rem 1.5rem}.cv-skill-row{grid-template-columns:minmax(0,1fr);gap:.15rem}.cv-row-head{flex-direction:column;gap:.15rem}}@media print{.cv-root{padding:0;background:#fff}.cv-toolbar{display:none}.cv-sheet{max-width:none;padding:0;background:#fff;color:#111;border-radius:0}.cv-sheet a{text-decoration:none;color:#111}.cv-section{break-inside:auto}.cv-job,.cv-project,.cv-block,.cv-plain-list li{break-inside:avoid}}@page{size:A4;margin:14mm 16mm}.intro-animation{position:fixed;inset:0;z-index:1000;display:flex;pointer-events:none}.intro-panel{flex:1;height:100%;background:#211d1a;border-right:1px solid rgba(242,237,227,.04);animation:intro-slide .65s cubic-bezier(.65,0,.35,1) both}.intro-panel:last-child{border-right:0}@keyframes intro-slide{0%{transform:translateY(0)}to{transform:translateY(101%)}}.footer{border-top:1px solid var(--line);margin-top:3rem}.footer-inner{max-width:var(--measure);margin:0 auto;padding:1.5rem 2rem 2rem;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.75rem 2rem;font-size:.72rem}.footer-note{color:var(--text-ghost)}.footer-links{display:flex;gap:1.25rem}.footer-links a{color:var(--text-faint);transition:color .15s ease}.footer-links a:hover{color:var(--text-bright)}@media(max-width:640px){.footer-inner{padding:1.5rem 1.25rem 2rem}}:root{color-scheme:dark;--bg: #151312;--bg-raised: #1c1917;--text-bright: #f2ede3;--text: #d7d0c2;--text-dim: #a49b8a;--text-faint: #7a7263;--text-ghost: #565049;--line: rgba(242, 237, 227, .14);--line-strong: rgba(242, 237, 227, .28);--accent: #c9a876;--accent-bright: #e4c795;--up: #57ab6a;--degraded: #d28a2c;--down: #ce4f44;--info: #cfc7b8;--idle: #565049;--sans: "Pretendard Variable", Pretendard, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans KR", sans-serif;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--measure: 1200px}*{box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{margin:0;background-color:var(--bg);color:var(--text);font-family:var(--sans);line-height:1.65;word-break:keep-all;-webkit-font-smoothing:antialiased}::selection{background:#c9a87647;color:var(--text-bright)}h1,h2,h3,h4,p{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}ul{margin:0;padding:0;list-style:none}img{display:block;max-width:100%}code,kbd,samp,pre,.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}:focus-visible{outline:1px solid var(--accent);outline-offset:3px}.section{max-width:var(--measure);margin:0 auto;padding:4.5rem 2rem}.section-title{display:flex;align-items:center;gap:1.25rem;margin:0 0 2.25rem;font-family:var(--mono);font-size:.78rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--text-faint)}.section-title:after{content:"";flex:1;height:1px;background:var(--line)}.section-lede{max-width:62ch;margin:-1.25rem 0 2.5rem;color:var(--text-dim);font-size:.95rem;line-height:1.75}.text-link{color:var(--accent);text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px;transition:color .15s ease,text-decoration-color .15s ease}.text-link:hover{color:var(--accent-bright);text-decoration-color:var(--accent-bright)}.status-dot{display:inline-block;flex:none;width:7px;height:7px;border-radius:50%;background:var(--idle)}.status-dot.is-up{background:var(--up);animation:dot-pulse 2.4s ease-out infinite}.status-dot.is-degraded{background:var(--degraded)}.status-dot.is-down{background:var(--down)}.status-dot.is-unknown{background:none;border:1px dashed var(--text-ghost)}@keyframes dot-pulse{0%{box-shadow:0 0 #57ab6a80}70%{box-shadow:0 0 0 6px #57ab6a00}to{box-shadow:0 0 #57ab6a00}}.page{animation:page-enter .22s ease both}@keyframes page-enter{0%{opacity:0}to{opacity:1}}@media(max-width:768px){.section{padding:3rem 1.25rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
