:root{color-scheme:light;--bg-top:#eef4ff;--bg-bottom:#dbe6fb;--frame:rgba(244,248,255,0.78);--surface:rgba(250,252,255,0.9);--surface-strong:#fcfdff;--text:#182235;--muted:#60708f;--line:rgba(67,98,156,0.12);--line-strong:rgba(67,98,156,0.22);--accent:#6f96e9;--accent-deep:#4f74c8;--accent-soft:#dde8ff;--ok-bg:#e7f4ee;--ok-text:#2d7560;--warn-bg:#edf2ff;--warn-text:#4f74c8;--full-bg:#e9eef8;--full-text:#66738c;--shadow-lg:0 24px 70px rgba(68,96,153,0.16);--shadow-md:0 14px 36px rgba(68,96,153,0.12);--radius-xl:34px;--radius-lg:26px;--radius-md:18px;--font-sans:"Pretendard Variable","Pretendard","Noto Sans KR","Apple SD Gothic Neo",sans-serif}*{box-sizing:border-box}html{min-height:100%}body{margin:0;min-height:100vh;color:var(--text);font-family:var(--font-sans);background:radial-gradient(circle at top left,rgba(111,150,233,.24),transparent 24%),radial-gradient(circle at 85% 10%,rgba(145,187,255,.22),transparent 20%),linear-gradient(180deg,var(--bg-top) 0,#e7f0ff 38%,var(--bg-bottom) 100%)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.page-shell{min-height:100vh;display:flex;justify-content:center;padding:24px 16px 40px}.site-shell{min-height:100vh;padding:28px 16px 40px}.site-shell.is-compact{padding-top:18px}.hero-panel,.info-card,.page-intro,.program-card,.site-header{border:1px solid var(--line);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.site-header{width:min(100%,430px);margin:0 auto 18px;padding:16px;border-radius:var(--radius-xl);background:linear-gradient(145deg,rgba(252,254,255,.96),rgba(227,238,255,.9)),var(--surface)}.site-brand{display:grid;grid-gap:4px;gap:4px;margin-bottom:14px}.site-brand-en{margin:0;color:var(--accent);font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.site-brand-ko{font-size:1.2rem;letter-spacing:-.04em}.site-nav{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.site-nav::-webkit-scrollbar{display:none}.site-nav-link{display:flex;flex:0 0 auto;align-items:center;min-height:38px;padding:0 13px;border:1px solid var(--line-strong);border-radius:999px;background:rgba(247,250,255,.72);color:var(--muted);font-size:.84rem;font-weight:700;white-space:nowrap;transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease}.site-nav-link.is-active{border-color:rgba(79,116,200,.24);background:linear-gradient(135deg,rgba(111,150,233,.16),rgba(221,232,255,.92));color:var(--accent-deep)}.site-content{width:min(100%,430px);margin:0 auto}.content-frame{width:100%;display:grid;grid-gap:20px;gap:20px}.hero-panel,.info-card,.page-intro{border-radius:var(--radius-xl);background:linear-gradient(145deg,rgba(252,254,255,.96),rgba(227,238,255,.9)),var(--surface)}.hero-panel{display:grid;grid-gap:6px;gap:6px;padding:16px 18px}.hero-kicker,.section-kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-size:.72rem;font-weight:800}.hero-kicker,h1,h2,p{margin:0}h1{font-size:clamp(1.7rem,7vw,2.2rem);line-height:1;letter-spacing:-.05em}h2{font-size:1.3rem;letter-spacing:-.04em}.hero-name{font-size:1rem;font-weight:700;letter-spacing:-.03em}.hero-subtitle{color:var(--muted);font-size:.82rem;line-height:1.35}.page-intro{display:grid;grid-gap:10px;gap:10px;padding:22px 20px}.plain-page-header{display:grid;grid-gap:6px;gap:6px;padding:8px 2px 0}.plain-page-subtitle{color:var(--muted);font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.page-description{max-width:46ch;color:var(--muted);line-height:1.6}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:4px 2px 0}.ghost-chip{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 14px;border:1px solid var(--line-strong);border-radius:999px;background:rgba(247,250,255,.82);color:var(--text);font-weight:700}.week-switcher{display:flex;align-items:center;gap:8px;width:100%}.week-select{flex:1 1;min-width:0;min-height:48px;padding:0 16px;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;text-align:center}.week-nav-button{display:inline-flex;align-items:center;justify-content:center;width:40px;min-width:40px;height:48px;border:1px solid var(--line-strong);border-radius:999px;background:rgba(247,250,255,.82);color:var(--accent-deep);font-size:1rem;font-weight:800;transition:background .16s ease,color .16s ease,transform .16s ease}.week-nav-button:disabled{cursor:default;color:var(--full-text);opacity:.5}@media (max-width:480px){.week-switcher{justify-content:space-between}.week-select{padding:0 12px;font-size:.92rem}}.empty-program-card{display:grid;grid-gap:8px;gap:8px;text-align:center}.empty-program-title{font-size:1rem;font-weight:800}.empty-program-copy{color:var(--muted);font-size:.9rem;line-height:1.5}.program-list{display:grid;grid-gap:16px;gap:16px}.program-card{padding:18px;border-radius:var(--radius-lg);background:var(--surface-strong)}.program-header,.program-main{display:grid;grid-gap:10px;gap:10px}.program-main{min-width:0}.program-date-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.program-date-line .type-pill{margin-left:auto}.program-date{font-size:1.02rem;font-weight:800}.program-weekday{color:var(--muted);font-size:.88rem;font-weight:600}.status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:0 9px;border-radius:999px;font-size:.7rem;font-weight:800;white-space:nowrap}.status-pill.is-available{background:var(--ok-bg);color:var(--ok-text)}.status-pill.is-full{background:var(--full-bg);color:var(--full-text)}.type-pill{display:inline-flex;align-items:center;justify-content:center;width:-moz-fit-content;width:fit-content;min-height:30px;padding:0 12px;border-radius:999px;background:linear-gradient(135deg,rgba(221,232,255,.95),rgba(238,244,255,.92));color:var(--accent-deep);font-size:.78rem;font-weight:800}.program-time{font-size:1.08rem;letter-spacing:-.03em}.attendance-panel{display:grid;grid-gap:10px;gap:10px;margin-top:16px;padding:16px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,rgba(248,251,255,.92),rgba(238,244,255,.78))}.attendance-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.attendance-title-row{display:inline-flex;align-items:center;gap:8px;min-width:0}.attendance-title{font-size:.88rem;font-weight:700}.attendance-status{font-size:1rem;font-weight:800;letter-spacing:-.03em}.attendance-breakdown{color:var(--muted);font-size:.82rem;font-weight:700}.attendee-details{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.attendee-details summary{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;cursor:pointer;color:var(--text);font-size:.84rem;font-weight:700}.attendee-details summary::-webkit-details-marker{display:none}.summary-copy{display:inline-flex;align-items:center;gap:10px}.summary-count{color:var(--accent-deep);font-size:.78rem;font-weight:800;padding:2px 8px;border-radius:999px;background:rgba(221,232,255,.7)}.summary-icon{color:var(--muted);font-size:.95rem;line-height:1;transition:transform .16s ease}.attendee-details[open] .summary-icon{transform:rotate(180deg)}.attendee-list{display:grid;grid-gap:8px;gap:8px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}.attendee-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0}.attendee-name{font-size:.88rem;font-weight:700}.cancel-button{min-height:32px;padding:0 12px;border:1px solid rgba(79,116,200,.18);border-radius:999px;background:rgba(255,255,255,.92);color:var(--accent-deep);font-size:.78rem;font-weight:800}.reserve-button{width:100%;margin-top:14px;min-height:46px;border:0;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;font-size:.96rem;font-weight:800;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.reserve-button.is-available{color:white;background:linear-gradient(135deg,var(--accent) 0,var(--accent-deep) 100%);box-shadow:var(--shadow-md)}.reserve-button.is-full{color:var(--full-text);background:#e6ecf7}.reserve-button:disabled{cursor:default}.back-link{width:-moz-fit-content;width:fit-content;color:var(--accent-deep);font-size:.88rem;font-weight:700}.reservation-page-top{padding-top:6px}.reservation-page-title{font-size:clamp(1.4rem,6vw,1.9rem);line-height:1.2;letter-spacing:-.05em}.reservation-form-card,.reservation-summary{display:grid;grid-gap:18px;gap:18px}.reservation-form-card{padding:20px 18px;border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(145deg,rgba(252,254,255,.96),rgba(227,238,255,.9)),var(--surface);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.reservation-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.reservation-detail-title{display:grid;grid-gap:10px;gap:10px}.reservation-detail-title .type-pill{width:-moz-fit-content;width:fit-content}.reservation-detail-grid{display:grid;grid-gap:0;gap:0;border-top:1px solid var(--line)}.reservation-detail-item{display:grid;grid-template-columns:88px minmax(0,1fr);grid-gap:14px;gap:14px;padding:14px 2px;border-bottom:1px solid var(--line);font-size:.96rem}.reservation-detail-label,.reservation-form-intro p{color:var(--muted);font-size:.88rem}.reservation-form{display:grid;grid-gap:14px;gap:14px}.form-field,.form-fieldset{display:grid;grid-gap:8px;gap:8px;margin:0;padding:0;border:0}.form-label{font-size:.9rem;font-weight:700}.form-input{width:100%;min-height:50px;padding:0 16px;border:1px solid var(--line-strong);border-radius:16px;background:rgba(255,255,255,.92);color:var(--text)}.radio-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.check-card,.radio-card{display:flex;align-items:center;gap:10px;padding:14px 16px;border:1px solid var(--line);border-radius:18px;background:rgba(248,251,255,.84);font-weight:600}.check-card input,.radio-card input{margin:0}@media (max-width:480px){.reservation-detail-item{grid-template-columns:74px minmax(0,1fr);gap:12px}}.info-stack{display:grid;grid-gap:16px;gap:16px}.plain-stack{display:grid;grid-gap:0;gap:0;border-top:1px solid var(--line)}.info-card{display:grid;grid-gap:12px;gap:12px;padding:20px 18px}.plain-section{display:grid;grid-gap:10px;gap:10px;padding:18px 2px;border-bottom:1px solid var(--line)}.plain-section-title{font-size:1.05rem;letter-spacing:-.03em}.plain-section-body,.plain-section-meta{color:var(--muted);line-height:1.65}.info-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.info-tag{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;background:rgba(221,232,255,.72);color:var(--accent-deep);font-size:.76rem;font-weight:800}.info-date,.info-meta{color:var(--muted);font-size:.86rem;font-weight:600}.info-title{font-size:1.15rem;letter-spacing:-.03em}.info-body{color:var(--muted);line-height:1.65}.map-links{display:flex;flex-wrap:wrap;gap:10px}.map-link{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 14px;border:1px solid var(--line-strong);border-radius:999px;background:rgba(247,250,255,.82);color:var(--accent-deep);font-size:.84rem;font-weight:700;transition:transform .16s ease,background .16s ease,border-color .16s ease}.rule-list{display:grid;grid-gap:12px;gap:12px}.rule-item{padding:0 0 0 14px;border-left:3px solid rgba(111,150,233,.22);color:var(--text);line-height:1.6}.calendar-page-intro{display:grid;grid-gap:14px;gap:14px}.calendar-legend{display:flex;flex-wrap:wrap;gap:8px}.calendar-badge,.calendar-mini-badge{display:inline-flex;align-items:center;justify-content:center;width:-moz-fit-content;width:fit-content;border-radius:999px;font-weight:800;white-space:nowrap}.calendar-badge{min-height:30px;padding:0 12px;font-size:.76rem}.calendar-mini-badge{min-height:20px;padding:0 7px;font-size:.64rem}.calendar-badge.is-morning,.calendar-mini-badge.is-morning{background:rgba(140,202,98,.18);color:#5a8c2a}.calendar-badge.is-evening,.calendar-mini-badge.is-evening{background:rgba(99,133,233,.16);color:#4562b9}.calendar-badge.is-halfday,.calendar-mini-badge.is-halfday{background:rgba(255,183,77,.2);color:#b67514}.calendar-badge.is-fullday,.calendar-mini-badge.is-fullday{background:rgba(244,120,120,.18);color:#bb5252}.calendar-mini-badge.is-more{background:rgba(96,112,143,.12);color:var(--muted)}.calendar-panel{display:grid;grid-gap:14px;gap:14px}.calendar-toolbar{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;grid-gap:10px;gap:10px;align-items:center}.calendar-month-label{margin:0;text-align:center;font-size:1rem;font-weight:800;letter-spacing:-.03em}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:1px;gap:1px;padding:1px;border:1px solid var(--line);border-radius:var(--radius-lg);background:rgba(67,98,156,.08);overflow:hidden}.calendar-weekday{display:flex;align-items:center;justify-content:center;min-height:38px;background:rgba(250,252,255,.95);color:var(--muted);font-size:.78rem;font-weight:800}.calendar-weekday.is-sunday{color:#d46573}.calendar-day{display:grid;align-content:start;grid-gap:8px;gap:8px;min-height:94px;padding:10px 8px;border:0;background:rgba(252,253,255,.98);text-align:left;transition:background .16s ease,transform .16s ease,box-shadow .16s ease}.calendar-day:disabled{cursor:default}.calendar-day.is-outside{background:rgba(245,248,254,.92)}.calendar-day.has-programs{background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(244,249,255,.98))}.calendar-day.is-selected{box-shadow:inset 0 0 0 2px rgba(79,116,200,.22);background:linear-gradient(180deg,rgba(238,246,255,.98),rgba(247,251,255,.98))}.calendar-day-number{font-size:.92rem;font-weight:800}.calendar-day.is-outside .calendar-day-number{color:rgba(96,112,143,.52)}.calendar-day-badges{display:flex;flex-wrap:wrap;gap:5px}.calendar-modal-backdrop{position:fixed;inset:0;z-index:30;display:flex;align-items:flex-end;justify-content:center;padding:24px 16px;background:rgba(24,34,53,.44);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.calendar-modal{width:min(100%,430px);max-height:min(78vh,680px);display:grid;grid-gap:16px;gap:16px;overflow:auto;padding:20px 18px;border:1px solid var(--line);border-radius:30px;background:linear-gradient(145deg,rgba(252,254,255,.98),rgba(233,241,255,.96));box-shadow:var(--shadow-lg)}.calendar-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.calendar-close-button{width:36px;min-width:36px;height:36px;border:1px solid var(--line-strong);border-radius:999px;background:rgba(255,255,255,.8);color:var(--accent-deep);font-size:1.35rem;line-height:1}.calendar-modal-list{display:grid;grid-gap:12px;gap:12px}.calendar-detail-card{display:grid;grid-gap:10px;gap:10px;padding:16px;border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.74)}.calendar-detail-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.calendar-detail-time{font-size:1rem;letter-spacing:-.03em}.calendar-detail-meta,.calendar-detail-note{color:var(--muted);font-size:.86rem;line-height:1.55}@media (hover:hover){.site-nav-link:hover{transform:translateY(-1px);color:var(--accent-deep);background:rgba(255,255,255,.9)}.map-link:hover{border-color:rgba(79,116,200,.28);background:rgba(255,255,255,.94)}.map-link:hover,.reserve-button:not(:disabled):hover{transform:translateY(-1px)}.cancel-button:hover{background:rgba(221,232,255,.72)}.calendar-day.has-programs:hover{transform:translateY(-1px);background:linear-gradient(180deg,rgba(244,250,255,.98),rgba(236,245,255,.98))}.calendar-close-button:hover{background:rgba(221,232,255,.72)}}@media (max-width:380px){.hero-panel,.info-card,.page-intro,.program-card,.site-header{padding-left:16px;padding-right:16px}.attendance-header,.attendee-item,.calendar-detail-head,.info-card-head{align-items:flex-start;flex-direction:column}.attendance-status,.summary-copy{text-align:left}.summary-copy{align-items:flex-start;flex-direction:column;gap:4px}.calendar-day{min-height:88px;padding:8px 6px}.calendar-mini-badge{padding-left:6px;padding-right:6px;font-size:.6rem}}.admin-alert-card,.admin-editor-card,.admin-login-card,.admin-panel,.admin-table-card{border:1px solid var(--line);border-radius:var(--radius-xl);background:linear-gradient(145deg,rgba(252,254,255,.96),rgba(227,238,255,.9)),var(--surface);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.admin-alert-card,.admin-login-card,.admin-panel,.admin-table-card{padding:20px 18px}.admin-section{display:grid;grid-gap:14px;gap:14px}.admin-panel-header,.admin-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.admin-kicker{margin:0 0 6px;color:var(--accent);font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.admin-help-text{color:var(--muted);line-height:1.6}.admin-alert{margin:0;padding:14px 16px;border-radius:18px;font-size:.92rem;font-weight:700}.admin-alert.is-error{background:rgba(235,105,105,.12);color:#a34d4d}.admin-alert.is-success{background:rgba(94,173,129,.16);color:#2d7560}.admin-editor-card,.admin-form-stack,.admin-program-list{display:grid;grid-gap:16px;gap:16px}.admin-editor-card{padding:18px;border-radius:var(--radius-lg)}.admin-card-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:.86rem}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px 12px;gap:14px 12px}.admin-field{display:grid;grid-gap:8px;gap:8px}.admin-field span{font-size:.84rem;font-weight:800}.admin-input{width:100%;min-height:46px;padding:0 14px;border:1px solid var(--line-strong);border-radius:16px;background:rgba(255,255,255,.88);color:var(--text)}.admin-textarea{min-height:110px;padding:14px;resize:vertical}.admin-ghost-button,.admin-submit-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border-radius:16px;font-size:.9rem;font-weight:800}.admin-submit-button{border:0;color:white;background:linear-gradient(135deg,var(--accent) 0,var(--accent-deep) 100%);box-shadow:var(--shadow-md)}.admin-submit-button:disabled{cursor:not-allowed;opacity:.5}.admin-ghost-button{border:1px solid var(--line-strong);background:rgba(247,250,255,.82);color:var(--accent-deep)}.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:.88rem}.admin-table td,.admin-table th{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.admin-table th{color:var(--muted);font-size:.78rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.admin-empty-cell{color:var(--muted);text-align:center}@media (max-width:640px){.admin-grid{grid-template-columns:1fr}.admin-card-topline,.admin-panel-header,.admin-section-head{align-items:stretch;flex-direction:column}}