.school{--u:1px;--ink:#1f2a44;--ink-2:#48546f;--ink-3:#5f6982;--cream:#fff8ec;--cream-2:#fff2dc;--paper:#fff;--line:#eadfca;--mint:#2dbe9a;--mint-l:#cff5e8;--mint-d:#12816a;--coral:#ff7a55;--coral-l:#ffe1d6;--coral-d:#a83c1a;--blue:#4c93ff;--blue-l:#dcebff;--blue-d:#2563c4;--grape:#9b6cf0;--grape-l:#ece2ff;--grape-d:#6e45c2;--grape-m:#b593f6;--sun:#ffc832;--sun-l:#fff1c2;--sun-d:#c98f00;--pink:#ff6fae;--pink-l:#ffe0ee;--leaf:#4cbb63;--leaf-l:#ddf6e2;--sky:#cfeaff;--pop:0 5px 0 var(--ink);--pop-lg:0 7px 0 var(--ink);--soft:0 14px 34px #1f2a441f;--spring:cubic-bezier(.34, 1.56, .64, 1);--display:var(--font-jua), "Jua", "Apple SD Gothic Neo", sans-serif;--text:var(--font-geist-sans), "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif;min-height:100dvh;color:var(--ink);background-color:var(--cream);font-family:var(--text);font-size:calc(var(--u) * 17);letter-spacing:-.02em;word-break:keep-all;overflow-wrap:anywhere;-webkit-font-smoothing:antialiased;background-image:radial-gradient(circle at 1px 1px,#c9aa7838 1.2px,#0000 1.6px);background-size:22px 22px;flex-direction:column;line-height:1.6;display:flex;position:relative}.school.is-large{--u:1.16px}.school *,.school :before,.school :after{box-sizing:border-box}:where(.school) a{color:inherit;text-decoration:none}:where(.school) :where(button,input,textarea,select){font:inherit;letter-spacing:inherit;color:inherit}:where(.school) button{cursor:pointer}:where(.school) :where(h1,h2,h3,h4,p){margin:0}:where(.school) :where(h1,h2,h3){font-family:var(--display);letter-spacing:-.01em;font-weight:400;line-height:1.2}:where(.school) img{-webkit-user-drag:none}:where(.school) svg{flex-shrink:0}.school :focus-visible{outline:4px solid var(--sun);outline-offset:3px;box-shadow:0 0 0 7px var(--ink);border-radius:14px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.k-skip{z-index:300;border:3px solid var(--ink);background:var(--sun);font-family:var(--display);border-radius:14px;padding:12px 16px;position:fixed;top:-100px;left:12px}.k-skip:focus{top:10px}.k-display{font-family:var(--display);font-weight:400}.k-kicker{border:2.5px solid var(--ink);background:var(--paper);font-family:var(--display);font-size:calc(var(--u) * 15);box-shadow:0 3px 0 var(--ink);border-radius:999px;align-items:center;gap:7px;padding:5px 13px 4px;line-height:1.3;display:inline-flex}.k-kicker i{font-style:normal}.k-title{font-size:calc(var(--u) * 42)}.k-lead{color:var(--ink-2);font-size:calc(var(--u) * 18.5)}.k-note{color:var(--ink-2);font-size:calc(var(--u) * 14.5);line-height:1.55}.k-hl{background:linear-gradient(transparent 58%, var(--sun) 58%, var(--sun) 92%, transparent 92%);padding:0 2px}.k-btn{--b:var(--paper);border:3px solid var(--ink);background:var(--b);min-height:50px;color:var(--ink);font-family:var(--display);font-size:calc(var(--u) * 18.5);text-align:center;white-space:nowrap;box-shadow:var(--pop);transition:transform .14s var(--spring), box-shadow .14s ease, background-color .2s;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:10px 22px 9px;line-height:1.15;display:inline-flex;position:relative}.k-btn:hover{box-shadow:0 7px 0 var(--ink);transform:translateY(-2px)}.k-btn:active{box-shadow:0 1px 0 var(--ink);transition-duration:50ms;transform:translateY(4px)}.k-btn:disabled{cursor:not-allowed;opacity:1;color:#8a92a6;background:#eceef3;border-color:#b9bfcc;transform:none;box-shadow:0 5px #b9bfcc}.k-btn--sun{--b:var(--sun)}.k-btn--mint{--b:var(--mint)}.k-btn--coral{--b:var(--coral)}.k-btn--blue{--b:var(--blue)}.k-btn--grape{--b:var(--grape-m)}.k-btn--pink{--b:var(--pink)}.k-btn--ghost{--b:transparent;box-shadow:none;color:var(--ink-2);text-underline-offset:5px;border-color:#0000;text-decoration:underline;text-decoration-thickness:2px}.k-btn--ghost:hover{box-shadow:none;color:var(--ink);transform:none}.k-btn--ghost:active{box-shadow:none;transform:scale(.97)}.k-btn--lg{min-height:60px;font-size:calc(var(--u) * 21);padding:12px 28px 11px}.k-btn--sm{min-height:42px;font-size:calc(var(--u) * 16);box-shadow:0 4px 0 var(--ink);border-width:2.5px;padding:7px 16px 6px}.k-btn--sm:hover{box-shadow:0 5px 0 var(--ink)}.k-btn--ghost.k-btn--sm,.k-btn--ghost.k-btn--sm:hover{box-shadow:none}.k-btn--block{width:100%}.k-icon-btn{border:2.5px solid var(--ink);background:var(--paper);width:46px;height:46px;box-shadow:0 4px 0 var(--ink);transition:transform .14s var(--spring), box-shadow .14s;border-radius:16px;flex:none;place-items:center;padding:0;display:inline-grid}.k-icon-btn:hover{box-shadow:0 6px 0 var(--ink);transform:translateY(-2px)}.k-icon-btn:active{box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}.k-icon-btn[aria-pressed=true]{background:var(--sun)}.k-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.k-row--split{justify-content:space-between}.k-row--center{justify-content:center}.k-card{border:3px solid var(--ink);background:var(--paper);box-shadow:var(--pop-lg);border-radius:28px;position:relative}.k-soft{box-shadow:inset 0 0 0 2px var(--line);background:#ffffffb8;border-radius:24px}.k-bubble{border:3px solid var(--ink);background:var(--paper);box-shadow:var(--pop);border-radius:26px;padding:18px 22px;position:relative}.k-bubble:before,.k-bubble:after{content:"";width:0;height:0;position:absolute}.k-bubble--left:before{border:11px solid #0000;border-right:16px solid var(--ink);top:36px;left:-18px}.k-bubble--left:after{border:8px solid #0000;border-right:12px solid var(--paper);top:39px;left:-11px}.k-bubble--down:before{border:11px solid #0000;border-top:17px solid var(--ink);bottom:-20px;left:42px}.k-bubble--down:after{border:8px solid #0000;border-top:13px solid var(--paper);bottom:-12px;left:45px}.k-bubble-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.k-speak{border:2px solid var(--ink);background:var(--paper);width:34px;height:34px;box-shadow:0 2px 0 var(--ink);transition:transform .15s var(--spring);border-radius:50%;flex:none;place-items:center;padding:0;display:inline-grid}.k-speak:hover{background:var(--sun-l);transform:scale(1.1)rotate(-6deg)}.k-speak:active{box-shadow:none;transform:translateY(2px)}.k-speak[aria-pressed=true]{background:var(--sun)}.k-chip{border:2.5px solid var(--ink);background:var(--paper);min-height:44px;font-family:var(--display);font-size:calc(var(--u) * 16);text-align:left;box-shadow:0 3px 0 var(--ink);transition:transform .14s var(--spring), box-shadow .14s, background-color .2s;border-radius:999px;align-items:center;gap:7px;padding:8px 15px 7px;line-height:1.2;display:inline-flex}.k-chip:hover{box-shadow:0 5px 0 var(--ink);transform:translateY(-2px)rotate(-1deg)}.k-chip:active{box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}.k-chip[aria-pressed=true]{background:var(--sun)}.k-alert{border:2.5px solid var(--coral-d);background:var(--coral-l);color:#7a2a12;font-size:calc(var(--u) * 15.5);border-radius:18px;justify-items:start;gap:8px;padding:12px 16px;font-weight:650;animation:.45s k-shake;display:grid}.k-alert p{margin:0}.k-success{border:2.5px solid var(--mint-d);background:var(--mint-l);color:#0b4f40;font-size:calc(var(--u) * 15.5);animation:k-pop-in .4s var(--spring);border-radius:18px;padding:12px 16px;font-weight:650}.k-field{gap:8px;display:grid}.k-field>span:first-child{font-family:var(--display);font-size:calc(var(--u) * 17)}.k-input,.k-field input,.k-field textarea,.k-textarea{border:3px solid var(--ink);background:var(--paper);width:100%;min-height:54px;font-size:calc(var(--u) * 17.5);resize:vertical;border-radius:20px;padding:13px 16px;line-height:1.5;transition:box-shadow .2s,border-color .2s;box-shadow:inset 0 4px #1f2a4412}.k-input:focus,.k-field input:focus,.k-field textarea:focus,.k-textarea:focus{border-color:var(--ink);box-shadow:inset 0 4px 0 #1f2a4412, 0 0 0 5px var(--sun);outline:none}.k-input::placeholder,.k-field input::placeholder,.k-field textarea::placeholder,.k-textarea::placeholder{color:#9aa2b5}.k-progress{border:3px solid var(--ink);background:var(--paper);border-radius:999px;height:18px;position:relative;overflow:hidden}.k-progress>i{width:var(--p,0%);background:repeating-linear-gradient(-45deg, #ffffff59 0 8px, transparent 8px 16px), var(--sun);transition:width .9s var(--spring);background-size:23px 23px,auto;border-radius:999px;animation:1.2s linear infinite k-stripes;position:absolute;inset:0 auto 0 0}.k-crest{border:3px solid var(--ink);background:var(--mint);width:46px;height:50px;color:var(--ink);font-family:var(--display);letter-spacing:-1px;box-shadow:0 4px 0 var(--ink);border-radius:14px 14px 22px 22px;flex:none;justify-content:center;align-items:center;font-size:18px;display:inline-flex;transform:rotate(-5deg)}.k-crest i{color:var(--paper);margin:0 1px;font-size:12px;font-style:normal}.k-mascot{--gx:0;--gy:0;aspect-ratio:2/3;-webkit-user-select:none;user-select:none;flex:none;width:200px;position:relative}.k-mascot-body{transform-origin:50% 92%;animation:3.4s ease-in-out infinite k-bob;animation-delay:calc(var(--blink) * -1);position:absolute;inset:0}.k-mascot-body>img{object-fit:contain;pointer-events:none}.k-mascot-shadow{filter:blur(2px);height:5%;animation:3.4s ease-in-out infinite k-shadow;animation-delay:calc(var(--blink) * -1);background:#1f2a4429;border-radius:50%;position:absolute;bottom:1.5%;left:22%;right:22%}.k-face{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.k-eyes{transform:translate(calc(var(--gx) * 1px), calc(var(--gy) * 1px));transition:transform .28s cubic-bezier(.3,.7,.4,1)}.k-mascot:not(.is-gazing).mood-idle .k-eyes{animation:9s ease-in-out infinite k-glance;animation-delay:var(--blink)}.mood-listen .k-eyes{transform:translate(calc(var(--gx) * .4px), 14px)}.mood-think .k-eyes{transform:translate(-18px,-20px)}.mood-work .k-eyes{transform:translateY(10px)}.k-eye-blink{transform-box:fill-box;transform-origin:50%;animation:4.8s infinite k-blink;animation-delay:var(--blink)}.k-eye-shape,.k-mouth-shape{transform-box:fill-box;transform-origin:50%;animation:k-face-in .26s var(--spring)}.k-eye-heart{transform-box:fill-box;transform-origin:50%;animation:.9s ease-in-out infinite k-heartbeat}.k-eye-star{transform-box:fill-box;transform-origin:50%;animation:2.4s linear infinite k-star-spin}.k-brow{transform-box:fill-box;transform-origin:50%;transition:transform .3s var(--spring)}.mood-think .k-brow-r{transform:translateY(-22px)rotate(-8deg)}.mood-wow .k-brow{transform:translateY(-26px)}.mood-happy .k-brow,.mood-love .k-brow{transform:translateY(-10px)}.mood-work .k-brow-l{transform:translate(4px,10px)rotate(15deg)}.mood-work .k-brow-r{transform:translate(-4px,10px)rotate(-15deg)}.mood-oops .k-brow-l{transform:translateY(-6px)rotate(-14deg)}.mood-oops .k-brow-r{transform:translateY(-6px)rotate(14deg)}.mood-sleep .k-brow{transform:translateY(8px)}.k-cheek{transform-box:fill-box;transform-origin:50%;transition:transform .3s var(--spring)}.mood-happy .k-cheek,.mood-love .k-cheek{transform:scale(1.3)}.k-talk-a{animation:.34s step-end infinite k-talk-a}.k-talk-b{animation:.34s step-end infinite k-talk-b}.k-mouth-snore{animation:2.6s ease-in-out infinite k-snore}.mood-talk .k-mascot-body{animation:.68s ease-in-out infinite k-talk-bounce}.mood-think .k-mascot-body{animation:3s ease-in-out infinite k-think-tilt}.mood-listen .k-mascot-body{animation:2.6s ease-in-out infinite k-listen}.mood-happy .k-mascot-body{animation:k-hop .9s var(--spring) 2, k-bob 3.4s ease-in-out 1.8s infinite}.mood-love .k-mascot-body{animation:2.2s ease-in-out infinite k-sway}.mood-wow .k-mascot-body{animation:k-wow .6s var(--spring), k-bob 3.4s ease-in-out .6s infinite}.mood-oops .k-mascot-body{animation:.6s k-oops,3.4s ease-in-out .6s infinite k-bob}.mood-work .k-mascot-body{animation:.22s linear infinite k-work}.mood-sleep .k-mascot-body{animation:3.6s ease-in-out infinite k-breathe}.k-mascot-principal.mood-talk .k-mascot-body{animation:1.6s ease-in-out infinite k-sway}.k-fx{pointer-events:none;position:absolute;inset:0}.k-fx-think i{border:3px solid var(--ink);background:var(--paper);animation:k-pop-in .4s var(--spring) both;border-radius:50%;position:absolute}.k-fx-think i:first-child{aspect-ratio:1;width:7%;top:9%;right:9%}.k-fx-think i:nth-child(2){aspect-ratio:1;width:10%;animation-delay:.1s;top:3%;right:1%}.k-fx-think b{aspect-ratio:1.6;border:3px solid var(--ink);background:var(--paper);width:46%;animation:k-pop-in .4s var(--spring) .2s both;border-radius:50%;justify-content:center;align-items:center;gap:8%;display:flex;position:absolute;top:-12%;right:-26%}.k-fx-think em{aspect-ratio:1;background:var(--ink);border-radius:50%;width:13%;animation:1.1s ease-in-out infinite k-dot}.k-fx-think em:nth-child(2){animation-delay:.15s}.k-fx-think em:nth-child(3){animation-delay:.3s}.k-fx-spark i,.k-fx-love i,.k-fx-sleep i{font-style:normal;line-height:1;position:absolute}.k-fx-spark i{color:var(--sun);text-shadow:0 2px 0 var(--ink);font-size:clamp(14px,13%,40px);animation:1.4s ease-in-out infinite k-twinkle}.k-fx-spark.is-gold i{color:#ffd54a}.k-fx-spark i:first-child{top:8%;left:2%}.k-fx-spark i:nth-child(2){animation-delay:.3s;top:2%;right:4%}.k-fx-spark i:nth-child(3){animation-delay:.6s;top:30%;right:-2%}.k-fx-spark i:nth-child(4){animation-delay:.9s;top:34%;left:-4%}.k-fx-love i{color:var(--pink);font-size:clamp(14px,12%,34px);animation:2.2s ease-in infinite k-float-up}.k-fx-love i:first-child{top:22%;left:10%}.k-fx-love i:nth-child(2){animation-delay:.7s;top:14%;right:8%}.k-fx-love i:nth-child(3){animation-delay:1.4s;top:4%;left:46%}.k-fx-oops i{aspect-ratio:.7;border:2.5px solid var(--ink);background:#9fd8ff;border-radius:0 50% 50%/0 62% 38% 38%;width:9%;animation:1.6s ease-in infinite k-drop;position:absolute;top:14%;right:12%;transform:rotate(45deg)}.k-fx-sleep i{color:var(--blue-d);font-family:var(--display);font-size:clamp(14px,12%,34px);animation:2.7s ease-in infinite k-zzz;top:10%;right:6%}.k-fx-sleep i:nth-child(2){animation-delay:.9s}.k-fx-sleep i:nth-child(3){animation-delay:1.8s}.k-fx-work svg{width:22%;fill:var(--sun);stroke:var(--ink);stroke-width:1.4px;animation:2.4s linear infinite k-spin;position:absolute;top:2%;right:0}.k-fx-work circle{fill:var(--paper)}.k-confetti{z-index:400;pointer-events:none;width:100vw;height:100vh;position:fixed;inset:0}.k-celebrate-live{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.k-celebrate{z-index:350;cursor:pointer;background:#1f2a446b;place-items:center;padding:20px;animation:.25s both k-fade-in;display:grid;position:fixed;inset:0}.k-celebrate-card{--c:var(--sun);border:4px solid var(--ink);background:var(--paper);text-align:center;width:min(380px,100%);box-shadow:0 10px 0 var(--ink);animation:k-card-in .6s var(--spring) both;border-radius:34px;justify-items:center;gap:6px;padding:92px 26px 26px;display:grid;position:relative}.k-celebrate-rays{background:repeating-conic-gradient(from 0deg, color-mix(in srgb, var(--c) 55%, transparent) 0 10deg, transparent 10deg 20deg);z-index:0;border-radius:50%;width:300px;height:300px;margin-top:-110px;margin-left:-150px;animation:9s linear infinite k-spin;position:absolute;top:6px;left:50%;-webkit-mask:radial-gradient(circle,#000 30%,#0000 70%);mask:radial-gradient(circle,#000 30%,#0000 70%)}.k-celebrate-stamp{border:4px solid var(--ink);background:var(--c);width:124px;height:124px;box-shadow:0 6px 0 var(--ink), inset 0 0 0 7px #ffffff8c;z-index:1;border-radius:50%;place-items:center;margin-left:-62px;animation:.7s cubic-bezier(.2,1.4,.4,1) .15s both k-stamp-slam;display:grid;position:absolute;top:-52px;left:50%}.k-celebrate-stamp b{font-size:58px;font-weight:400;line-height:1}.k-celebrate-card small{font-family:var(--display);font-size:calc(var(--u) * 18);color:var(--ink-2);position:relative}.k-celebrate-card strong{font-family:var(--display);font-size:calc(var(--u) * 31);font-weight:400;line-height:1.2;position:relative}.k-celebrate-reward{border:2.5px solid var(--ink);background:var(--sun-l);font-family:var(--display);font-size:calc(var(--u) * 18);animation:k-pop-in .45s var(--spring) .5s both;border-radius:999px;align-items:center;gap:6px;margin:6px 0 12px;padding:6px 16px 5px;display:inline-flex}.k-celebrate-reward.is-plain{background:var(--mint-l)}.k-celebrate-reward i{color:var(--sun-d);font-style:normal}.k-flying-star{z-index:420;color:#ffc832;text-shadow:-1.5px -1.5px #1f2a44,1.5px -1.5px #1f2a44,-1.5px 1.5px #1f2a44,2px 2.5px #1f2a44;pointer-events:none;font-size:30px;line-height:1;position:fixed;top:0;left:0}.k-dialog{border:4px solid var(--ink);background:var(--cream);width:min(640px,100vw - 24px);max-width:none;max-height:calc(100dvh - 24px);color:var(--ink);box-shadow:0 12px 0 var(--ink);overscroll-behavior:contain;border-radius:36px;margin:auto;padding:0;overflow:auto}.k-dialog[open]{animation:k-card-in .5s var(--spring)}.k-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1f2a4480}.k-dialog-x{z-index:3;position:absolute;top:16px;right:16px}.k-student-inner{background-image:radial-gradient(circle at 1px 1px,#c9aa7840 1.2px,#0000 1.6px);background-size:22px 22px;padding:26px 30px 30px;position:relative}.k-student-steps{align-items:center;gap:8px;min-height:46px;margin:-6px 60px 10px 0;display:flex}.k-student-steps i{border:2px solid var(--ink);background:var(--paper);border-radius:999px;flex:1;height:10px;transition:background-color .4s}.k-student-steps i.is-on{background:var(--sun)}.k-student-step{animation:k-slide-in .34s var(--spring);gap:16px;display:grid}.k-student-h{font-size:calc(var(--u) * 30);text-align:center}.k-student-head{align-items:center;gap:12px;display:flex}.k-student-head .k-mascot{width:84px}.k-student-head .k-student-h,.k-student-head .k-student-sub{text-align:left}.k-student-head .k-student-sub{margin:4px 0 0}.k-student-h em{background:linear-gradient(transparent 55%, var(--sun) 55%, var(--sun) 90%, transparent 90%);font-style:normal}.k-student-sub{color:var(--ink-2);text-align:center;margin-top:-8px}.k-avatar-grid{grid-template-columns:repeat(6,1fr);gap:10px;display:grid}.k-avatar-grid button{aspect-ratio:1;border:3px solid var(--ink);background:var(--paper);box-shadow:0 4px 0 var(--ink);transition:transform .18s var(--spring), background-color .2s;border-radius:20px;place-items:center;font-size:32px;line-height:1;display:grid}.k-avatar-grid button:hover{transform:translateY(-3px)rotate(-4deg)}.k-avatar-grid button.is-on{background:var(--sun);animation:.5s k-jelly;transform:translateY(-3px)scale(1.06)}.k-name-row{align-items:center;gap:10px;display:flex}.k-name-preview{border:3px solid var(--ink);background:var(--sun-l);border-radius:50%;flex:none;place-items:center;width:54px;height:54px;font-size:30px;display:grid}.k-promises{gap:12px;display:grid}.k-promise{border:3px solid var(--ink);background:var(--paper);min-height:74px;font-size:calc(var(--u) * 16.5);text-align:left;box-shadow:0 5px 0 var(--ink);transition:transform .15s var(--spring), box-shadow .15s, background-color .3s;border-radius:22px;align-items:center;gap:14px;padding:12px 104px 12px 16px;font-weight:650;line-height:1.45;display:flex;position:relative}.k-promise:hover{transform:translateY(-2px)}.k-promise:active{box-shadow:0 1px 0 var(--ink);transform:translateY(4px)}.k-promise-icon{background:var(--cream-2);border-radius:50%;flex:none;place-items:center;width:50px;height:50px;font-size:28px;display:grid}.k-promise-stamp{color:#e0412a;width:78px;height:78px;font-family:var(--display);opacity:0;mix-blend-mode:multiply;border:4px double #e0412a;border-radius:50%;place-items:center;margin-top:-39px;font-size:19px;display:grid;position:absolute;top:50%;right:14px;transform:scale(2.2)rotate(-30deg)}.k-promise:after{content:"꾹!";border:2.5px dashed var(--ink-3);width:62px;height:62px;color:var(--ink-3);font-family:var(--display);border-radius:50%;place-items:center;font-size:16px;display:grid;position:absolute;top:50%;right:22px;translate:0 -50%}.k-promise.is-stamped{background:#fff7e8}.k-promise.is-stamped:after{opacity:0}.k-promise.is-stamped .k-promise-stamp{animation:.45s cubic-bezier(.2,1.5,.4,1) forwards k-stamp-in}.k-guardian{border:2.5px dashed var(--ink-3);font-size:calc(var(--u) * 15);background:#ffffffb3;border-radius:20px;align-items:flex-start;gap:12px;padding:14px 16px;line-height:1.55;display:flex}.k-guardian>span{font-size:24px;line-height:1.2}.k-guardian a{text-underline-offset:3px;font-weight:750;text-decoration:underline}.k-student-done{justify-items:center}.k-idcard{border:4px solid var(--ink);background:radial-gradient(circle at 90% 120%, var(--mint-l) 0 34%, transparent 35%), radial-gradient(circle at 0% -10%, var(--sun-l) 0 30%, transparent 31%), var(--paper);width:min(400px,100%);box-shadow:0 8px 0 var(--ink);text-align:left;border-radius:28px;position:relative;overflow:hidden}.k-idcard.is-fresh{animation:k-card-flip .9s var(--spring) both}.k-idcard-top{border-bottom:3px solid var(--ink);background:var(--mint);color:var(--ink);font-family:var(--display);align-items:center;gap:12px;padding:12px 16px;font-size:19px;line-height:1.1;display:flex}.k-idcard-top .k-crest{background:var(--sun);width:40px;height:44px;color:var(--ink);text-shadow:none;font-size:15px}.k-idcard-top small{letter-spacing:.18em;margin-top:3px;font-size:11px;display:block}.k-idcard-body{align-items:center;gap:16px;padding:18px 18px 8px;display:flex}.k-idcard-avatar{border:3px solid var(--ink);background:var(--sun-l);width:96px;height:96px;box-shadow:0 4px 0 var(--ink);border-radius:24px;flex:none;place-items:center;font-size:56px;line-height:1;display:grid}.k-idcard-body small{border:2px solid var(--ink);background:var(--blue-l);font-family:var(--display);border-radius:999px;padding:2px 10px;font-size:13px;display:inline-block}.k-idcard-body strong{font-family:var(--display);margin:4px 0 2px;font-size:30px;font-weight:400;line-height:1.15;display:block}.k-idcard-body div>span{color:var(--ink-2);font-size:14px;font-weight:650}.k-idcard-bottom{justify-content:space-between;align-items:center;padding:8px 18px 16px;display:flex}.k-idcard-promises{gap:6px;display:flex}.k-idcard-promises i{background:#fff1ee;border:2px solid #e0412a;border-radius:50%;place-items:center;width:38px;height:38px;font-size:19px;font-style:normal;display:grid;transform:rotate(-8deg)}.k-idcard-stars{border:2.5px solid var(--ink);background:var(--sun);font-family:var(--display);border-radius:999px;align-items:center;gap:5px;padding:4px 14px 3px;font-size:19px;display:inline-flex}.k-idcard-stars i{font-style:normal}.k-idcard-shine{pointer-events:none;background:linear-gradient(100deg,#0000,#ffffffbf,#0000);width:40%;animation:3.8s ease-in-out 1s infinite k-shine;position:absolute;inset:-50% auto -50% -60%;transform:rotate(18deg)}.k-idcard-stamp{color:#e0412a;width:92px;height:92px;font-family:var(--display);mix-blend-mode:multiply;border:5px double #e0412a;border-radius:50%;place-items:center;font-size:23px;animation:.5s cubic-bezier(.2,1.5,.4,1) .75s both k-stamp-in;display:grid;position:absolute;top:62px;right:18px;transform:rotate(-16deg)}.k-gate{border:3px dashed var(--ink);background:var(--sun-l);border-radius:24px;align-items:center;gap:16px;padding:16px 18px;display:flex}.k-gate .k-mascot{width:86px}.k-gate strong{font-family:var(--display);font-size:calc(var(--u) * 20);font-weight:400;display:block}.k-gate p{color:var(--ink-2);font-size:calc(var(--u) * 15);margin:2px 0 10px}.k-gate.k-access,.k-gate.k-daily{text-align:center;flex-direction:column;align-items:stretch}.k-access{background:var(--blue-l)}.k-access .k-mascot,.k-daily .k-mascot{align-self:center;width:84px}.k-access-body{width:min(520px,100%);margin-inline:auto;container-type:inline-size}.k-access strong{line-height:1.3}.k-access strong svg{color:var(--blue-d);vertical-align:-3px;margin-right:5px;display:inline-block}.k-access-form{gap:6px;margin-top:4px;display:grid}.k-access-form label{font-weight:800;font-size:calc(var(--u) * 15)}.k-access-row{gap:8px;display:flex}.k-access-input{border:3px solid var(--ink);background:var(--paper);width:0;min-width:0;height:54px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:calc(var(--u) * 21);letter-spacing:.08em;text-align:center;text-transform:uppercase;border-radius:16px;flex:1;padding:0 12px;font-weight:800}.k-access-input::placeholder{color:#8d96a8;font-weight:600}.k-access-input:focus-visible{outline:3px solid var(--blue-d);outline-offset:2px}.k-access-input[aria-invalid=true]{border-color:var(--coral-d)}.k-access-row .k-btn{flex:none;min-height:54px;padding-inline:16px}@container (max-width:330px){.k-access-row{flex-direction:column}.k-access-input{flex:none;width:100%}}.k-access-hint,.k-access-note{color:var(--ink-3);font-size:calc(var(--u) * 13.5);line-height:1.45}.k-access-alert{justify-items:center;margin-top:2px}.k-access-alert p{color:inherit;font-size:inherit;margin:0}.k-access-apply{margin-top:14px}.k-access-note{margin-top:12px;display:block}.k-gate.k-access.is-checking{background:var(--paper);min-height:72px;color:var(--ink-2);flex-direction:row;justify-content:center;align-items:center;gap:10px;font-weight:700}.k-access.is-checking svg{color:var(--blue-d);animation:1.2s ease-in-out infinite k-bob}.k-access.is-compact{border-width:2.5px;padding:14px}.k-daily{background:var(--grape-l)}.k-daily .k-row{flex-wrap:wrap;justify-content:center;gap:8px}.k-rise{animation:k-rise .62s var(--spring) both;animation-delay:calc(var(--i,0) * 70ms)}.k-pop{animation:k-pop-in .5s var(--spring) both;animation-delay:calc(var(--i,0) * 70ms)}@keyframes k-bob{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-3.5%)scale(.99,1.01)}}@keyframes k-shadow{0%,to{opacity:1;transform:scaleX(1)}50%{opacity:.7;transform:scaleX(.82)}}@keyframes k-blink{0%,93%,to{transform:scaleY(1)}95.5%{transform:scaleY(.08)}}@keyframes k-glance{0%,30%,to{transform:translate(0)}36%,48%{transform:translate(-16px,4px)}56%,66%{transform:translate(16px,-6px)}72%{transform:translate(0)}}@keyframes k-face-in{0%{opacity:0;transform:scale(.3)}}@keyframes k-heartbeat{0%,to{transform:scale(1)}30%{transform:scale(1.18)}60%{transform:scale(.96)}}@keyframes k-star-spin{to{transform:rotate(360deg)}}@keyframes k-talk-a{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes k-talk-b{0%,49%{opacity:0}50%,to{opacity:1}}@keyframes k-snore{0%,to{transform:scale(.7)}50%{transform:scale(1.25)}}@keyframes k-talk-bounce{0%,to{transform:translateY(0)rotate(0)}25%{transform:translateY(-2.2%)rotate(-1.5deg)}75%{transform:translateY(-1.2%)rotate(1.5deg)}}@keyframes k-think-tilt{0%,to{transform:rotate(-5deg)translateY(0)}50%{transform:rotate(-3deg)translateY(-2%)}}@keyframes k-listen{0%,to{transform:rotate(3deg)translateY(0)}50%{transform:rotate(4deg)translateY(-1.5%)}}@keyframes k-hop{0%,to{transform:translateY(0)scale(1)}15%{transform:translateY(0)scale(1.06,.92)}45%{transform:translateY(-11%)scale(.96,1.05)}75%{transform:translateY(0)scale(1.04,.95)}}@keyframes k-sway{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes k-wow{0%{transform:scale(1)}40%{transform:scale(1.1)translateY(-4%)}to{transform:scale(1)}}@keyframes k-oops{0%,to{transform:rotate(0)}20%{transform:rotate(-6deg)}40%{transform:rotate(5deg)}60%{transform:rotate(-3deg)}80%{transform:rotate(2deg)}}@keyframes k-work{0%,to{transform:translate(0)rotate(-.4deg)}50%{transform:translate(.6%,-.4%)rotate(.4deg)}}@keyframes k-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.015,.985)}}@keyframes k-dot{0%,to{opacity:.4;transform:translateY(0)}40%{opacity:1;transform:translateY(-40%)}}@keyframes k-twinkle{0%,to{opacity:0;transform:scale(.4)rotate(0)}40%{opacity:1;transform:scale(1.15)rotate(25deg)}70%{opacity:1;transform:scale(.9)rotate(45deg)}}@keyframes k-float-up{0%{opacity:0;transform:translateY(0)scale(.5)}20%{opacity:1;transform:translateY(-10px)scale(1)}to{opacity:0;transform:translateY(-70px)scale(.8)}}@keyframes k-drop{0%{opacity:0;transform:translateY(-6px)rotate(45deg)}20%{opacity:1}to{opacity:0;transform:translateY(34px)rotate(45deg)}}@keyframes k-zzz{0%{opacity:0;transform:translate(0)scale(.6)}25%{opacity:1}to{opacity:0;transform:translate(26px,-56px)scale(1.2)}}@keyframes k-spin{to{transform:rotate(360deg)}}@keyframes k-fade-in{0%{opacity:0}}@keyframes k-pop-in{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes k-card-in{0%{opacity:0;transform:translateY(40px)scale(.85)rotate(-3deg)}to{opacity:1;transform:none}}@keyframes k-card-flip{0%{opacity:0;transform:perspective(900px)rotateY(-100deg)scale(.7)}60%{opacity:1}to{transform:perspective(900px)rotateY(0)scale(1)}}@keyframes k-stamp-slam{0%{opacity:0;transform:scale(2.6)rotate(-25deg)}55%{opacity:1;transform:scale(.88)rotate(4deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes k-stamp-in{0%{opacity:0;transform:scale(2.2)rotate(-30deg)}to{opacity:1;transform:scale(1)rotate(-14deg)}}@keyframes k-shine{0%,55%{left:-60%}to{left:130%}}@keyframes k-slide-in{0%{opacity:.35;transform:translate(36px)}}@keyframes k-rise{0%{opacity:0;transform:translateY(26px)scale(.98)}}@keyframes k-shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(7px)}60%{transform:translate(-5px)}80%{transform:translate(3px)}}@keyframes k-jelly{0%{transform:translateY(-3px)scale(1.06)}30%{transform:translateY(-3px)scale(1.18,.9)}60%{transform:translateY(-3px)scale(.94,1.1)}to{transform:translateY(-3px)scale(1.06)}}@keyframes k-stripes{to{background-position:23px 0,0 0}}@media (max-width:640px){.k-btn{min-height:48px;font-size:calc(var(--u) * 17.5);padding:9px 18px 8px}.k-btn--lg{min-height:56px;font-size:calc(var(--u) * 19);padding:11px 22px 10px}.k-title{font-size:calc(var(--u) * 32)}.k-student-inner{padding:22px 16px}.k-student-h{font-size:calc(var(--u) * 25)}.k-avatar-grid{grid-template-columns:repeat(4,1fr)}.k-promise{font-size:calc(var(--u) * 15.5);padding-right:84px}.k-promise-stamp{width:66px;height:66px;margin-top:-33px;font-size:16px;right:10px}.k-promise:after{width:54px;height:54px;right:16px}.k-idcard-avatar{width:78px;height:78px;font-size:44px}.k-idcard-body strong{font-size:25px}.k-idcard-stamp{width:76px;height:76px;font-size:19px;top:58px}.k-gate{text-align:center;flex-direction:column}.k-access .k-mascot,.k-daily .k-mascot{width:72px}}@media (prefers-reduced-motion:reduce){.school *,.school :before,.school :after,.k-celebrate *,.k-dialog *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}
