:root{--font-serif:"Pretendard Variable";--font-display:"Pretendard Variable";--cream:#f5f0e8;--ink:#1a1a1a;--ink-light:#3a3a3a;--ink-faint:#8a8a8a;--dot-filled:#2c2c2c;--dot-border:#c0b8aa;--dot-current:#c0392b;--accent:#8b6914;--gold:#c9a227;--shadow:rgba(0,0,0,0.08)}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%}body{background:var(--cream);color:var(--ink);font-family:var(--font-serif),sans-serif}a{color:inherit;text-decoration:none}button,input{font:inherit}.cw-stats-header{padding:48px 28px 36px;background:var(--ink);color:var(--cream)}.cw-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);max-width:820px;margin:0 auto 20px}.cw-stats-item{text-align:center;border-right:1px solid rgba(255,255,255,.1)}.cw-stats-item:last-child{border-right:0}.cw-stats-value{font-family:var(--font-display),sans-serif;font-size:clamp(2rem,7vw,3.8rem);font-weight:900;line-height:1}.cw-stats-label{margin-top:6px;font-size:.72rem;letter-spacing:.12em;color:rgba(245,240,232,.45)}.cw-stats-caption{margin:0 auto;max-width:820px;text-align:center;font-size:.85rem;letter-spacing:.06em;color:rgba(245,240,232,.55)}.cw-progress-section{max-width:820px;margin:32px auto 0;padding:0 24px}.cw-progress-row{display:flex;justify-content:space-between;font-size:.74rem;letter-spacing:.12em;color:var(--ink-faint);text-transform:uppercase;margin-bottom:12px}.cw-progress-value{color:var(--accent);font-weight:700}.cw-progress-meter{width:100%;height:24px;border:0;background:rgba(192,184,170,.35)}.cw-progress-meter::-webkit-progress-bar{background:rgba(192,184,170,.35)}.cw-progress-meter::-webkit-progress-value{background:linear-gradient(90deg,var(--ink),var(--accent))}.cw-progress-meter::-moz-progress-bar{background:linear-gradient(90deg,var(--ink),var(--accent))}.cw-progress-child-trigger{margin-top:14px;width:100%;border:0;background:transparent;padding:0;display:flex;align-items:center;justify-content:space-between;color:var(--ink-faint);font-size:.78rem;letter-spacing:.08em;cursor:pointer}.cw-progress-child-icon{width:18px;height:18px;transition:transform .18s ease}.cw-progress-child-icon.is-open{transform:rotate(180deg)}.cw-dot-section{max-width:820px;margin:36px auto 0;padding:24px}.cw-dot-title{margin:0 0 14px;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.cw-dot-sub{margin:8px 0 16px;color:var(--dot-border);font-size:.68rem}.cw-dot-legend{display:flex;flex-wrap:wrap;gap:18px;font-size:.75rem;color:var(--ink-faint);margin-bottom:18px}.cw-dot-chip{display:inline-block;width:11px;height:11px;border-radius:999px;margin-right:6px}.cw-dot-grid{display:flex;flex-direction:column;gap:12px}.cw-dot-row{display:flex;align-items:center;gap:12px}.cw-dot-row-label{width:36px;flex-shrink:0;text-align:right;color:var(--ink-faint);opacity:.6;font-size:.62rem}.cw-dot-cell{width:min(3vw,24px);height:min(3vw,24px);min-width:16px;min-height:16px;border-radius:999px}.cw-dot-year-button{border:0;padding:0;cursor:pointer}.cw-dot-detail-wrap{margin-top:0;display:flex;align-items:center;gap:26px;min-height:160px;opacity:0;transform:translateY(-4px);pointer-events:none;transition:opacity .26s ease,transform .26s ease}.cw-dot-detail-wrap.is-open{opacity:1;transform:translateY(0);pointer-events:auto}.cw-dot-layer{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:20px}.cw-dot-layer-backdrop{position:absolute;inset:0;border:0;background:rgba(12,13,15,.28);-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px)}.cw-dot-layer-panel{position:relative;width:min(92vw,460px);background:rgba(246,244,239,.96);border:1px solid rgba(56,58,62,.18);border-radius:16px;box-shadow:0 24px 48px rgba(0,0,0,.18);padding:26px}.cw-dot-layer-title{margin:0 0 10px;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}.cw-dot-layer-close{position:absolute;top:10px;right:10px;width:30px;height:30px;border:1px solid rgba(56,58,62,.25);border-radius:999px;background:rgba(255,255,255,.8);color:var(--ink);font-size:1rem;line-height:1;cursor:pointer}.cw-month-wheel{position:relative;width:132px;height:132px;display:grid;place-items:center}.cw-month-dot{position:absolute;top:50%;left:50%;width:20px;height:20px;border-radius:999px;transform:translate(-50%,-50%);opacity:0;transition:transform .34s cubic-bezier(.2,.8,.2,1),opacity .2s ease}.cw-dot-detail-wrap.is-open .cw-month-dot{opacity:1}.cw-dot-detail-wrap.is-open .cw-month-pos-0{transform:translate(calc(-50% + 0px),calc(-50% + -56px))}.cw-dot-detail-wrap.is-open .cw-month-pos-1{transform:translate(calc(-50% + 28px),calc(-50% + -48px))}.cw-dot-detail-wrap.is-open .cw-month-pos-2{transform:translate(calc(-50% + 48px),calc(-50% + -28px))}.cw-dot-detail-wrap.is-open .cw-month-pos-3{transform:translate(calc(-50% + 56px),calc(-50% + 0px))}.cw-dot-detail-wrap.is-open .cw-month-pos-4{transform:translate(calc(-50% + 48px),calc(-50% + 28px))}.cw-dot-detail-wrap.is-open .cw-month-pos-5{transform:translate(calc(-50% + 28px),calc(-50% + 48px))}.cw-dot-detail-wrap.is-open .cw-month-pos-6{transform:translate(calc(-50% + 0px),calc(-50% + 56px))}.cw-dot-detail-wrap.is-open .cw-month-pos-7{transform:translate(calc(-50% + -28px),calc(-50% + 48px))}.cw-dot-detail-wrap.is-open .cw-month-pos-8{transform:translate(calc(-50% + -48px),calc(-50% + 28px))}.cw-dot-detail-wrap.is-open .cw-month-pos-9{transform:translate(calc(-50% + -56px),calc(-50% + 0px))}.cw-dot-detail-wrap.is-open .cw-month-pos-10{transform:translate(calc(-50% + -48px),calc(-50% + -28px))}.cw-dot-detail-wrap.is-open .cw-month-pos-11{transform:translate(calc(-50% + -28px),calc(-50% + -48px))}.cw-month-delay-0{transition-delay:0s}.cw-month-delay-1{transition-delay:22ms}.cw-month-delay-2{transition-delay:44ms}.cw-month-delay-3{transition-delay:66ms}.cw-month-delay-4{transition-delay:88ms}.cw-month-delay-5{transition-delay:.11s}.cw-month-delay-6{transition-delay:132ms}.cw-month-delay-7{transition-delay:154ms}.cw-month-delay-8{transition-delay:176ms}.cw-month-delay-9{transition-delay:198ms}.cw-month-delay-10{transition-delay:.22s}.cw-month-delay-11{transition-delay:242ms}.cw-month-dot-button{border:0;padding:0;cursor:pointer}.cw-month-wheel-center{width:44px;height:44px;border-radius:999px}.cw-day-panel{opacity:0;transform:translateX(-8px);pointer-events:none;transition:opacity .22s ease,transform .22s ease}.cw-day-panel.is-open{opacity:1;transform:translateX(0);pointer-events:auto}.cw-day-dots{width:min(52vw,230px);display:grid;grid-template-columns:repeat(10,minmax(11px,1fr));grid-gap:6px;gap:6px}.cw-day-dot{width:16px;height:16px;border-radius:999px;opacity:0;transform:translateY(4px) scale(.92);animation:cw-day-dot-in .26s ease forwards}.cw-day-delay-0{animation-delay:0s}.cw-day-delay-1{animation-delay:12ms}.cw-day-delay-2{animation-delay:24ms}.cw-day-delay-3{animation-delay:36ms}.cw-day-delay-4{animation-delay:48ms}.cw-day-delay-5{animation-delay:60ms}.cw-day-delay-6{animation-delay:72ms}.cw-day-delay-7{animation-delay:84ms}.cw-day-delay-8{animation-delay:96ms}.cw-day-delay-9{animation-delay:108ms}.cw-day-delay-10{animation-delay:.12s}.cw-day-delay-11{animation-delay:132ms}.cw-day-delay-12{animation-delay:144ms}.cw-day-delay-13{animation-delay:156ms}.cw-day-delay-14{animation-delay:168ms}.cw-day-delay-15{animation-delay:.18s}.cw-day-delay-16{animation-delay:192ms}.cw-day-delay-17{animation-delay:204ms}.cw-day-delay-18{animation-delay:216ms}.cw-day-delay-19{animation-delay:228ms}.cw-day-delay-20{animation-delay:.24s}.cw-day-delay-21{animation-delay:252ms}.cw-day-delay-22{animation-delay:264ms}.cw-day-delay-23{animation-delay:276ms}.cw-day-delay-24{animation-delay:288ms}.cw-day-delay-25{animation-delay:.3s}.cw-day-delay-26{animation-delay:312ms}.cw-day-delay-27{animation-delay:324ms}.cw-day-delay-28{animation-delay:336ms}.cw-day-delay-29{animation-delay:348ms}.cw-day-delay-30{animation-delay:.36s}.cw-day-delay-31{animation-delay:372ms}.cw-day-placeholder{visibility:hidden;animation:none}@keyframes cw-day-dot-in{0%{opacity:0;transform:translateY(4px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}.cw-monthly-section{max-width:820px;margin:40px auto 0;padding:0 24px}.cw-monthly-title{margin:0;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.cw-monthly-sub{margin:8px 0 16px;color:var(--dot-border);font-size:.68rem}.cw-monthly-legend{display:flex;flex-wrap:wrap;gap:18px;font-size:.72rem;color:var(--ink-faint);margin-bottom:18px}.cw-monthly-swatch{display:inline-block;width:2px;height:14px;margin-right:6px}.cw-monthly-rows{display:flex;flex-direction:column;gap:18px}.cw-monthly-year-row{display:flex;flex-wrap:wrap;gap:20px}.cw-monthly-year-cell{display:flex;align-items:flex-end;gap:1px;position:relative;padding-bottom:14px}.cw-monthly-bar{width:1px;height:12px}.cw-monthly-age-label{position:absolute;bottom:0;left:0;right:0;text-align:center;font-size:.54rem;color:var(--ink-faint);opacity:.6}.cw-monthly-note{margin-top:16px;color:var(--ink-faint);font-size:.72rem;opacity:.7}.cw-week-section{max-width:820px;margin:40px auto;padding:24px}.cw-week-title{margin:0;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.cw-week-sub{margin:8px 0 16px;color:var(--dot-border);font-size:.68rem}.cw-week-legend{display:flex;flex-wrap:wrap;gap:16px;font-size:.75rem;color:var(--ink-faint);margin-bottom:16px}.cw-week-chart-wrap{--cw-week-dot-size:.625em;--cw-week-dot-gap:.25em;overflow-x:auto}.cw-week-row,.cw-week-top-axis{display:flex;grid-template-columns:repeat(52,1fr);gap:var(--cw-week-dot-gap)}.cw-week-top-axis{margin-bottom:var(--cw-week-dot-gap)}.cw-week-rows{display:flex;gap:var(--cw-week-dot-gap);flex-wrap:wrap}.cw-week-axis-label{display:flex;align-items:center;justify-content:flex-end;height:var(--cw-week-dot-size);line-height:1;text-align:right;font-size:.54rem;color:var(--ink-faint);opacity:.72;transform:translateY(-.5px)}.cw-week-axis-tick{display:block;height:10px;line-height:10px;text-align:center;font-size:.52rem;color:var(--ink-faint);opacity:.62;transform:translateY(-1px)}.cw-week-cell{width:var(--cw-week-dot-size);height:var(--cw-week-dot-size);border-radius:999px}.cw-matrix-section{max-width:820px;margin:40px auto 0;padding:0 24px}.cw-matrix-title{margin:0 0 10px;font-size:.78rem;letter-spacing:.06em;color:var(--ink-faint);text-transform:uppercase}.cw-matrix-grid{display:grid;grid-template-columns:repeat(20,minmax(0,1fr));grid-gap:1px;gap:1px}.cw-matrix-cell{width:100%;aspect-ratio:1/.35}.cw-matrix-cell.is-left{background:#c2bfbf}.cw-matrix-cell.is-past{background:#a0a0a0}.cw-matrix-cell.is-current{background:#e67a6b!important}.cw-matrix-sub{margin:8px 0 0;color:var(--ink-faint);font-size:.72rem}.cw-age-section{max-width:820px;margin:40px auto 0;padding:0 24px}.cw-age-section.is-embedded{max-width:none;margin:18px 0 0;padding:0}.cw-age-title{margin:0 0 18px;font-family:var(--font-display),sans-serif;font-style:italic;font-size:.78rem;font-weight:400;color:var(--ink-faint)}.cw-age-rows{display:flex;flex-direction:column;gap:10px}.cw-age-row{display:flex;align-items:center;gap:10px}.cw-age-label{width:40px;font-size:.75rem;color:var(--ink-faint)}.cw-age-meter{flex:1 1;height:6px;border:0;background:rgba(192,184,170,.2)}.cw-age-meter::-webkit-progress-bar{background:rgba(192,184,170,.2)}.cw-age-meter.cw-past::-webkit-progress-value{background:var(--ink)}.cw-age-meter.cw-future::-webkit-progress-value{background:rgba(192,184,170,.4)}.cw-age-meter.cw-age-current::-webkit-progress-value{background:linear-gradient(90deg,var(--ink) 70%,var(--dot-current))}.cw-age-meter.cw-past::-moz-progress-bar{background:var(--ink)}.cw-age-meter.cw-future::-moz-progress-bar{background:rgba(192,184,170,.4)}.cw-age-meter.cw-age-current::-moz-progress-bar{background:linear-gradient(90deg,var(--ink) 70%,var(--dot-current))}.cw-age-pct{width:40px;text-align:right;font-size:.72rem;color:var(--ink-faint)}.cw-widget-section{max-width:820px;margin:26px auto 0;padding:18px 24px}.cw-widget-title{margin:0;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.cw-widget-desc{margin:8px 0 14px;color:var(--ink-faint);font-size:.75rem}.cw-widget-grid{display:flex;flex-wrap:wrap;gap:10px}.cw-widget-item{display:flex;align-items:center;padding:6px 12px;font-size:.82rem;color:var(--ink-light);white-space:nowrap;border:1px solid rgba(192,184,170,.7);background:rgba(255,255,255,.8);border-radius:999px;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease}.cw-widget-item.is-on{border-color:var(--ink);background:rgba(42,44,48,.1);color:var(--ink)}.cw-widget-item:focus-visible{outline:2px solid rgba(201,162,39,.5);outline-offset:2px}.cw-tabs-section{max-width:820px;margin:18px auto 0;padding:0 24px}.cw-tabs-nav{display:flex;flex-wrap:wrap;gap:8px}.cw-tab-button{display:inline-flex;align-items:center;padding:8px 14px;font-size:.82rem;color:var(--ink-light);white-space:nowrap;border:1px solid rgba(192,184,170,.7);background:rgba(255,255,255,.8);border-radius:999px;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease}.cw-tab-button.is-active{border-color:var(--ink);background:var(--ink);color:var(--cream)}.cw-tab-button:focus-visible{outline:2px solid rgba(201,162,39,.5);outline-offset:2px}.cw-share-section{max-width:820px;margin:18px auto 0;padding:18px 24px}.cw-share-title{margin:0;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.cw-share-desc{margin:8px 0 12px;color:var(--ink-faint);font-size:.75rem}.cw-share-row{display:flex;gap:8px}.cw-share-input{flex:1 1;border:1px solid rgba(192,184,170,.7);background:rgba(255,255,255,.8);padding:10px;font-size:.78rem}.cw-share-button{display:inline-flex;align-items:center;gap:6px;border:0;background:var(--ink);color:var(--cream);padding:0 16px;cursor:pointer}.cw-share-button-icon{width:16px;height:16px}.cw-event-section{max-width:820px;margin:18px auto 0;padding:18px 24px}.cw-event-title{margin:0;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.cw-event-accordion-trigger{width:100%;border:0;background:transparent;padding:0;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.cw-event-accordion-icon{width:18px;height:18px;color:var(--ink-faint);transition:transform .18s ease}.cw-event-accordion-icon.is-open{transform:rotate(180deg)}.cw-event-desc{margin:8px 0 12px;color:var(--ink-faint);font-size:.75rem}.cw-event-list{display:flex;flex-direction:column;gap:10px}.cw-event-row{display:grid;grid-template-columns:minmax(180px,240px) minmax(0,1fr) auto;align-items:center;grid-gap:8px;gap:8px}.cw-event-date-group{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:6px;gap:6px}.cw-event-input{border:1px solid rgba(192,184,170,.7);background:rgba(255,255,255,.8);padding:10px;font-size:.78rem;color:var(--ink)}.cw-event-date-input,.cw-event-text-input{width:100%}.cw-event-actions{display:flex;gap:6px}.cw-event-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(192,184,170,.8);background:white;color:var(--ink);width:36px;height:36px;padding:0;font-size:.72rem;text-transform:lowercase;cursor:pointer;border-radius:999px}.cw-event-button-icon{width:18px;height:18px}.cw-event-button.is-delete{color:#9c2f2f;border-color:rgba(156,47,47,.4)}.cw-event-error{margin:10px 0 0;color:#b02020;font-size:.75rem}.cw-event-save-row{margin-top:12px;display:flex;justify-content:flex-end}.cw-event-save-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;background:var(--ink);color:var(--cream);padding:9px 14px;cursor:pointer}.cw-event-save-icon{width:16px;height:16px}.cw-event-save-button:disabled{opacity:.65;cursor:not-allowed}.cw-quote-section{max-width:820px;margin:46px auto 0;padding:0 24px 48px;text-align:center}.cw-quote-divider{width:60px;height:1px;margin:0 auto 28px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}.cw-quote-text{margin:0;font-family:var(--font-display),sans-serif;font-style:italic;font-size:clamp(1.05rem,2.4vw,1.5rem);line-height:1.7;color:var(--ink-light)}.cw-quote-attr{margin-top:16px;font-size:.73rem;letter-spacing:.11em;color:var(--ink-faint)}.cw-filled{background:#7c7a78}.cw-current{border:5px solid var(--dot-filled);background:var(--dot-filled)}.cw-empty{border:1px solid var(--dot-border);background:transparent}.cw-event-dot,.cw-event-week-cell{background:#2d6cdf!important;border-color:#2d6cdf!important}.cw-event-matrix-cell,.cw-event-month-bar{background:#2d6cdf!important}.cw-monthly-empty{background:var(--dot-border);opacity:.5}.cw-before{background:transparent}.cw-monthly-current{background:var(--dot-current);box-shadow:0 0 5px rgba(192,57,43,.6)}.cw-past{background:var(--ink)}.cw-age-current{background:linear-gradient(90deg,var(--ink) 70%,var(--dot-current))}.cw-future{background:rgba(192,184,170,.4)}.cw-page-main{min-height:100vh;padding-bottom:60px}.cw-static-page{max-width:820px;margin:0 auto;padding:24px}.cw-inline-link-button{border:0;background:transparent;text-decoration:underline;cursor:pointer;padding:0;color:inherit}.cw-page-shell{max-width:820px;margin:0 auto;padding:18px 24px 12px;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;color:var(--ink-faint);font-size:.82rem}.cw-page-shell p{margin:0}.cw-page-actions{display:flex;align-items:center;gap:8px}@media (max-width:720px){.cw-dot-detail-wrap{flex-direction:column;align-items:flex-start;gap:18px;min-height:0}.cw-day-dots{width:100%;grid-template-columns:repeat(8,minmax(11px,1fr))}.cw-event-row{grid-template-columns:minmax(0,1fr) auto;column-gap:8px;row-gap:6px}.cw-event-actions{grid-column:2;grid-row:1;justify-content:center;align-items:center}.cw-event-date-group{grid-column:1;grid-row:1}.cw-event-text-input{grid-column:1/-2;grid-row:2}.cw-share-input{display:none}.cw-share-row{width:100%}.cw-share-button{width:100%;justify-content:center;height:40px}.cw-event-save-row{justify-content:stretch}.cw-event-save-button{width:100%;min-height:40px}.cw-event-list{row-gap:20px}}.cw-page-actions a,.cw-page-actions button{border:1px solid var(--dot-border);background:transparent;color:var(--ink-light);padding:6px 10px;font-size:.76rem;cursor:pointer}.cw-page-banner{max-width:820px;margin:0 auto;padding:16px 24px 10px;color:var(--ink-faint);font-size:.82rem}.cw-page-error{min-height:100vh;display:grid;place-items:center;grid-gap:8px;gap:8px}@font-face{font-family:Pretendard Variable;font-weight:45 920;font-style:normal;font-display:swap;src:url(/fonts/PretendardVariable.woff2) format("woff2-variations")}