@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;600;700&display=swap");

:root {
  font-family: "Noto Sans KR", Arial, sans-serif;
  color: #444;
  background: #f2f2f2;
  font-synthesis: none;
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }

.site-header { background: #fff; border-top: 3px solid #d0522e; }
.header-inner { width: min(1000px, calc(100% - 36px)); height: 76px; margin: auto; display: flex; align-items: center; justify-content: space-between; }
.sk-logo { position: relative; display: inline-flex; align-items: baseline; gap: 2px; padding-top: 10px; color: #c9492e; line-height: 1; }
.sk-logo strong { font-size: 27px; letter-spacing: -2px; }
.sk-logo b { font-size: 17px; letter-spacing: -1px; white-space: nowrap; }
.butterfly i { position: absolute; left: 18px; top: 4px; width: 22px; height: 8px; border-radius: 100% 0; background: #df512c; transform: rotate(22deg); }
.butterfly i:last-child { left: 35px; top: 8px; width: 17px; background: #e39c37; transform: rotate(-15deg); }
.user-menu { display: flex; align-items: center; gap: 12px; color: #888; font-size: 12px; }
.user-menu em { color: #b34b33; font-style: normal; }
.user-menu button { padding: 6px 10px; color: #777; background: #fafafa; border: 1px solid #d5d5d5; font-size: 11px; }
.site-header nav { height: 48px; color: #fff; background: #4b4746; border-bottom: 3px solid #c54f30; }
.site-header nav div { width: min(1000px,100%); height: 100%; margin: auto; display: grid; grid-template-columns: repeat(4,1fr); }
.site-header nav a { display: grid; place-items: center; font-size: 14px; border-left: 1px solid rgba(255,255,255,.12); }
.site-header nav a:last-child { border-right: 1px solid rgba(255,255,255,.12); }
.site-header nav a.active { background: #bd4e32; font-weight: 600; }

main { width: min(900px, calc(100% - 36px)); margin: auto; padding: 22px 0 75px; }
.location { display: flex; justify-content: flex-end; gap: 8px; color: #999; font-size: 11px; }
.location strong { color: #555; }
.page-title { padding: 32px 0 24px; border-bottom: 2px solid #4d4a48; }
.page-title h1 { margin: 0 0 8px; color: #333; font-size: 28px; letter-spacing: -.05em; }
.page-title p { margin: 0; color: #888; font-size: 13px; }

.application-summary { margin: 22px 0; }
.application-summary h2 { margin: 0 0 8px; font-size: 14px; }
table { width: 100%; border-collapse: collapse; background: #fff; border-top: 1px solid #7e7a78; }
th, td { padding: 13px 15px; border-bottom: 1px solid #ddd; font-size: 12px; text-align: left; }
th { width: 15%; color: #555; background: #f6f5f4; }
td { width: 35%; color: #777; }

.result-letter { position: relative; min-height: 750px; padding: 34px 58px 46px; background: #fff; border: 1px solid #d4d4d4; box-shadow: 0 3px 12px rgba(0,0,0,.04); }
.letter-logo { color: #c4472d; font-weight: 700; line-height: 1; }
.letter-logo span { font-size: 18px; letter-spacing: -1px; }
.letter-logo b { margin-left: 3px; font-size: 12px; letter-spacing: -1px; }

.happiness-banner { position: relative; height: 86px; margin: 17px 0 39px; padding: 18px 25px; overflow: hidden; color: #fff; background: linear-gradient(100deg,#b54c34 0%,#a94932 62%,#c77242 100%); }
.happiness-banner::after { content: ""; position: absolute; right: -30px; top: -35px; width: 220px; height: 145px; border: 25px solid rgba(255,255,255,.16); border-radius: 50%; }
.happiness-banner strong { display: block; font-family: Georgia,serif; font-size: 24px; font-weight: 400; letter-spacing: -.03em; }
.happiness-banner small { display: block; margin-top: 3px; color: rgba(255,255,255,.77); font-family: Arial,sans-serif; font-size: 9px; }
.banner-line { position: absolute; left: 25px; right: 25px; bottom: 10px; border-bottom: 1px solid rgba(255,255,255,.5); }

.result-heading { display: flex; align-items: center; gap: 22px; padding-bottom: 27px; border-bottom: 1px solid #dedede; }
.round-icon { position: relative; flex: 0 0 auto; width: 82px; height: 82px; border-radius: 50%; background: linear-gradient(145deg,#c95b36,#a64231); }
.person { position: absolute; left: 29px; top: 19px; width: 24px; height: 24px; border: 2px solid #fff; border-radius: 50%; }
.person::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 28px;
  width: 42px;
  height: 38px;
  border: 2px solid #fff;
  border-bottom: 0;
  border-radius: 24px 24px 0 0;
  transform: translateX(-50%);
}
.round-icon i { display: none; }
.result-heading > div:last-child > span { display: block; margin-bottom: 3px; color: #a44732; font-size: 20px; font-weight: 700; }
.result-heading h2 { margin: 0; color: #a44732; font-size: 26px; font-weight: 400; letter-spacing: -.04em; }

.letter-body { padding: 31px 7px 22px; color: #666; font-size: 13px; line-height: 1.8; }
.letter-body p { margin: 0 0 18px; }
.letter-body em { color: #a44732; font-style: normal; font-weight: 700; }
.letter-body .congratulations { padding: 16px 20px; color: #555; background: #faf6f4; border-left: 3px solid #bd5135; }
.letter-body strong { color: #b34b32; }

.schedule-box { margin-top: 8px; border-top: 2px solid #6e6967; border-bottom: 1px solid #ccc; }
.schedule-box h3 { margin: 0; padding: 11px 16px; color: #555; background: #f2f0ef; font-size: 13px; }
.schedule-box dl { margin: 0; }
.schedule-box dl div { display: grid; grid-template-columns: 150px 1fr; border-top: 1px solid #ddd; }
.schedule-box dt, .schedule-box dd { margin: 0; padding: 10px 16px; font-size: 12px; }
.schedule-box dt { color: #555; background: #fafafa; }
.schedule-box dd { color: #777; }
.schedule-box > p { margin: 0; padding: 8px 15px; color: #999; font-size: 10px; border-top: 1px solid #ddd; }
.signature { margin: 28px 0 0; text-align: right; color: #555; font-size: 13px; font-weight: 600; }

.button-area { display: flex; justify-content: center; gap: 6px; padding-top: 28px; }
.button-area a, .button-area button { min-width: 105px; padding: 10px 18px; text-align: center; font-size: 12px; border: 0; }
.button-area a { color: #555; background: #fff; border: 1px solid #aaa; }
.button-area button { color: #fff; background: #a94b35; border: 1px solid #963e2a; }

footer { padding: 26px max(3vw,20px); color: #888; background: #3d3a39; font-size: 10px; }
footer div { display: flex; gap: 20px; align-items: center; width: min(1000px,100%); margin: auto; }
footer strong { color: #d2d2d2; font-size: 14px; }
footer p { width: min(1000px,100%); margin: 10px auto 0; color: #777; }

.prank-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: 24px;
  opacity: 0;
  visibility: hidden;
  transition: opacity .35s ease, visibility .35s ease;
}
.prank-modal.open { opacity: 1; visibility: visible; }
.prank-backdrop { position: absolute; z-index: 0; inset: 0; background: rgba(15,12,12,.9); backdrop-filter: blur(8px); }
.prank-modal section {
  position: relative;
  z-index: 3;
  width: min(760px,100%);
  padding: 70px 50px 55px;
  overflow: hidden;
  text-align: center;
  color: #27211f;
  background: #fff;
  border-top: 8px solid #c55335;
  box-shadow: 0 30px 100px rgba(0,0,0,.5);
  transform: translateY(30px) scale(.94);
  transition: transform .45s cubic-bezier(.2,.85,.25,1.2);
}
.prank-modal.open section { transform: none; }
.prank-modal section::before,
.prank-modal section::after {
  content: "";
  position: absolute;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  background: rgba(197,83,53,.08);
}
.prank-modal section::before { left: -90px; top: -90px; }
.prank-modal section::after { right: -70px; bottom: -110px; }
.prank-emoji { font-size: 78px; line-height: 1; animation: prank-bounce .8s .25s both; }
.prank-label { margin: 22px 0 8px; color: #c55335; font: 700 12px/1 Arial,sans-serif; letter-spacing: .22em; }
.prank-modal h2 { margin: 0; color: #b84d32; font-size: clamp(42px,7vw,76px); letter-spacing: -.07em; }
.prank-modal section > p:last-of-type { margin: 24px 0 33px; color: #666; font-size: 17px; line-height: 1.9; }
.prank-modal button { min-width: 230px; padding: 16px 28px; color: #fff; background: #b94e33; border: 0; font-weight: 700; }
@keyframes prank-bounce {
  0% { opacity: 0; transform: scale(.3) rotate(-15deg); }
  65% { transform: scale(1.15) rotate(8deg); }
  100% { opacity: 1; transform: none; }
}
.prank-backdrop {
  background:
    radial-gradient(circle at 20% 20%, rgba(255,64,109,.3), transparent 30%),
    radial-gradient(circle at 80% 25%, rgba(103,77,255,.35), transparent 32%),
    radial-gradient(circle at 50% 90%, rgba(255,184,0,.28), transparent 35%),
    rgba(12,8,20,.94);
  animation: backdrop-party 4s ease-in-out infinite alternate;
}
.prank-modal section {
  border: 3px solid transparent;
  border-radius: 28px;
  background:
    linear-gradient(#fff,#fff) padding-box,
    linear-gradient(120deg,#ff4e72,#ffb000,#7657ff,#13c8b5,#ff4e72) border-box;
  background-size: 100% 100%, 300% 300%;
  animation: party-border 3s linear infinite;
}
.prank-modal section::before {
  width: 260px; height: 260px; left: -120px; top: -135px;
  background: radial-gradient(circle,rgba(255,85,120,.2),transparent 68%);
}
.prank-modal section::after {
  width: 300px; height: 300px; right: -140px; bottom: -180px;
  background: radial-gradient(circle,rgba(105,77,255,.18),transparent 68%);
}
.prank-modal h2 {
  background: linear-gradient(90deg,#f03d6d,#ff9d00,#7158f5,#12bcae,#f03d6d);
  background-size: 250% auto;
  color: transparent;
  -webkit-background-clip: text;
  background-clip: text;
  animation: title-shine 2.5s linear infinite;
  filter: drop-shadow(0 8px 16px rgba(176,72,116,.2));
}
.prank-label { color: #7b5df5; }
.prank-emoji { filter: drop-shadow(0 12px 14px rgba(255,153,0,.3)); }
.prank-modal.open .prank-emoji { animation: emoji-party 1.2s .2s both, emoji-float 1.8s 1.4s ease-in-out infinite; }
.prank-modal button {
  position: relative; overflow: hidden; border-radius: 999px;
  background: linear-gradient(100deg,#f33e6e,#ff8d1b,#7857f4);
  box-shadow: 0 12px 28px rgba(194,64,103,.3);
  transition: transform .2s, box-shadow .2s;
}
.prank-modal button:hover { transform: translateY(-3px) scale(1.03); box-shadow: 0 16px 35px rgba(194,64,103,.4); }
.prank-modal button::after {
  content: ""; position: absolute; top: -60%; left: -35%; width: 25%; height: 220%;
  background: rgba(255,255,255,.55); transform: rotate(25deg);
  animation: button-sparkle 2.2s infinite;
}
.fireworks { position: fixed; z-index: 1; inset: 0; pointer-events: none; }
.fireworks b {
  position: absolute; left: 18%; top: 28%; width: 8px; height: 8px; border-radius: 50%;
  color: #ff4772; opacity: 0;
  box-shadow: 0 -90px 0 currentColor,64px -64px 0 #ffb000,90px 0 0 #7657ff,64px 64px 0 #12c7b2,0 90px 0 #ff4772,-64px 64px 0 #ffb000,-90px 0 0 #7657ff,-64px -64px 0 #12c7b2;
}
.fireworks b:nth-child(2) { left: 79%; top: 22%; color: #7657ff; transform: scale(.75); }
.fireworks b:nth-child(3) { left: 74%; top: 76%; color: #12c7b2; transform: scale(.6); }
.prank-modal.open .fireworks b { animation: firework-burst 2.4s .15s ease-out infinite; }
.prank-modal.open .fireworks b:nth-child(2) { animation-delay: .85s; }
.prank-modal.open .fireworks b:nth-child(3) { animation-delay: 1.5s; }
.confetti { position: fixed; z-index: 4; inset: 0; pointer-events: none; overflow: hidden; }
.confetti i { position: absolute; top: -35px; width: 11px; height: 21px; opacity: 0; background: #ff4772; }
.prank-modal.open .confetti i { animation: confetti-fall 4.2s linear infinite; }
.confetti i:nth-child(4n+2) { width: 13px; height: 13px; border-radius: 50%; background: #ffb000; }
.confetti i:nth-child(4n+3) { background: #7657ff; transform: rotate(45deg); }
.confetti i:nth-child(4n) { width: 8px; height: 20px; background: #12c7b2; }
.confetti i:nth-child(1) { left: 4%; animation-delay: .1s; }.confetti i:nth-child(2) { left: 11%; animation-delay: 1.2s; }
.confetti i:nth-child(3) { left: 18%; animation-delay: .45s; }.confetti i:nth-child(4) { left: 25%; animation-delay: 1.7s; }
.confetti i:nth-child(5) { left: 32%; animation-delay: .8s; }.confetti i:nth-child(6) { left: 39%; animation-delay: 2.1s; }
.confetti i:nth-child(7) { left: 46%; animation-delay: .2s; }.confetti i:nth-child(8) { left: 53%; animation-delay: 1.35s; }
.confetti i:nth-child(9) { left: 60%; animation-delay: .65s; }.confetti i:nth-child(10) { left: 67%; animation-delay: 2.3s; }
.confetti i:nth-child(11) { left: 73%; animation-delay: .3s; }.confetti i:nth-child(12) { left: 79%; animation-delay: 1.55s; }
.confetti i:nth-child(13) { left: 84%; animation-delay: .95s; }.confetti i:nth-child(14) { left: 89%; animation-delay: 2s; }
.confetti i:nth-child(15) { left: 94%; animation-delay: .5s; }.confetti i:nth-child(16) { left: 98%; animation-delay: 1.15s; }
.confetti i:nth-child(17) { left: 7%; animation-delay: 2.4s; }.confetti i:nth-child(18) { left: 14%; animation-delay: 3.1s; }
.confetti i:nth-child(19) { left: 21%; animation-delay: 2.75s; }.confetti i:nth-child(20) { left: 28%; animation-delay: 3.55s; }
.confetti i:nth-child(21) { left: 35%; animation-delay: 2.2s; }.confetti i:nth-child(22) { left: 42%; animation-delay: 3.8s; }
.confetti i:nth-child(23) { left: 49%; animation-delay: 2.9s; }.confetti i:nth-child(24) { left: 56%; animation-delay: 3.35s; }
.confetti i:nth-child(25) { left: 63%; animation-delay: 2.55s; }.confetti i:nth-child(26) { left: 70%; animation-delay: 3.95s; }
.confetti i:nth-child(27) { left: 77%; animation-delay: 2.35s; }.confetti i:nth-child(28) { left: 83%; animation-delay: 3.25s; }
.confetti i:nth-child(29) { left: 88%; animation-delay: 2.8s; }.confetti i:nth-child(30) { left: 92%; animation-delay: 3.65s; }
.confetti i:nth-child(31) { left: 96%; animation-delay: 2.15s; }.confetti i:nth-child(32) { left: 2%; animation-delay: 3.45s; }
@keyframes backdrop-party { to { filter: hue-rotate(30deg); } }
@keyframes party-border { to { background-position: 100% 100%,300% 0; } }
@keyframes title-shine { to { background-position: 250% center; } }
@keyframes emoji-party {
  0% { opacity: 0; transform: scale(.2) rotate(-30deg); }
  55% { transform: scale(1.35) rotate(15deg); }
  75% { transform: scale(.9) rotate(-8deg); }
  100% { opacity: 1; transform: none; }
}
@keyframes emoji-float { 50% { transform: translateY(-9px) rotate(4deg); } }
@keyframes button-sparkle { 0%,35% { left: -35%; } 70%,100% { left: 125%; } }
@keyframes firework-burst {
  0% { opacity: 0; transform: scale(.05) rotate(0); filter: brightness(2); }
  18% { opacity: 1; }
  55% { opacity: 1; transform: scale(1.05) rotate(20deg); filter: brightness(1.6) drop-shadow(0 0 8px currentColor); }
  100% { opacity: 0; transform: scale(1.45) rotate(35deg); filter: brightness(1); }
}
@keyframes confetti-fall {
  0% { opacity: 0; transform: translate3d(0,-35px,0) rotate(0); }
  10% { opacity: 1; }
  50% { transform: translate3d(35px,50vh,0) rotate(420deg); }
  100% { opacity: .85; transform: translate3d(-25px,105vh,0) rotate(900deg); }
}

/* Windows 95 dialog */
.prank-modal { font-family: Tahoma, "MS Sans Serif", Arial, sans-serif; transition: none; }
.prank-backdrop { background: rgba(0,0,0,.38); backdrop-filter: none; animation: none; }
.prank-modal section,
.prank-modal.open section {
  width: min(520px,100%);
  padding: 3px 3px 18px;
  overflow: visible;
  color: #000;
  text-align: left;
  background: #c0c0c0;
  border: 2px solid;
  border-color: #fff #000 #000 #fff;
  border-radius: 0;
  box-shadow: 2px 2px 0 #000;
  transform: none;
  animation: none;
}
.prank-modal section::before, .prank-modal section::after { display: none; }
.win-titlebar {
  height: 30px; display: flex; align-items: center; justify-content: space-between;
  padding: 0 4px 0 8px; color: #fff; background: #000080;
  font-size: 14px; font-weight: 700; letter-spacing: 0;
}
.win-titlebar i {
  width: 22px; height: 22px; display: grid; place-items: center;
  color: #000; background: #c0c0c0; border: 2px solid;
  border-color: #fff #404040 #404040 #fff; font-style: normal; font-size: 18px; line-height: 1;
}
.win-dialog-body { display: flex; align-items: flex-start; gap: 22px; padding: 35px 34px 25px; }
.win-icon {
  flex: 0 0 auto; width: 48px; height: 48px; display: grid; place-items: center;
  color: #000; background: #ffff00; border: 3px solid #000; border-radius: 50%;
  font-family: "Times New Roman",serif; font-size: 36px; font-weight: 700; line-height: 1;
}
.prank-modal h2 {
  margin: 0 0 13px; color: #000; background: none; filter: none;
  font-family: inherit; font-size: 21px; letter-spacing: 0; animation: none;
}
.win-message p { margin: 0; color: #000; font-size: 14px; line-height: 1.65; }
.prank-modal button {
  position: relative; display: block; min-width: 104px; margin: 0 auto; padding: 7px 20px;
  overflow: visible; color: #000; background: #c0c0c0; border: 2px solid;
  border-color: #fff #000 #000 #fff; border-radius: 0; box-shadow: none;
  font-size: 14px; font-weight: 400; transition: none;
}
.prank-modal button::before { content: ""; position: absolute; inset: 3px; border: 1px dotted #000; }
.prank-modal button::after { display: none; }
.prank-modal button:hover { transform: none; box-shadow: none; }
.prank-modal button:active { padding: 8px 19px 6px 21px; border-color: #000 #fff #fff #000; }
.prank-modal .prank-clone {
  position: absolute;
  z-index: 4;
  width: min(440px,calc(100% - 24px));
  margin: 0;
  animation: error-window-in .12s steps(2,end);
}
.prank-clone .win-titlebar { background: #000080; }
.prank-clone:nth-of-type(3n) .win-titlebar { background: #800000; }
.prank-clone:nth-of-type(4n) .win-titlebar { background: #008080; }
@keyframes error-window-in {
  from { opacity: 0; transform: translate(18px,14px) scale(.92); }
  to { opacity: 1; transform: none; }
}

@media (max-width: 650px) {
  .header-inner { height: 62px; }
  .user-menu span { display: none; }
  .site-header nav { height: 43px; overflow-x: auto; }
  .site-header nav div { min-width: 520px; }
  .site-header nav a { font-size: 12px; }
  main { width: calc(100% - 24px); padding-top: 14px; }
  .location { display: none; }
  .page-title { padding: 22px 5px 17px; }
  .page-title h1 { font-size: 23px; }
  .application-summary h2 { padding-left: 4px; }
  .application-summary table, .application-summary tbody, .application-summary tr { display: block; }
  .application-summary th, .application-summary td { display: block; width: 100%; }
  .application-summary th { padding-bottom: 5px; border-bottom: 0; }
  .application-summary td { padding-top: 5px; }
  .result-letter { padding: 22px 20px 35px; }
  .happiness-banner { height: 73px; margin-bottom: 27px; padding: 14px 15px; }
  .happiness-banner strong { font-size: 18px; }
  .banner-line { left: 15px; right: 15px; }
  .result-heading { gap: 14px; }
  .round-icon { width: 66px; height: 66px; }
  .person { left: 23px; top: 15px; width: 20px; height: 20px; }
  .person::after { top: 24px; width: 35px; height: 31px; }
  .result-heading > div:last-child > span { font-size: 16px; }
  .result-heading h2 { font-size: 19px; }
  .letter-body { padding-top: 24px; font-size: 12px; }
  .desktop-only { display: none; }
  .schedule-box dl div { grid-template-columns: 115px 1fr; }
  .schedule-box dt, .schedule-box dd { padding: 10px; }
  footer div { flex-wrap: wrap; gap: 13px; }
  .prank-modal { padding: 14px; }
  .prank-modal section { padding: 3px 3px 16px; }
  .win-dialog-body { gap: 15px; padding: 28px 18px 23px; }
  .win-icon { width: 42px; height: 42px; font-size: 31px; }
  .prank-modal h2 { font-size: 18px; }
  .win-message p { font-size: 12px; }
  .prank-modal button { width: 104px; min-width: 104px; }
}

@media print {
  .site-header, .application-summary, .button-area, footer, .location, .page-title { display: none; }
  body, main { background: #fff; }
  main { width: 100%; padding: 0; }
  .result-letter { border: 0; box-shadow: none; }
}
