@import "https://fonts.googleapis.com/css2?family=Fredoka:wght@300..700&family=Outfit:wght@100..900&display=swap";@media print{body,html{color:#000!important;background:#fff!important;width:210mm!important;height:297mm!important;margin:0!important;padding:0!important}#root,header,nav,.btn,.no-print{display:none!important}.print-only{visibility:visible!important;color:#000!important;box-sizing:border-box!important;background:#fff!important;width:100%!important;height:100%!important;padding:15mm!important;font-family:Outfit,Helvetica Neue,Arial,sans-serif!important;display:block!important;position:absolute!important;top:0!important;left:0!important}@page{size:A4 portrait;margin:0}.print-worksheet{box-sizing:border-box;border:3px double #000;flex-direction:column;height:100%;padding:10mm;display:flex;position:relative}.print-header{border-bottom:2px solid #000;justify-content:space-between;align-items:center;margin-bottom:8mm;padding-bottom:5mm;display:flex}.print-logo{text-transform:uppercase;font-size:1.5rem;font-weight:800}.print-title{text-align:center;font-size:2rem;font-weight:800}.print-meta{text-align:right;font-size:.9rem}.print-child-info{background:#f3f4f6;border:1px solid #ddd;border-radius:4px;gap:15mm;margin-bottom:6mm;padding:3mm 5mm;font-size:1.1rem;font-weight:700;display:flex}.print-content{flex:1}.tracing-grid{grid-template-columns:repeat(5,1fr);gap:5mm;margin-top:5mm;display:grid}.tracing-card{text-align:center;border:1px solid #000;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;padding:4mm;display:flex}.tracing-character{margin-bottom:2mm;font-family:AppleGothic,Malgun Gothic,Noto Sans CKR,sans-serif;font-size:3.5rem;font-weight:700;line-height:1}.tracing-sound{color:#666;font-size:1rem;font-weight:700}.tracing-practice-row{align-items:center;gap:5mm;margin-bottom:5mm;display:flex}.practice-char-label{text-align:center;width:15mm;font-size:2.5rem;font-weight:700}.practice-boxes{flex:1;gap:3mm;display:flex}.practice-box{box-sizing:border-box;border:1.5px solid #000;width:18mm;height:18mm;position:relative}.practice-box-dotted{box-sizing:border-box;border:1.5px solid #000;justify-content:center;align-items:center;width:18mm;height:18mm;display:flex;position:relative}.practice-box-dotted:after{content:"";border-top:1px dotted #aaa;width:100%;position:absolute;top:50%;left:0}.practice-box-dotted:before{content:"";border-left:1px dotted #aaa;height:100%;position:absolute;top:0;left:50%}.tracing-letter-light{color:#ccc;font-family:AppleGothic,Malgun Gothic,sans-serif;font-size:3rem}.print-certificate{text-align:center;box-sizing:border-box;background:radial-gradient(circle,#fff 60%,#fafafa 100%);border:8px double #000;border-radius:12px;flex-direction:column;justify-content:space-between;align-items:center;height:100%;padding:15mm;display:flex}.cert-star{margin-bottom:5mm;font-size:4rem}.cert-title{letter-spacing:1px;margin-bottom:5mm;font-size:2.8rem;font-weight:800}.cert-text{max-width:160mm;margin:6mm 0;font-size:1.3rem;line-height:1.6}.cert-highlight{border-bottom:2px dashed #000;margin:4mm 0;padding-bottom:2mm;font-size:1.8rem;font-weight:700;display:inline-block}.cert-reward-box{background:#fdfdfd;border:2px dashed #000;margin:8mm 0;padding:5mm 15mm}.cert-signatures{justify-content:space-around;width:100%;margin-top:15mm;display:flex}.signature-line{border-top:1.5px solid #000;width:50mm;padding-top:2mm;font-size:1rem;font-weight:700}}.print-only{display:none}:root{--font-heading:"Outfit", sans-serif;--font-body:"Fredoka", sans-serif;--bg-dark:#0d0e12;--text-light:#f3f4f6;--text-muted:#9ca3af;--card-border:#ffffff14;--shadow-glow:0 0 20px #3b82f633;--parent-primary:#10b981;--parent-accent:#f59e0b;--parent-bg:linear-gradient(135deg, #091a14 0%, #060b09 100%);--parent-card:#10b9810f;--theme-primary:#3b82f6;--theme-accent:#06b6d4;--theme-bg:linear-gradient(135deg, #0b1528 0%, #05070c 100%);--theme-card:#3b82f60f}.theme-sean{--theme-primary:#3b82f6;--theme-accent:#22d3ee;--theme-bg:linear-gradient(135deg, #091220 0%, #030508 100%);--theme-card:#3b82f614}.theme-elin{--theme-primary:#ec4899;--theme-accent:#c084fc;--theme-bg:linear-gradient(135deg, #1f0b18 0%, #0a0409 100%);--theme-card:#ec489914}.theme-parent{--theme-primary:var(--parent-primary);--theme-accent:var(--parent-accent);--theme-bg:var(--parent-bg);--theme-card:var(--parent-card)}*{box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}body{font-family:var(--font-body);background:var(--bg-dark);color:var(--text-light);min-height:100vh;transition:background .5s;overflow-x:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#0003}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.glass-panel{-webkit-backdrop-filter:blur(16px);border:1px solid var(--card-border);background:#ffffff08;border-radius:24px;box-shadow:0 8px 32px #0006}.glass-panel-interactive{composes:glass-panel;cursor:pointer;transition:transform .3s cubic-bezier(.25,.8,.25,1),border-color .3s,box-shadow .3s}.glass-panel-interactive:hover{border-color:#ffffff26;transform:translateY(-4px);box-shadow:0 12px 40px #0009,0 0 15px #ffffff0d}.app-container{background:var(--theme-bg);flex-direction:column;min-height:100vh;transition:background .5s;display:flex;position:relative}.stars-bg{opacity:.15;pointer-events:none;z-index:0;background-image:radial-gradient(1px 1px at 20px 30px,#fff,#0000),radial-gradient(1.5px 1.5px at 40px 70px,#fff,#0000),radial-gradient(2px 2px at 90px 150px,#fff,#0000),radial-gradient(1px 1px at 150px 240px,#fff,#0000),radial-gradient(2px 2px at 250px 50px,#fff,#0000),radial-gradient(1.5px 1.5px at 300px 180px,#fff,#0000);background-repeat:repeat;background-size:350px 350px;width:100%;height:100%;animation:180s linear infinite drift;position:absolute;top:0;left:0}@keyframes drift{0%{background-position:0 0}to{background-position:350px 700px}}header{z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0d0e1266;border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex}.logo-container{align-items:center;gap:.75rem;display:flex}.logo-icon{font-size:2rem;animation:2s ease-in-out infinite pulse-glow}.logo-text{font-family:var(--font-heading);letter-spacing:-.5px;background:linear-gradient(90deg, var(--theme-primary), var(--theme-accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.5rem;font-weight:800}.btn{font-family:var(--font-heading);cursor:pointer;border:none;border-radius:14px;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.95rem;font-weight:700;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--theme-primary), var(--theme-accent));color:#fff;box-shadow:0 4px 15px #3b82f64d}.btn-primary:hover{box-shadow:0 6px 20px #3b82f680, 0 0 10px var(--theme-accent);transform:translateY(-2px)}.btn-secondary{color:var(--text-light);background:#ffffff0f;border:1px solid #ffffff14}.btn-secondary:hover{background:#ffffff1f;border-color:#fff3;transform:translateY(-2px)}.btn-ghost{color:var(--text-muted);background:0 0}.btn-ghost:hover{color:var(--text-light);background:#ffffff0d}.btn-sm{border-radius:10px;padding:.5rem 1rem;font-size:.85rem}.btn:active{transform:translateY(0)}.form-group{flex-direction:column;gap:.5rem;margin-bottom:1.25rem;display:flex}.form-label{font-family:var(--font-heading);color:var(--text-muted);font-size:.9rem;font-weight:600}.form-input,.form-select,.form-textarea{color:#fff;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;outline:none;padding:.75rem 1rem;font-family:inherit;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--theme-primary);box-shadow:0 0 0 3px #3b82f633}dialog{background:0 0;border:none;outline:none;width:90%;max-width:500px;margin:auto}dialog[open]{display:block}dialog[open]{opacity:1;transform:scale(1)}[popover]:popover-open{opacity:1;transform:scale(1)}@starting-style{[popover]:popover-open{opacity:0;transform:scale(.95)}}@starting-style{dialog[open]{opacity:0;transform:scale(.95)}}dialog,[popover]{opacity:0;transition-behavior:allow-discrete;transition-property:opacity,transform,display,overlay;transition-duration:.3s;transition-timing-function:cubic-bezier(.34,1.56,.64,1);transform:scale(.95)}dialog::backdrop{transition:display .3s allow-discrete, overlay .3s allow-discrete, background-color .3s ease-out;background-color:#0000}dialog[open]::backdrop{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background-color:#06080ed9}@starting-style{dialog[open]::backdrop{background-color:#0000}}@media (prefers-reduced-motion:reduce){dialog,[popover]{transition-duration:.1s;transform:none}@starting-style{dialog[open]{transform:none}[popover]:popover-open{transform:none}}}@keyframes pulse-glow{0%,to{filter:drop-shadow(0 0 5px var(--theme-primary));transform:scale(1)}50%{filter:drop-shadow(0 0 15px var(--theme-accent));transform:scale(1.1)}}.confetti-canvas{pointer-events:none;z-index:9999;width:100%;height:100%;position:fixed;top:0;left:0}main{z-index:1;flex:1;width:100%;max-width:1200px;margin:0 auto;padding:2rem}.fade-in{animation:.4s ease-out forwards fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){header{padding:.75rem 1rem!important}main{padding:.75rem!important}h1{font-size:2.25rem!important}h2{font-size:1.5rem!important}.logo-text{font-size:1.25rem!important}.logo-icon{font-size:1.5rem!important}}
