:root{--bg:#0f1220;--panel:#1a1f35;--panel2:#232a4a;--line:#2e3659;--text:#eef0fa;--muted:#9aa3c7;--gold:#d8b45a;--gold-deep:#b2903d;--danger:#e46a6a;--ok:#59c98d;--radius:14px}*{box-sizing:border-box;margin:0;padding:0}body,html{background:var(--bg);color:var(--text);font-family:Pretendard,Apple SD Gothic Neo,system-ui,sans-serif;min-height:100%}a{color:inherit;text-decoration:none}button{cursor:pointer}button,input,select{font:inherit}.wrap{max-width:720px;margin:0 auto;padding:0 20px 80px}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:rgba(15,18,32,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.topbar-inner{max-width:720px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;gap:14px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.topbar-inner::-webkit-scrollbar{display:none}.logo{font-weight:800;letter-spacing:.5px;color:var(--gold);font-size:17px;white-space:nowrap}.nav{display:flex;gap:14px;font-size:14px;color:var(--muted);flex:1 1}.nav a,.nav-auth{white-space:nowrap}.nav a.active,.nav a:hover{color:var(--text)}.nav-auth{font-size:13px;color:var(--gold)}.hero{padding:56px 0 32px;text-align:center}.hero .season{color:var(--gold);font-size:14px;letter-spacing:3px}.hero h1{font-size:40px;margin:10px 0 12px;letter-spacing:1px}.hero p{color:var(--muted);line-height:1.7}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin:16px 0}.card h3{margin-bottom:12px;color:var(--muted);font-weight:600}.btn,.card h3{font-size:15px}.btn{display:inline-block;border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:10px;padding:12px 20px;transition:.15s;text-align:center}.btn.primary,.btn:hover{border-color:var(--gold)}.btn.primary{background:var(--gold);color:#1a1505;font-weight:700}.btn.primary:hover{background:var(--gold-deep)}.btn.block{display:block;width:100%}.btn.sm{padding:7px 12px;font-size:13px;border-radius:8px}.btn.danger{border-color:var(--danger);color:var(--danger);background:transparent}.btn:disabled{opacity:.4;cursor:not-allowed}.input{width:100%;background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:10px;padding:12px 14px;font-size:15px}.input:focus{outline:none;border-color:var(--gold)}.label{display:block;font-size:13px;color:var(--muted);margin:14px 0 6px}.grid7{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px}.day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--text);font-size:14px}.day.head{color:var(--muted);font-size:12px;aspect-ratio:auto;padding:4px 0}.day.on{background:var(--panel2);border-color:var(--line)}.day.on:hover{border-color:var(--gold)}.day.selected{background:var(--gold);color:#1a1505;font-weight:700}.day.off,.day.soldout{color:#4a5170;cursor:default}.day.soldout{text-decoration:line-through}.slots{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px}.slot{padding:10px 6px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);color:var(--text);text-align:center;font-size:14px}.slot small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.slot:hover{border-color:var(--gold)}.slot.selected{background:var(--gold);color:#1a1505;font-weight:700}.slot.selected small{color:#5c4a13}.slot.soldout{opacity:.35;cursor:not-allowed}.stepper{display:flex;align-items:center;gap:14px}.stepper button{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--panel2);color:var(--text);font-size:17px}.row{display:flex;justify-content:space-between;align-items:center;padding:10px 0}.row+.row{border-top:1px solid var(--line)}.muted{font-size:13px}.auth-link,.muted{color:var(--muted)}.auth-link{text-decoration:none}.auth-link:hover{color:var(--text);text-decoration:underline}.gold{color:var(--gold)}.big{font-size:22px;font-weight:800}.badge{display:inline-block;font-size:11px;padding:3px 9px;border-radius:20px;background:var(--panel2);border:1px solid var(--line);color:var(--muted)}.badge.ok{color:var(--ok);border-color:var(--ok)}.badge.gold{color:var(--gold);border-color:var(--gold)}.badge.danger{color:var(--danger);border-color:var(--danger)}.tabs{display:flex;gap:8px;margin:18px 0 10px}.tabs button{padding:8px 16px;border-radius:20px;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:14px}.tabs button.active{background:var(--gold);border-color:var(--gold);color:#1a1505;font-weight:700}.qrbox{background:#fff;border-radius:16px;padding:22px;display:flex;flex-direction:column;align-items:center;gap:8px;margin:16px auto;width:-moz-fit-content;width:fit-content}.qrbox img{width:220px;height:220px}.qr-timer{font-size:12px;color:#666}.alert{border-radius:10px;padding:12px 14px;font-size:14px;margin:12px 0}.alert.error{background:hsla(0,69%,65%,.12);border:1px solid var(--danger);color:var(--danger)}.alert.ok{background:rgba(89,201,141,.1);border:1px solid var(--ok);color:var(--ok)}.donation-total{text-align:center;padding:28px 0 8px}.donation-total .amt{font-size:36px;font-weight:800;color:var(--gold)}.field-error{color:var(--danger)}.field-error,.field-ok{font-size:12px;margin-top:4px}.field-ok{color:var(--ok)}.field-hint{color:var(--muted);font-size:12px;margin-top:4px}.empty{text-align:center;color:var(--muted);padding:48px 0;font-size:14px}.section-title{font-size:20px;font-weight:800;margin:28px 0 4px}.signup-compact{max-width:400px;margin:0 auto}.signup-compact .section-title{margin:6px 0 2px;font-size:18px}.signup-compact .card{padding:12px 14px;margin:8px 0}.signup-compact .label{margin:8px 0 3px;font-size:12px}.signup-compact .input{padding:8px 12px;font-size:14px}.signup-compact .field-error,.signup-compact .field-hint,.signup-compact .field-ok{font-size:11px;margin-top:2px}.signup-compact .btn{padding:9px 12px}.signup-compact form>.btn{margin-top:10px!important}.site-footer{border-top:1px solid var(--line);margin-top:40px;padding:26px 20px 34px}.footer-inner{max-width:720px;margin:0 auto;color:var(--muted);font-size:12px;line-height:1.9}.footer-links{font-size:13px;margin-top:14px}.footer-links a{color:var(--muted)}.footer-links a:hover{color:var(--gold)}.footer-links .sep{margin:0 10px;opacity:.4}.footer-copy{margin-left:16px;opacity:.6}.policy .policy-h{font-size:15px;font-weight:700;margin:22px 0 8px;color:var(--gold)}.policy section:first-child .policy-h{margin-top:0}.policy .policy-p{margin:8px 0;line-height:1.8;font-size:14px}.policy .policy-list{margin:8px 0 8px 20px;line-height:1.8;font-size:14px}.policy .policy-list li{margin:4px 0}.policy-table-wrap{overflow-x:auto;margin:10px 0}.policy-table{width:100%;border-collapse:collapse;font-size:13px}.policy-table td,.policy-table th{border:1px solid var(--line);padding:8px 10px;text-align:left}.policy-table th{background:hsla(0,0%,100%,.04);color:var(--muted);font-weight:600}.footer-biz{font-weight:700;color:#c2cae8;font-size:13px}.nav-dot{display:inline-block;width:7px;height:7px;background:var(--danger,#e46a6a);border-radius:50%;margin-left:4px;vertical-align:super}.gift-banner{max-width:720px;margin:12px auto 0;padding:10px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:rgba(216,180,90,.12);border:1px solid var(--gold);border-radius:10px;color:var(--gold);font-size:14px}.gift-banner-actions{display:flex;align-items:center;gap:8px}.gift-banner-close{background:none;border:none;color:var(--muted);cursor:pointer;font-size:14px;padding:4px}