@font-face{font-family:Pretendard;src:url(/fonts/PretendardVariable.woff2) format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap}:root{--font-sans: "Pretendard", -apple-system, BlinkMacSystemFont, "Segoe UI", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--color-primary: #2c5f8d;--color-primary-light: #3a7ab5;--color-primary-dark: #1e4366;--color-secondary: #ff9933;--color-secondary-light: #ffad5c;--color-secondary-dark: #e6852b;--color-accent: #e74c3c;--color-bg-primary: #ffffff;--color-bg-secondary: #f8f9fa;--color-bg-warm: #fffbf5;--color-bg-cream: #fef9f0;--color-bg-dark: #1a1a2e;--color-text-primary: #1a1a2e;--color-text-secondary: #4a5568;--color-text-muted: #718096;--color-border: #e2e8f0;--color-border-light: #f0f0f0;--color-book-healing: #e17055;--color-book-sleep: #9b89b3;--color-book-kit: #00b894;--color-book-development: #6c5ce7;--color-book-training: #2c5f8d;--color-book-breath: #5b7b9a;--color-book-golden: #e8a87c;--color-book-tummy: #78c1c8;--color-book-casebook: #5a7a4a;--color-book-everything: #7ab0c9;--color-book-essence: #5a8fa8;--badge-best-bg: #e74c3c;--badge-recommend-bg: #2c5f8d;--badge-new-bg: #27ae60;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.25rem;--radius-3xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .04);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .08), 0 2px 4px -2px rgb(0 0 0 / .06);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .05);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .04);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--ease-out: cubic-bezier(.16, 1, .3, 1);--duration-fast: .15s;--duration-base: .2s;--duration-slow: .3s;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem}html{font-family:var(--font-sans)}body{font-family:var(--font-sans);color:var(--color-text-primary);background-color:var(--color-bg-primary);-webkit-font-smoothing:antialiased;word-break:keep-all}.ds-h1{font-size:clamp(1.25rem,2.4vw,2rem);font-weight:800;line-height:1.25;letter-spacing:-.01em;color:var(--color-text-primary);word-break:keep-all}.ds-h2{font-size:clamp(1.5rem,2vw,1.875rem);font-weight:700;line-height:1.3;letter-spacing:-.01em;color:var(--color-text-primary)}.ds-h3{font-size:1.125rem;font-weight:700;line-height:1.4;color:var(--color-text-primary)}.ds-h4{font-size:1rem;font-weight:800;line-height:1.35;color:var(--color-text-primary)}.ds-subtitle{font-size:1rem;color:var(--color-text-muted);line-height:1.6}.ds-body{font-size:.875rem;line-height:1.7;color:var(--color-text-secondary)}.ds-body-lg{font-size:1rem;line-height:1.85;color:var(--color-text-secondary)}.ds-meta{font-size:.75rem;color:var(--color-text-muted)}.ds-tagline{font-size:.75rem;font-weight:700;color:var(--color-primary);letter-spacing:0}.ds-price{font-size:1.875rem;font-weight:800;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.ds-price-strike{font-size:1rem;color:var(--color-text-muted);text-decoration:line-through}*{box-sizing:border-box}html,body{margin:0;padding:0;background:#f0eee9;font-family:var(--font-sans)}.brand-gradient{background:linear-gradient(135deg,#2c5f8d,#3a7ab5)}.warm-gradient{background:linear-gradient(180deg,#fffbf5,#fef9f0)}.healing-gradient{background:linear-gradient(135deg,#e17055,#e8a87c)}.app-shell{position:relative;width:100%;max-width:500px;height:100vh;height:100dvh;margin:0 auto;background:#fffbf5;overflow:hidden}@media(min-width:501px){.app-shell{box-shadow:0 0 40px #0000000f}}.fullscreen-shell{width:100%;height:100vh;height:100dvh;overflow:auto;background:#fff}.screen{height:100%;background:#fffbf5;overflow-y:auto;overflow-x:hidden}.screen::-webkit-scrollbar{display:none}.status-spacer{height:max(12px,env(safe-area-inset-top))}.app-header{display:flex;align-items:center;justify-content:space-between;padding:8px 20px 14px;background:#fff;border-bottom:1px solid var(--color-border-light)}.app-title{font-weight:800;font-size:17px;color:var(--color-text-primary);letter-spacing:-.3px}.app-title .mark{color:var(--color-primary);margin-right:4px}.tab-bar{position:absolute;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--color-border-light);padding:8px 12px 28px;display:flex;justify-content:space-around}.tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 0;font-size:10px;color:var(--color-text-muted);font-weight:600}.tab.active{color:var(--color-primary)}.tab .em{font-size:22px;line-height:1}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:9999px;font-weight:700;font-family:inherit;border:none;cursor:pointer;transition:background .2s,box-shadow .2s}.btn-primary{background:var(--color-primary);color:#fff;padding:14px 24px;font-size:15px}.btn-primary:hover{background:var(--color-primary-dark)}.btn-secondary{background:var(--color-secondary);color:#fff;padding:14px 24px;font-size:15px;box-shadow:0 10px 15px -3px #00000026}.btn-secondary:hover{background:var(--color-secondary-dark)}.btn-outline{background:#fff;color:var(--color-primary);border:1.5px solid var(--color-primary);padding:10px 18px;font-size:13px}.btn-ghost{background:transparent;color:var(--color-text-secondary);padding:10px 16px;font-size:13px}.btn-block{width:100%}.card{background:#fff;border-radius:var(--radius-2xl);box-shadow:var(--shadow-sm);padding:20px}.card-flat{background:#fff;border:1px solid var(--color-border-light);border-radius:var(--radius-2xl);padding:16px}.pill{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:9999px;font-size:11px;font-weight:700}.pill-new{background:#27ae60;color:#fff}.pill-primary{background:var(--color-primary);color:#fff}.pill-soft{background:#2c5f8d14;color:var(--color-primary)}.pill-warm{background:#ff993320;color:var(--color-secondary-dark)}.pill-cat{background:#e1705520;color:#e17055;padding:4px 12px;font-weight:500}.status-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:9999px;font-size:12px;font-weight:700}.status-1{background:#2c5f8d14;color:var(--color-primary)}.status-2{background:#f932;color:var(--color-secondary-dark)}.status-3{background:#27ae6020;color:#1f7a3f}.dot{width:6px;height:6px;border-radius:50%;display:inline-block}.blink{animation:blink 1.4s infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.35}}.spinner{width:18px;height:18px;border-radius:50%;border:2.5px solid var(--color-primary);border-right-color:transparent;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.meta-row{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--color-text-muted)}.vslot{position:relative;border-radius:16px;overflow:hidden;background:#f3ece2;aspect-ratio:9/16}.vslot .ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#b79a74;font-size:11px;gap:6px}.vslot .ph .big{font-size:28px}.vslot.done{background:#2c5f8d}.vslot.done .thumb{position:absolute;inset:0;object-fit:cover;width:100%;height:100%;opacity:.85}.vslot .badge{position:absolute;top:6px;left:6px;background:#0000008c;color:#fff;font-size:10px;padding:2px 6px;border-radius:4px;font-weight:700;font-variant-numeric:tabular-nums}.vslot .dur{position:absolute;bottom:6px;right:6px;background:#0009;color:#fff;font-size:10px;padding:2px 6px;border-radius:4px;font-variant-numeric:tabular-nums}.tl{position:relative;padding-left:20px}.tl:before{content:"";position:absolute;left:6px;top:6px;bottom:6px;width:2px;background:linear-gradient(180deg,#2c5f8d,#f93);border-radius:1px}.tl-node{position:relative;margin-bottom:18px}.tl-node:before{content:"";position:absolute;left:-18px;top:6px;width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid var(--color-primary)}.tl-node.warm:before{border-color:var(--color-secondary)}.letter{background:#fffdf8;border-radius:20px;padding:24px 22px;box-shadow:0 1px 3px #0000000d,0 10px 30px #2c5f8d12;position:relative;overflow:hidden}.letter:before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:linear-gradient(90deg,var(--color-primary),var(--color-secondary))}.letter p{margin:0 0 14px;line-height:1.85;font-size:14px;color:#2a2a3e}.letter .sig{margin-top:12px;font-size:13px;color:var(--color-text-muted)}.letter .sig b{color:var(--color-primary);font-weight:700}.paper{background:#fff;border:1px solid var(--color-border-light);border-radius:14px;padding:14px;display:flex;gap:12px}.paper .cover{width:48px;height:62px;border-radius:6px;flex-shrink:0;background:linear-gradient(135deg,#2c5f8d,#5b7b9a);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;letter-spacing:.5px}.paper h5{margin:0 0 4px;font-size:13px;font-weight:700;color:var(--color-text-primary);line-height:1.4}.paper .src{font-size:11px;color:var(--color-text-muted)}.paper .quote{font-size:12px;color:var(--color-text-secondary);margin-top:6px;line-height:1.55;border-left:2px solid var(--color-primary);padding-left:8px}.upload-hero{border:2px dashed #cdb99a;border-radius:20px;padding:28px 16px;text-align:center;background:#fffdf8}.char-round{width:44px;height:44px;border-radius:50%;overflow:hidden;background:#f3ece2;flex-shrink:0;object-fit:cover}.hr-label{display:flex;align-items:center;gap:10px;color:var(--color-text-muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin:10px 0}.hr-label:before,.hr-label:after{content:"";flex:1;height:1px;background:var(--color-border)}.sec-lbl{font-size:11px;font-weight:700;color:var(--color-primary);text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px}.toast{position:fixed;left:12px;right:12px;top:50px;background:#1a1a2e;color:#fff;border-radius:14px;padding:12px 14px;display:flex;align-items:center;gap:10px;box-shadow:0 20px 40px #00000040;z-index:100;font-size:13px;animation:slideDown .5s var(--ease-out)}@keyframes slideDown{0%{transform:translateY(-120%);opacity:0}to{transform:translateY(0);opacity:1}}.tweaks-panel{position:fixed;bottom:16px;right:16px;z-index:200;width:260px;background:#fff;border-radius:16px;box-shadow:0 20px 50px #0003,0 0 0 1px #0000000d;padding:14px 16px;font-family:var(--font-sans);font-size:13px}.tweaks-panel h4{margin:0 0 10px;font-size:13px;font-weight:800;color:var(--color-primary)}.tweaks-panel label{display:flex;justify-content:space-between;align-items:center;margin:8px 0;font-size:12px;color:var(--color-text-secondary)}.tweaks-panel select,.tweaks-panel input[type=range]{font-family:inherit;font-size:12px}.tweaks-panel .chips{display:flex;gap:6px;flex-wrap:wrap}.tweaks-panel .chip{padding:4px 10px;border-radius:9999px;background:#f3ece2;color:var(--color-text-secondary);cursor:pointer;border:1px solid transparent;font-size:11px;font-weight:600}.tweaks-panel .chip.on{background:#2c5f8d14;color:var(--color-primary);border-color:#2c5f8d44}.admin{height:100%;display:grid;grid-template-columns:220px minmax(0,1fr);background:#f8f9fa}.admin-side{background:#1a1a2e;color:#fff;padding:22px 0;display:flex;flex-direction:column}.admin-side .brand{font-weight:800;font-size:15px;padding:0 22px 24px;border-bottom:1px solid rgba(255,255,255,.08)}.admin-side .brand .mark{color:#f93;margin-right:4px}.admin-side nav{padding:14px 0;flex:1}.admin-side a{display:flex;align-items:center;gap:10px;padding:10px 22px;color:#ffffffb3;font-size:13px;text-decoration:none;border-left:3px solid transparent}.admin-side a.active{background:#ffffff0f;color:#fff;border-left-color:#f93;font-weight:700}.admin-main{padding:28px 32px;overflow:auto}.admin-h1{font-size:22px;font-weight:800;letter-spacing:-.3px;margin:0 0 4px;color:var(--color-text-primary)}.admin-sub{color:var(--color-text-muted);font-size:13px;margin:0 0 24px}.parents-row{display:grid;grid-template-columns:1.6fr 60px 60px 60px 100px 110px 110px 30px;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid var(--color-border-light);font-size:13px}.parents-row.head{background:#fafafa;color:var(--color-text-muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}.parents-row:hover:not(.head){background:#fafafa}.parents-row:last-of-type{border-radius:0 0 14px 14px;border-bottom:none}.queue-row{display:grid;grid-template-columns:40px 1.2fr 1fr .8fr .8fr .8fr 40px;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid var(--color-border-light);background:#fff;font-size:13px}.queue-row.head{background:#f8f9fa;font-size:11px;color:var(--color-text-muted);font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:12px 18px}.queue-row:first-of-type{border-radius:14px 14px 0 0}.queue-row:last-of-type{border-radius:0 0 14px 14px;border-bottom:none}.ws{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:20px}.ws .pane{background:#fff;border-radius:16px;padding:20px;box-shadow:var(--shadow-sm)}.video-strip{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px}.video-strip .thumb{flex-shrink:0;width:90px;aspect-ratio:9/16;border-radius:10px;background:linear-gradient(135deg,#2c5f8d,#3a7ab5);cursor:pointer;position:relative;color:#fff;font-size:10px;padding:6px;font-weight:700}.video-strip .thumb.active{outline:3px solid var(--color-secondary);outline-offset:2px}.timeline-track{position:relative;height:44px;background:#f3ece2;border-radius:8px;margin-top:8px}.tl-marker{position:absolute;top:0;bottom:0;width:6%;background:#2c5f8d59;border-left:2px solid var(--color-primary);border-right:2px solid var(--color-primary)}.tl-marker.warm{background:#ff993359;border-color:var(--color-secondary)}.tl-label{position:absolute;top:-18px;font-size:10px;font-weight:700;color:var(--color-primary);white-space:nowrap}.tl-label.warm{color:var(--color-secondary-dark)}.sym-check{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;font-size:13px;color:var(--color-text-secondary);cursor:pointer}.sym-check input{margin:0;accent-color:var(--color-primary)}.sym-check.on{background:#2c5f8d10;color:var(--color-primary);font-weight:600}.sym-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:999px;font-size:11.5px;line-height:1.2;color:var(--color-text-secondary);background:#f7f8fa;border:1px solid #e2e8f0;cursor:pointer;-webkit-user-select:none;user-select:none}.sym-chip input{margin:0;width:12px;height:12px;accent-color:var(--color-primary)}.sym-chip:hover{background:#eef0f4}.sym-chip.on{background:#2c5f8d12;border-color:var(--color-primary);color:var(--color-primary);font-weight:600}.ai-panel{background:linear-gradient(180deg,#fffbf5,#fef9f0);border-radius:14px;padding:16px;border:1px solid #ffe4c4}.ai-panel .ai-h{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--color-primary);font-size:13px;margin-bottom:10px}.ai-panel .ai-step{display:flex;gap:10px;padding:8px 0;font-size:12px;color:var(--color-text-secondary);align-items:flex-start}.ai-panel .ai-step .mark-ok{color:#1f7a3f;font-weight:800}.ai-panel .ai-step .mark-run{color:var(--color-primary)}.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.archive-retro{display:grid;grid-template-columns:minmax(0,1.05fr) auto;gap:24px;align-items:flex-start}.archive-retro-info{min-width:0}.archive-retro-phone{position:sticky;top:20px}.archive-retro-phone-frame{width:393px;height:800px;background:#fffbf5;overflow:hidden;border-radius:44px;border:12px solid #1a1a2e;box-shadow:0 20px 60px #00000040;display:flex;flex-direction:column;position:relative}.archive-retro-phone-notch{height:28px;flex-shrink:0;display:flex;align-items:center;justify-content:center;position:relative}.archive-retro-phone-notch-bar{width:110px;height:22px;background:#1a1a2e;border-radius:0 0 14px 14px}.archive-retro-phone-scroll{flex:1;overflow-y:auto;overflow-x:hidden;background:#fffbf5;padding-bottom:30px}@media(max-width:1199px){.archive-retro{grid-template-columns:minmax(0,1fr)}.archive-retro-phone{position:static;justify-self:center}}@media(max-width:480px){.archive-retro-phone-frame{width:100%;max-width:393px;height:720px;border-width:8px;border-radius:32px}}.admin-table-wrap{background:#fff;border-radius:14px;box-shadow:var(--shadow-sm);overflow:hidden}.admin-hamburger,.admin-drawer-backdrop,.admin-drawer-close{display:none}@media(max-width:1023px){.admin{grid-template-columns:minmax(0,1fr);grid-template-rows:1fr;height:auto;min-height:100dvh;overflow-x:hidden}.admin-side{position:fixed;top:0;left:0;bottom:0;width:260px;max-width:84vw;transform:translate(-100%);transition:transform .22s ease;z-index:60;padding:16px 0;box-shadow:4px 0 24px #0000002e}.admin-side.is-open{transform:translate(0)}.admin-drawer-backdrop{display:block;position:fixed;inset:0;background:#0f172a73;z-index:55}.admin-hamburger{display:flex;position:fixed;top:12px;left:12px;width:40px;height:40px;z-index:50;border:1px solid #e2e8f0;background:#fff;border-radius:10px;padding:10px 8px;flex-direction:column;justify-content:space-between;align-items:stretch;cursor:pointer;box-shadow:0 2px 8px #0f172a0f}.admin-hamburger span{display:block;height:2px;background:#1a1a2e;border-radius:1px}.admin-drawer-close{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:transparent;border:1px solid rgba(255,255,255,.18);color:#ffffffbf;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit}.admin-main{padding:64px 16px 20px!important;overflow-x:hidden;overflow-y:visible}.ws{grid-template-columns:minmax(0,1fr)}}@media(max-width:768px){.admin-h1{font-size:18px}.admin-sub{font-size:12px;margin-bottom:16px}.admin-stats{grid-template-columns:repeat(2,1fr);gap:10px}.admin-stats>div{padding:12px 14px!important}.admin-stats>div>div:nth-child(2){font-size:22px!important}.admin-table-wrap{overflow-x:auto!important;-webkit-overflow-scrolling:touch}.admin-table-wrap>.queue-row{min-width:720px}.admin-table-wrap>div[style*=grid-template-columns]{min-width:880px}.pane div[style*="grid-template-columns: 1fr 1fr"]{grid-template-columns:1fr!important}.free-grant-form{grid-template-columns:1fr 1fr!important}.free-grant-form>label:nth-child(1),.free-grant-form>label:nth-child(4),.free-grant-form>button{grid-column:1 / -1}.pane{padding:16px!important}}@media(max-width:480px){.admin-main{padding:60px 12px 16px!important}}
