@font-face{font-family:'Gowun Dodum';font-style:normal;font-weight:400;font-display:swap;src:url('assets/GowunDodum-Regular.ttf') format('truetype')}
:root{--ink:#544b63;--muted:#807887;--pink:#ed9eb4;--rose:#b95478;--mint:#dceee4;--line:#eee5e5;--paper:#fffdf9;--purple:#b8a4d7}*{box-sizing:border-box}body{margin:0;background:#fffaf3;color:var(--ink);font-family:'Gowun Dodum','Malgun Gothic',sans-serif;font-size:16px}button,input{font:inherit}button{cursor:pointer;transition:transform .2s,background .2s}button:hover:not(:disabled){transform:translateY(-2px)}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #a68ac9;outline-offset:4px}button{border:0;color:var(--ink)}[hidden]{display:none!important}.topbar{max-width:1320px;margin:auto;padding:24px 44px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:11px;font-size:20px;font-weight:bold}.brand-icon{background:#f9e0e6;color:#be6684;font-size:35px;width:52px;height:52px;display:grid;place-items:center;border-radius:18px}.brand b{color:var(--rose)}.brand small{display:block;font-size:11px;font-weight:normal;letter-spacing:1px;margin-top:4px;color:var(--muted)}nav{display:flex;gap:10px}.icon-btn{background:transparent;font-size:13px;padding:12px}.nav-btn,.secondary{padding:12px 19px;background:white;border:1px solid var(--line);border-radius:13px}.nav-btn{background:#ede6f6;border-color:#e6ddf0;font-weight:bold}main{max-width:1200px;margin:auto;padding:0 36px}.intro{text-align:center;padding:42px 0 8px}.eyebrow{font-family:Arial,sans-serif;font-size:10px;font-weight:700;letter-spacing:2.5px;color:#a18296}h1{font-size:36px;font-weight:600;margin:14px 0}h1 em{font-style:normal;color:var(--rose);position:relative}h1 em:after{content:'';height:7px;position:absolute;bottom:1px;left:0;right:0;background:#f5d5df;z-index:-1;border-radius:20px}p{line-height:1.8}.intro p{font-size:14px;color:var(--muted);margin:12px 0}.play-layout{display:grid;grid-template-columns:1.12fr 1fr;align-items:center;gap:55px;max-width:1010px;margin:auto}.machine-stage{height:570px;position:relative;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 60%,#f9e9e3 0,transparent 65%)}.machine{width:320px;position:relative;z-index:1;filter:drop-shadow(0 16px 12px #d3bfb422)}.machine-art{display:block;width:100%}.ground{position:absolute;width:310px;height:26px;background:#e6d4cd69;border-radius:50%;bottom:38px;filter:blur(7px)}.bubble-label{position:absolute;top:23px;left:0;background:white;border:1px solid #f1dfd8;box-shadow:0 6px 12px #e8d6cd33;border-radius:18px 18px 4px 18px;padding:12px 18px;font-size:13px;transform:rotate(-5deg);z-index:2}.bubble-label span{color:#d37c99}.doodle{position:absolute;font-size:36px}.d1{top:125px;right:2px;color:#b7a3d7}.d2{bottom:112px;left:12px;color:#c5d9b9}.d3{top:88px;left:42px;color:#e8c677;font-size:20px}.stage-note{position:absolute;bottom:6px;font-size:12px;color:#8a7c87}.draw-panel{background:#fffdfb;border:1px solid #f0e5e4;border-radius:28px;padding:30px;box-shadow:0 10px 35px #b99eaf0d}.panel-top{display:flex;justify-content:space-between;align-items:center}.pill{background:#f4edf9;color:#886f9d;padding:6px 12px;border-radius:20px;font-size:11px}.tiny-flower{color:#dbb5c4;font-size:25px}h2{font-size:23px;margin:14px 0 8px}.muted{color:var(--muted);font-size:13px}.draw-panel>p{margin:0}.stats{display:flex;padding:21px 0;margin:18px 0;border-top:1px dashed var(--line);border-bottom:1px dashed var(--line)}.stats>div{flex:1;text-align:center}.stats>div+div{border-left:1px solid var(--line)}.stats span{display:block;font-size:11px;color:var(--muted)}.stats strong{display:block;font-size:27px;margin-top:6px}.stats>div:last-child strong{color:#ac6c8b}.stats small{font-size:13px;font-weight:normal;margin-left:6px}.field-label{display:block;font-size:13px;font-weight:bold;margin:18px 0 10px}.stepper{display:flex;background:#f8f3f2;border-radius:15px;padding:7px;justify-content:space-between;align-items:center}.stepper button{background:white;border-radius:10px;width:44px;height:43px;font-size:23px;box-shadow:0 2px 5px #bca9aa16}.stepper>div{display:flex;align-items:center}.stepper input{appearance:textfield;-moz-appearance:textfield;width:60px;border:0;background:transparent;text-align:center;font-size:24px;font-weight:bold;color:var(--ink)}input::-webkit-inner-spin-button{appearance:none}.stepper span{font-size:13px}.toggle-line{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:22px 0;font-size:12px}.toggle-line b{font-weight:normal}.toggle-line small{display:block;font-size:10px;color:var(--muted);margin-top:5px}input[role=switch]{appearance:none;flex-shrink:0;width:36px;height:22px;background:#dcd5de;border-radius:20px;position:relative;cursor:pointer}input[role=switch]:before{content:'';position:absolute;width:16px;height:16px;background:white;top:3px;left:3px;border-radius:50%;transition:left .2s}input[role=switch]:checked{background:#b9a0ce}input[role=switch]:checked:before{left:17px}.primary{background:#ecb0c2;color:#573d4f;font-weight:bold;border:1px solid #e7a3b9;padding:13px 21px;border-radius:13px;box-shadow:0 4px 0 #d994ac33}.draw-btn{width:100%;font-size:17px;padding:17px}.hint{text-align:center;font-size:11px;color:var(--muted);padding:12px 0!important;min-height:43px}.panel-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:14px;gap:6px}.text-btn{background:none;font-size:11px;color:#7e7087;padding:6px}.reduce{font-size:10px;color:var(--muted);display:flex;align-items:center}.reduce input{accent-color:#a78abc}.result-section{margin:28px 0 30px;border-top:1px solid var(--line);padding-top:28px}.section-title{display:flex;justify-content:space-between;align-items:center}.section-title h2{font-size:21px;margin:8px 0 20px}.result-grid{display:flex;flex-wrap:wrap;gap:14px}.empty-result{border:1px dashed #e5d6dc;border-radius:18px;width:100%;padding:20px;text-align:center;color:var(--muted);display:flex;gap:10px;align-items:center;justify-content:center;font-size:12px}.empty-result span{font-size:28px;color:#c3adcf}.winner{background:white;border:1px solid #eedfe6;border-radius:20px;padding:16px;text-align:center;min-width:140px;flex:1;max-width:210px;animation:pop .5s both;position:relative}.winner img{width:100px;height:100px;object-fit:cover;border-radius:50%;background:#faf0e9}.winner h3{margin:10px 0 4px;font-size:23px}.winner small{color:#a17a92;font-size:11px}.demo-banner{border-radius:14px;background:#f0f3e9;padding:12px 20px;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#728266;margin-bottom:30px}footer{max-width:1200px;margin:auto;padding:22px 36px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:11px;color:#a3979f}.admin-heading{display:flex;align-items:center;justify-content:space-between;margin:40px 0 25px}.admin-heading h1{font-size:32px}.admin-toolbar{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}.admin-toolbar>div{display:flex;gap:8px}input[type=text],input[type=search],#child-name{border:1px solid #e5dae4;background:white;padding:13px 16px;border-radius:12px;color:var(--ink)}.roster-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:22px 0 35px}.child-card{background:white;border:1px solid var(--line);border-radius:20px;text-align:center;padding:20px}.child-card.absent{opacity:.65;background:#f6f3f4}.child-card img{width:110px;height:110px;object-fit:cover;border-radius:50%;background:#faf2eb}.child-card h3{font-size:22px;margin:12px 0 0}.child-card .toggle-line{margin:10px 0}.child-card .card-actions{display:flex;justify-content:center;gap:15px;border-top:1px solid var(--line);padding-top:10px}.card-actions button{font-size:12px;background:none;padding:6px 12px}.card-actions .delete{color:#b35d76}.privacy{text-align:center;font-size:12px;color:#887c8c;margin:35px auto;line-height:1.9}dialog{border:1px solid #ecdfeb;border-radius:25px;box-shadow:0 25px 80px #57436133;padding:28px;width:min(570px,94vw);max-height:90vh;overflow:auto;color:var(--ink);background:#fffdf9}dialog::backdrop{background:#55485a66;backdrop-filter:blur(5px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center}.dialog-heading h2{margin:8px 0}.close{font-size:30px;background:none;padding:0 8px}#child-name{width:100%}.avatar-preview{display:flex;align-items:center;gap:20px;margin:20px 0;font-size:13px}.avatar-preview img{width:85px;height:85px;object-fit:cover;border-radius:50%;background:#f8eae7}.avatar-preview small{display:block;margin-top:6px;font-size:11px;color:var(--muted)}.tabs{display:flex;background:#f3edf3;border-radius:12px;padding:4px;margin-bottom:14px}.tabs button{width:50%;padding:11px;background:none;border-radius:9px;font-size:13px}.tabs .active{background:white;box-shadow:0 2px 6px #9f8eaa18}.animal-picker{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;max-height:275px;overflow:auto;padding:3px}.animal-option{border:2px solid transparent;border-radius:13px;background:#faf5f0;padding:4px;font-size:10px}.animal-option img{width:100%;aspect-ratio:1;object-fit:contain;display:block;border-radius:9px}.animal-option.selected{border-color:#b293cf;background:#efe4f5}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.upload-area{border:2px dashed #dfcce2;border-radius:15px;padding:22px;display:flex;align-items:center;flex-direction:column;gap:10px;font-size:14px;cursor:pointer}.upload-area small{font-size:11px;color:var(--muted)}.upload-area input{max-width:100%;font-size:11px}#crop-tools{text-align:center;padding-top:16px}#crop-canvas{max-width:200px;width:100%;border-radius:20px}#crop-tools label{display:flex;gap:15px;font-size:12px;margin:12px}#crop-tools input{flex:1;accent-color:#ba9dcd}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,30px);opacity:0;background:#61546e;color:white;border-radius:15px;padding:13px 22px;font-size:13px;z-index:20;transition:.3s;pointer-events:none;max-width:90vw}#toast.show{opacity:1;transform:translate(-50%,0)}.balls{position:absolute;left:15%;top:19%;width:70%;height:37%;border-radius:50%;overflow:hidden;pointer-events:none}.ball{position:absolute;width:32px;height:32px;border-radius:50%;border:1px solid #fff9;box-shadow:inset -4px -5px 7px #997d9d22,inset 3px 3px 5px #fff9;opacity:0}.ball:after,.exit-ball:after{content:'';position:absolute;top:48%;left:0;width:100%;border-top:2px solid #fff7;transform:rotate(-20deg)}.spinning .ball{opacity:1;animation:swirl 1s ease-in-out infinite alternate}.spinning .machine-art{animation:wobble .35s ease-in-out infinite alternate}.exit-ball{position:absolute;width:45px;height:45px;border-radius:50%;background:#d6c0ed;left:43%;top:78%;opacity:0;box-shadow:inset -6px -6px 8px #b193c4,inset 5px 5px 8px #fff8}.exit-ball.drop{animation:drop .8s both}#confetti{position:fixed;inset:0;pointer-events:none;z-index:30;overflow:hidden}.confetti-piece{position:absolute;width:9px;height:15px;top:-20px;animation:confetti 2.5s ease-out forwards}.reduced *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition:none!important}@keyframes swirl{0%{transform:translate(-30px,40px) rotate(0)}50%{transform:translate(55px,-45px) rotate(180deg)}100%{transform:translate(-35px,-70px) rotate(360deg)}}@keyframes wobble{to{transform:rotate(1.3deg)}}@keyframes drop{0%{opacity:0;transform:translateY(-15px) scale(.3)}30%{opacity:1}75%{opacity:1;transform:translateY(45px) scale(1)}100%{opacity:0;transform:translateY(55px) scale(1.1)}}@keyframes pop{from{opacity:0;transform:translateY(25px) scale(.85)}to{opacity:1;transform:none}}@keyframes confetti{to{transform:translateY(100vh) rotate(600deg);opacity:0}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}@media(min-width:1500px){.play-layout{gap:90px;max-width:1120px}.machine{width:350px}.machine-stage{height:595px}}@media(max-width:850px){.topbar{padding:18px 22px}.brand{font-size:16px}nav{gap:3px}.icon-btn{font-size:11px;padding:8px}.nav-btn{font-size:12px;padding:10px}.play-layout{gap:15px}.draw-panel{padding:22px}.machine{width:270px}.machine-stage{height:500px}.roster-grid{grid-template-columns:repeat(3,1fr)}h1{font-size:29px}.bubble-label{left:0;top:20px;font-size:11px}.doodle{display:none}.panel-bottom{flex-wrap:wrap}}@media(max-width:620px){main{padding:0 20px}.topbar{padding:14px 16px;align-items:flex-start}.brand small{display:none}.brand-icon{width:35px;height:35px;font-size:26px;border-radius:12px}.brand{font-size:13px;gap:7px}.icon-btn{font-size:0;padding:8px}.icon-btn:first-letter{font-size:17px}.nav-btn{padding:9px;font-size:11px}.intro{padding-top:30px}.intro h1{font-size:25px}.intro p{font-size:12px}.play-layout{grid-template-columns:1fr;gap:5px}.machine-stage{height:400px}.machine{width:245px}.bubble-label{top:25px;left:15px}.ground{bottom:18px;width:250px}.stage-note{bottom:0;font-size:10px}.draw-panel{margin-top:15px;padding:23px;border-radius:23px}.draw-panel h2{font-size:22px}.stats{padding:15px 0;margin:15px 0}.demo-banner{flex-direction:column;gap:6px;text-align:center}.roster-grid{grid-template-columns:repeat(2,1fr);gap:10px}.child-card{padding:15px}.child-card img{width:90px;height:90px}.admin-heading{align-items:flex-start;gap:10px}.admin-heading h1{font-size:26px}.admin-heading .secondary{font-size:11px;padding:10px;white-space:nowrap}.admin-toolbar>div{flex-wrap:wrap}.admin-toolbar button{font-size:11px;padding:11px}.admin-toolbar input{width:100%}.winner{min-width:125px;max-width:none}.winner img{width:85px;height:85px}footer{padding:20px;font-size:9px}.animal-picker{grid-template-columns:repeat(4,1fr)}dialog{padding:20px}.section-title h2{font-size:19px}.empty-result{font-size:11px;padding:15px}}
