:root{--bg-primary:#faf9f6;--bg-secondary:#f4f2eb;--bg-card:#fff;--bg-input:#fcfcfa;--border-subtle:#c29d5d40;--border-active:#a37e3ebf;--accent-purple:#705b45;--accent-gold:#c29d5d;--accent-indigo:#4a5d6e;--text-primary:#2d2a26;--text-secondary:#6e675f;--text-muted:#9c9389;--gradient-hero:linear-gradient(180deg, #f5f3eb 0%, #faf9f6 50%, #fcfcfa 100%);--gradient-card:linear-gradient(145deg, #fff, #faf9f6);--gradient-button:linear-gradient(135deg, #c29d5d, #a37c3f);--gradient-gold:linear-gradient(135deg, #e0c082, #b58f4a);--shadow-card:0 10px 30px #a3917714;--shadow-glow:0 0 30px #c29d5d1f;--radius-card:16px;--radius-input:10px;--radius-btn:10px;--font-sans:"Noto Sans KR", sans-serif;--font-serif:"Noto Serif KR", serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.6;overflow-x:hidden}#root{flex-direction:column;min-height:100vh;display:flex}.app{background:var(--gradient-hero);min-height:100vh;position:relative;overflow:hidden}.app:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(#c29d5d14 0%,#0000 75%);width:60%;height:60%;position:fixed;top:-20%;left:-20%}.app:after{content:"";pointer-events:none;z-index:0;background:radial-gradient(#a391770f 0%,#0000 75%);width:50%;height:60%;position:fixed;bottom:-20%;right:-10%}.header{z-index:10;text-align:center;padding:48px 24px 0;position:relative}.header-icon{color:#fff;background:linear-gradient(135deg,#e0c082,#b58f4a);border-radius:50%;justify-content:center;align-items:center;width:68px;height:68px;margin-bottom:20px;font-size:28px;animation:4s ease-in-out infinite float;display:inline-flex;box-shadow:0 8px 24px #b58f4a33}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.header h1{font-family:var(--font-serif);background:linear-gradient(135deg,#4a3e3d,#705b45,#c29d5d);-webkit-text-fill-color:transparent;letter-spacing:-.5px;-webkit-background-clip:text;background-clip:text;margin-bottom:10px;font-size:clamp(24px,4vw,34px);font-weight:700}.header p{color:var(--text-secondary);max-width:460px;margin:0 auto;font-size:15px;font-weight:400;line-height:1.6}.main-container{z-index:10;flex-direction:column;gap:24px;max-width:700px;margin:0 auto;padding:32px 20px 60px;display:flex;position:relative}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:32px;transition:border-color .3s,box-shadow .3s}.card:hover{box-shadow:var(--shadow-card), var(--shadow-glow);border-color:#c29d5d73}.card-title{text-transform:uppercase;letter-spacing:1px;color:var(--accent-purple);align-items:center;gap:8px;margin-bottom:20px;font-size:13px;font-weight:600;display:flex}.card-title span{background:var(--gradient-button);border-radius:4px;width:4px;height:14px;display:inline-block}.form-group{flex-direction:column;gap:8px;margin-bottom:18px;display:flex}.form-group:last-child{margin-bottom:0}label{color:var(--text-secondary);align-items:center;gap:6px;font-size:14px;font-weight:600;display:flex}.label-badge{color:#8a6e3f;letter-spacing:.5px;background:#c29d5d1f;border-radius:100px;padding:2px 7px;font-size:10px;font-weight:600}input[type=text]{background:var(--bg-input);border:1.5px solid var(--border-subtle);border-radius:var(--radius-input);width:100%;color:var(--text-primary);font-family:var(--font-sans);outline:none;padding:13px 16px;font-size:15px;transition:border-color .25s,box-shadow .25s}input[type=text]::placeholder{color:var(--text-muted)}input[type=text]:focus{border-color:var(--border-active);box-shadow:0 0 0 3px #c29d5d14}.upload-zone{border:2px dashed var(--border-subtle);border-radius:var(--radius-input);text-align:center;cursor:pointer;background:#c29d5d05;padding:28px;transition:all .3s;position:relative}.upload-zone:hover,.upload-zone.drag-over{border-color:var(--border-active);background:#c29d5d0d}.upload-zone input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.upload-icon{margin-bottom:8px;font-size:28px;display:block}.upload-text{color:var(--text-secondary);margin-bottom:4px;font-size:14px;font-weight:500}.upload-hint{color:var(--text-muted);font-size:12px}.upload-success{border-radius:var(--radius-input);color:#7a6237;background:#c29d5d0f;border:1.5px solid #c29d5d40;justify-content:center;align-items:center;gap:10px;padding:14px;font-size:14px;font-weight:500;display:flex}.upload-success .file-name{color:#614d2a;text-overflow:ellipsis;white-space:nowrap;max-width:280px;font-weight:600;overflow:hidden}.syntax-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:4px;display:grid}.syntax-item{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:8px;padding:12px 14px;transition:border-color .2s}.syntax-item:hover{border-color:#c29d5d80}.syntax-code{color:#a37c3f;margin-bottom:3px;font-family:Courier New,monospace;font-size:13px;font-weight:600}.syntax-desc{color:var(--text-secondary);font-size:12px}.preview-list{flex-direction:column;gap:8px;max-height:220px;padding-right:4px;display:flex;overflow-y:auto}.preview-list::-webkit-scrollbar{width:4px}.preview-list::-webkit-scrollbar-track{background:0 0}.preview-list::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:4px}.preview-item{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:10px;align-items:flex-start;gap:12px;padding:12px 16px;font-size:13px;animation:.2s slideIn;display:flex}@keyframes slideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.preview-badge{background:var(--gradient-button);color:#fff;white-space:nowrap;border-radius:6px;flex-shrink:0;padding:3px 8px;font-size:11px;font-weight:600}.preview-verse{color:var(--text-primary);flex:1;line-height:1.5}.preview-empty{text-align:center;color:var(--text-muted);padding:24px;font-size:13px}.preview-count{color:var(--text-secondary);text-align:right;margin-top:10px;font-size:13px}.preview-count strong{color:#8a6e3f}.theme-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.theme-option{cursor:pointer;position:relative}.theme-option input[type=radio]{opacity:0;width:0;height:0;position:absolute}.theme-preview{border:2px solid var(--border-subtle);aspect-ratio:16/9;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:8px;transition:all .25s;display:flex;position:relative;overflow:hidden}.theme-option input:checked+.theme-preview{border-color:var(--accent-gold);box-shadow:0 0 0 2px #c29d5d66}.theme-preview .theme-title-preview{text-align:center;font-size:8px;font-weight:700;line-height:1.2}.theme-preview .theme-text-preview{text-align:center;opacity:.8;font-size:6px}.theme-label{text-align:center;color:var(--text-secondary);margin-top:6px;font-size:11px;font-weight:500}.theme-alabaster{color:#4a3e3d;background:linear-gradient(135deg,#f6f5f0,#fff)}.theme-olive{color:#2f3e32;background:linear-gradient(135deg,#eaece6,#f2f4f0)}.theme-morning{color:#2a3e4e;background:linear-gradient(135deg,#e6eef4,#f0f5fa)}.btn-generate{background:var(--gradient-button);border-radius:var(--radius-btn);color:#fff;width:100%;font-family:var(--font-sans);cursor:pointer;letter-spacing:.3px;border:none;justify-content:center;align-items:center;gap:10px;padding:16px 24px;font-size:16px;font-weight:700;transition:all .3s;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 16px #c29d5d4d}.btn-generate:before{content:"";opacity:0;background:linear-gradient(135deg,#ffffff26,#0000);transition:opacity .3s;position:absolute;inset:0}.btn-generate:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 24px #c29d5d73}.btn-generate:hover:before{opacity:1}.btn-generate:active:not(:disabled){transform:translateY(0)}.btn-generate:disabled{opacity:.5;cursor:not-allowed;transform:none}.spinner{border:2.5px solid #ffffff4d;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:20px;height:20px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast-container{z-index:1000;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:32px;left:50%;transform:translate(-50%)}.toast{white-space:nowrap;pointer-events:auto;border-radius:12px;align-items:center;gap:10px;padding:12px 20px;font-size:14px;font-weight:500;animation:.3s toastIn;display:flex;box-shadow:0 6px 24px #a3917726}@keyframes toastIn{0%{opacity:0;transform:translateY(16px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.toast.success{color:#2f3e32;background:#eaece6;border:1px solid #8b9d5d4d}.toast.error{color:#9c2a2a;background:#fdf2f2;border:1px solid #f080804d}.toast.info{border:1px solid var(--border-subtle);color:#705b45;background:#f4f2eb}.site-nav{z-index:100;-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);background:#faf9f6d9;width:100%;position:sticky;top:0;left:0;box-shadow:0 2px 12px #a3917708}.nav-inner{justify-content:space-between;align-items:center;max-width:1000px;margin:0 auto;padding:14px 24px;display:flex}.nav-logo{cursor:pointer;background:0 0;border:none;outline:none;align-items:center;gap:8px;padding:4px 0;display:flex}.nav-logo-icon{font-size:20px}.nav-logo-text{font-family:var(--font-serif);background:linear-gradient(135deg,#4a3e3d,#705b45,#c29d5d);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:18px;font-weight:700}.nav-links{align-items:center;gap:8px;list-style:none;display:flex}.nav-link{font-family:var(--font-sans);color:var(--text-secondary);border-radius:var(--radius-btn);cursor:pointer;background:0 0;border:none;outline:none;padding:8px 14px;font-size:14px;font-weight:500;transition:all .2s}.nav-link:hover{color:var(--text-primary);background:#c29d5d14}.nav-link-active{background:#c29d5d1f;font-weight:600;color:#8a6e3f!important}.nav-mobile-toggle{cursor:pointer;z-index:101;background:0 0;border:none;outline:none;padding:8px;display:none}.hamburger{flex-direction:column;justify-content:space-between;width:22px;height:16px;display:flex;position:relative}.hamburger span{background-color:var(--text-secondary);border-radius:2px;width:100%;height:2px;transition:all .3s;display:block}.hamburger-open span:first-child{transform:translateY(7px)rotate(45deg)}.hamburger-open span:nth-child(2){opacity:0}.hamburger-open span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.nav-mobile-menu{background:var(--bg-card);border-bottom:1px solid var(--border-subtle);z-index:99;flex-direction:column;gap:8px;width:100%;padding:16px 24px;animation:.25s ease-out slideDown;display:flex;position:absolute;top:100%;left:0;box-shadow:0 10px 20px #a3917714}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.nav-mobile-link{text-align:left;width:100%;font-family:var(--font-sans);color:var(--text-secondary);border-radius:var(--radius-input);cursor:pointer;background:0 0;border:none;outline:none;align-items:center;gap:12px;padding:12px 16px;font-size:15px;font-weight:500;transition:all .2s;display:flex}.nav-mobile-link:hover{color:var(--text-primary);background:#c29d5d0f}.nav-mobile-link-active{background:#c29d5d1a;font-weight:600;color:#8a6e3f!important}.nav-mobile-icon{font-size:16px}.page-container{z-index:10;flex:1;width:100%;max-width:800px;margin:0 auto;padding:40px 20px 80px;position:relative}.info-page{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:48px;animation:.4s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.info-back-btn{color:var(--text-secondary);font-family:var(--font-sans);cursor:pointer;background:0 0;border:none;outline:none;align-items:center;margin-bottom:28px;font-size:14px;font-weight:500;transition:color .2s,transform .2s;display:inline-flex}.info-back-btn:hover{color:var(--accent-gold);transform:translate(-4px)}.info-page-header{border-bottom:1px solid #c29d5d33;margin-bottom:32px;padding-bottom:24px}.info-page-header h1{font-family:var(--font-serif);color:var(--text-primary);background:linear-gradient(135deg,#4a3e3d,#705b45);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:8px;font-size:clamp(24px,5vw,32px);font-weight:700}.info-subtitle{color:var(--text-secondary);font-size:16px;font-weight:400}.info-updated{color:var(--text-muted);margin-top:8px;font-size:12px}.info-page-body{flex-direction:column;gap:36px;display:flex}.info-section{flex-direction:column;gap:12px;display:flex}.info-section h2{font-family:var(--font-serif);color:#4a3e3d;padding-left:14px;font-size:20px;font-weight:600;line-height:1.4;position:relative}.info-section h2:before{content:"";background:var(--gradient-button);border-radius:2px;width:4px;position:absolute;top:4px;bottom:4px;left:0}.info-text p{color:var(--text-secondary);margin-bottom:14px;font-size:15px;line-height:1.75}.info-text p:last-child{margin-bottom:0}.faq-item{border:1px solid var(--border-subtle);border-radius:var(--radius-input);background:var(--bg-input);margin-bottom:12px;transition:all .3s;overflow:hidden}.faq-item:hover{border-color:#c29d5d66;box-shadow:0 4px 12px #a391770a}.faq-item.faq-open{border-color:var(--accent-gold);background:var(--bg-card);box-shadow:var(--shadow-card)}.faq-question{cursor:pointer;width:100%;font-family:var(--font-sans);text-align:left;background:0 0;border:none;outline:none;align-items:center;gap:12px;padding:18px 20px;display:flex}.faq-q-icon{color:#8a6e3f;background:#c29d5d1f;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:inline-flex}.faq-q-text{color:var(--text-primary);flex:1;font-size:15px;font-weight:600;line-height:1.4}.faq-arrow{color:var(--text-muted);font-size:11px;transition:transform .2s}.faq-open .faq-arrow{color:var(--accent-gold)}.faq-answer{border-top:1px solid #c29d5d14;gap:12px;padding:16px 20px 20px 56px;animation:.2s slideDown;display:flex}.faq-a-icon{width:24px;height:24px;color:var(--accent-indigo);background:#4a5d6e1a;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.faq-answer p{color:var(--text-secondary);white-space:pre-line;margin:0;font-size:14.5px;line-height:1.7}.site-footer{background:var(--bg-secondary);border-top:1px solid var(--border-subtle);z-index:10;margin-top:auto;padding:56px 24px 32px;position:relative}.footer-inner{flex-wrap:wrap;justify-content:space-between;gap:40px;max-width:1000px;margin:0 auto 40px;display:flex}.footer-brand{flex:300px}.footer-logo{margin-right:8px;font-size:24px}.footer-brand-text{font-family:var(--font-serif);color:var(--text-primary);font-size:18px;font-weight:700}.footer-tagline{color:var(--text-secondary);margin-top:8px;font-size:13px;font-weight:400}.footer-links-grid{flex-wrap:wrap;flex:2 400px;justify-content:flex-end;gap:40px;display:flex}.footer-col{flex-direction:column;gap:10px;min-width:120px;display:flex}.footer-col h3{color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:13px;font-weight:600}.footer-col button{color:var(--text-secondary);font-family:var(--font-sans);text-align:left;cursor:pointer;background:0 0;border:none;outline:none;padding:2px 0;font-size:13px;transition:color .2s}.footer-col button:hover{color:var(--accent-gold)}.footer-bottom{text-align:center;max-width:1000px;color:var(--text-muted);border-top:1px solid #c29d5d1f;margin:0 auto;padding-top:24px;font-size:12px}@media (width<=768px){.nav-links{display:none}.nav-mobile-toggle{display:block}.page-container{padding:24px 16px 60px}.info-page{padding:28px 20px}.info-page-header h1{font-size:24px}.footer-inner{flex-direction:column;gap:32px}.footer-links-grid{justify-content:flex-start;gap:32px}}@media (width<=600px){.header{padding:32px 16px 0}.card{padding:24px 20px}.syntax-grid{grid-template-columns:1fr}.theme-grid{grid-template-columns:repeat(3,1fr)}}.contact-grid{grid-template-columns:1.2fr 1fr;align-items:start;gap:40px;margin-top:24px;display:grid}.contact-info{flex-direction:column;gap:24px;display:flex}.contact-form-card{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-card);padding:32px;box-shadow:0 4px 20px #a3917708}.form-card-title{font-family:var(--font-serif);color:var(--text-primary);border-bottom:1px solid #c29d5d26;margin-bottom:20px;padding-bottom:12px;font-size:18px;font-weight:600}.contact-form{flex-direction:column;gap:16px;display:flex}.contact-form input[type=text],.contact-form input[type=email]{background:var(--bg-card)}.form-select{background:var(--bg-card);border:1.5px solid var(--border-subtle);border-radius:var(--radius-input);width:100%;color:var(--text-primary);font-family:var(--font-sans);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23705B45' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 16px center;background-repeat:no-repeat;background-size:16px;outline:none;padding:13px 40px 13px 16px;font-size:15px;transition:all .25s}.form-select:focus{border-color:var(--border-active);box-shadow:0 0 0 3px #c29d5d14}.contact-form textarea{background:var(--bg-card);border:1.5px solid var(--border-subtle);border-radius:var(--radius-input);width:100%;color:var(--text-primary);font-family:var(--font-sans);resize:vertical;outline:none;padding:13px 16px;font-size:15px;transition:all .25s}.contact-form textarea:focus{border-color:var(--border-active);box-shadow:0 0 0 3px #c29d5d14}.btn-submit{margin-top:8px}.comments-card{margin-top:32px}@media (width<=768px){.contact-grid{grid-template-columns:1fr;gap:32px}.contact-form-card{padding:24px}}
