:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;min-height:100vh}body{background:linear-gradient(135deg,#faf5ff,#f0f9ff,#fdf2f8);font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.splash{position:fixed;top:0;left:0;width:100%;height:100vh;height:100dvh;background:linear-gradient(135deg,#faf5ff,#f0f9ff,#fdf2f8);display:flex;align-items:center;justify-content:center;z-index:9999;animation:splashFadeIn .3s ease-out}.splash-content{display:flex;flex-direction:column;align-items:center;gap:1.5rem;animation:splashPulse 1.5s ease-in-out infinite}.splash-logo{width:100px;height:100px;object-fit:contain;filter:drop-shadow(0 4px 20px rgba(167,139,186,.3))}.splash-text{font-family:Gowun Batang,"Noto Serif KR",serif;font-size:1.3rem;font-weight:400;letter-spacing:.15em;color:#5a4a6a}.splash-loader{width:40px;height:40px;border:2px solid rgba(167,139,186,.2);border-top-color:#a78bba;border-radius:50%;animation:spin 1s linear infinite}@keyframes splashFadeIn{0%{opacity:0}to{opacity:1}}@keyframes splashPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.02);opacity:.9}}@keyframes spin{to{transform:rotate(360deg)}}.status-bar{position:fixed;top:0;left:0;right:0;height:28px;background:#ffffffd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(167,139,186,.15);display:flex;align-items:center;justify-content:center;z-index:1000;cursor:pointer;transition:background .2s ease}.status-bar:hover{background:#fffffff2}.status-bar{transition:background .2s ease,opacity .3s ease}.status-bar-content{display:flex;align-items:center;gap:.5rem;font-size:.7rem;color:#8b7a9e;letter-spacing:.02em}.status-bar-item{display:flex;align-items:center;gap:.35rem}.status-bar-divider{opacity:.3;font-size:.6rem}.status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-dot.ok,.status-dot.connected{background:#10b981;box-shadow:0 0 4px #10b98180}.status-dot.checking{background:#a78bba;animation:statusPulse 1.2s ease-in-out infinite}.status-dot.error{background:#ef4444;box-shadow:0 0 4px #ef444480}@keyframes statusPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}.hero{position:relative;width:100%;height:100vh;height:100dvh;overflow:hidden;display:flex;align-items:center;justify-content:center}.hero-image{position:absolute;top:-10%;left:-5%;width:110%;height:120%;background:url(/hero.jpeg) center 20% / cover no-repeat;will-change:transform,filter;transition:filter .1s ease-out}@media(min-width:768px){.hero-image{background-position:center 25%}}@media(min-width:1200px){.hero-image{background-position:center 20%}}.hero-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(180deg,#faf5ff00,#faf5ff4d 50%,#faf5fff2 85%,#faf5ff);pointer-events:none;will-change:opacity}.hero-content{position:relative;z-index:10;text-align:center;padding:1.5rem 2.5rem;will-change:transform,opacity;background:#ffffff40;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:20px;border:1px solid rgba(255,255,255,.4);box-shadow:0 8px 32px #6b5b7a26,inset 0 0 0 1px #ffffff1a}.hero-date{font-family:Cormorant Garamond,"Noto Serif KR",serif;font-size:1.25rem;letter-spacing:.35em;color:#5a4a6a;margin-bottom:.5rem;font-weight:600;font-style:italic}.hero-names{font-family:Gowun Batang,"Noto Serif KR",serif;font-size:1.8rem;font-weight:400;letter-spacing:.12em;color:#4a3a5a;margin-bottom:.3rem}.hero-names:after{display:none}.hero-subtitle{font-family:Gowun Batang,"Noto Serif KR",serif;font-size:.9rem;letter-spacing:.25em;color:#6b5b7a;font-weight:700}.scroll-indicator{position:absolute;bottom:-25vh;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.75rem;color:#6b5b7a;font-family:Gowun Batang,"Noto Serif KR",serif;font-size:.95rem;letter-spacing:.15em;animation:fadeInUp 1s ease-out .5s both}.scroll-arrow{width:20px;height:20px;border-right:2px solid rgba(167,139,186,.5);border-bottom:2px solid rgba(167,139,186,.5);transform:rotate(45deg);animation:bounce 2s ease-in-out infinite}@keyframes fadeInUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes bounce{0%,20%,50%,80%,to{transform:rotate(45deg) translateY(0)}40%{transform:rotate(45deg) translateY(8px)}60%{transform:rotate(45deg) translateY(4px)}}.container{position:relative;width:100%;min-height:100vh;padding:3rem 1.25rem 2rem;display:flex;flex-direction:column;align-items:center;background:linear-gradient(135deg,#faf5ff,#f0f9ff,#fdf2f8)}.status-section,.guestbook-section{width:100%}h1{text-align:center;font-size:1.6rem;font-weight:300;letter-spacing:.1em;color:#6b5b7a;margin-bottom:.5rem}h1:after{content:"";display:block;width:60px;height:2px;background:linear-gradient(90deg,#a78bba,#7ba3b8,#b87b9b);margin:1rem auto 2rem;border-radius:1px}h2{font-size:.875rem;font-weight:500;letter-spacing:.05em;color:#8b7a9e;text-transform:uppercase;margin-bottom:1rem}h3{font-size:.85rem;font-weight:500;color:#7a8b9e;margin-bottom:1rem}.status-section{background:#ffffffb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1.25rem;border-radius:16px;margin-bottom:1.25rem;box-shadow:0 4px 24px #6b5b7a14;border:1px solid rgba(167,139,186,.15)}.status-grid{display:flex;flex-direction:column;gap:.75rem}.status-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#ffffff80;border-radius:10px}.status-label{font-size:.9rem;color:#6b7280}.status-ok{color:#10b981;font-weight:600;font-size:.85rem;display:flex;align-items:center;gap:.35rem}.status-ok:before{content:"●";font-size:.5rem}.status-error{color:#ef4444;font-weight:600;font-size:.85rem}.status-loading{color:#a78bba;font-size:.85rem;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.guestbook-section{background:#fffc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1.25rem;border-radius:16px;box-shadow:0 4px 24px #6b5b7a14;border:1px solid rgba(167,139,186,.15)}.guestbook-form{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem}.guestbook-form input,.guestbook-form textarea{width:100%;padding:1rem;border:1px solid rgba(167,139,186,.25);border-radius:12px;font-size:16px;background:#fffc;color:#4a4a5a;transition:all .2s ease;font-family:inherit}.guestbook-form input::placeholder,.guestbook-form textarea::placeholder{color:#a0a0b0}.guestbook-form input:focus,.guestbook-form textarea:focus{outline:none;border-color:#a78bba;box-shadow:0 0 0 3px #a78bba26}.guestbook-form textarea{min-height:120px;resize:none;line-height:1.6}.guestbook-form button{width:100%;padding:1rem 1.5rem;background:linear-gradient(135deg,#a78bba,#8b9eba);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:500;letter-spacing:.05em;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #a78bba4d}.guestbook-form button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #a78bba66}.guestbook-form button:active:not(:disabled){transform:translateY(0)}.guestbook-form button:disabled{background:#d1d5db;cursor:not-allowed;box-shadow:none}.refresh-btn{width:100%;padding:.75rem 1.2rem;background:transparent;border:1px solid rgba(167,139,186,.3);border-radius:8px;color:#8b7a9e;font-size:.85rem;cursor:pointer;transition:all .2s ease}.refresh-btn:hover{background:#a78bba1a;border-color:#a78bba80}.success{color:#10b981;font-size:.9rem;text-align:center;padding:.75rem;background:#10b9811a;border-radius:8px}.error{color:#ef4444;font-size:.9rem;text-align:center;padding:.75rem;background:#ef44441a;border-radius:8px}.empty{color:#a0a0b0;text-align:center;padding:2rem 1rem;font-size:.9rem}.entries-list{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid rgba(167,139,186,.15)}.entries-list ul{list-style:none;display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.entries-list li{padding:1.25rem;background:linear-gradient(135deg,#faf5ffcc,#f0f9ffcc);border-radius:12px;border:1px solid rgba(167,139,186,.1);transition:transform .2s ease,box-shadow .2s ease}.entries-list li:hover{transform:translateY(-2px);box-shadow:0 4px 12px #6b5b7a1a}.entries-list li strong{color:#6b5b7a;font-size:.95rem;font-weight:600}.entries-list li p{margin:.75rem 0;color:#5a5a6a;font-size:.9rem;line-height:1.6}.entries-list li small{color:#a0a0b0;font-size:.75rem}@media(min-width:768px){body{display:flex;justify-content:center;align-items:flex-start;padding:3rem 2rem}.container{width:clamp(400px,50vw,600px);min-height:auto;padding:2.5rem;background:#fff9;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:24px;box-shadow:0 8px 40px #6b5b7a1f;border:1px solid rgba(167,139,186,.2)}h1{font-size:1.75rem}.status-section,.guestbook-section{background:#ffffff80;padding:1.5rem}.status-item{background:#fff9}.refresh-btn{width:auto}}@media(min-width:1200px){body{padding:4rem}.container{width:clamp(500px,40vw,650px);padding:3rem}h1{font-size:2rem}}
