:root {
  --violet: #6b5bd2;
  --cyan: #43d6c5;
  --text: #eaf0fa;
  --dim: #9ba9c8;
  --card: rgba(255,255,255,.05);
  --line: rgba(255,255,255,.10);
  --line2: rgba(255,255,255,.16);
  --green: #71f0b6;
  --danger: #ff9fb1;
}

.launcher-body,
.launcher-body * { box-sizing: border-box; }

.launcher-body {
  margin: 0;
  min-height: 100vh;
  color: var(--text);
  background:
    radial-gradient(900px 500px at 12% 8%, rgba(107,91,210,.55), transparent 60%),
    radial-gradient(900px 600px at 92% 45%, rgba(67,214,197,.28), transparent 60%),
    linear-gradient(160deg, #1a1740, #0d1230 55%, #0a0e26);
  background-attachment: fixed;
  font-family: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing: 0;
}

.launcher-body a { color: inherit; text-decoration: none; }
.launcher-body button,
.launcher-body textarea,
.launcher-body input { font: inherit; }
.launcher-body button { cursor: pointer; }

.launcher-body .page {
  position: relative;
  min-height: 100vh;
  overflow: hidden;
}

.launcher-body .page::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: radial-gradient(circle at center, #000, transparent 82%);
  pointer-events: none;
}

.spotlight {
  --mx: 50%;
  --my: 50%;
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.spotlight::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  background: radial-gradient(circle at var(--mx) var(--my), rgba(67,214,197,.35), rgba(107,91,210,.15) 40%, transparent 65%);
  opacity: 0;
  transition: opacity .35s ease;
  pointer-events: none;
}

.spotlight:hover::before,
.spotlight:focus-visible::before { opacity: 1; }
.spotlight > * { position: relative; z-index: 1; }

.launcher-landing .landing-shell {
  position: relative;
  z-index: 1;
  width: min(1180px, calc(100% - 44px));
  margin: 0 auto;
  padding: 22px 0 64px;
}

.launcher-landing .site-nav,
.launcher-detail .detail-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.launcher-landing .site-nav { margin-bottom: 72px; }

.launcher-body .brand {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #fff;
  font-size: 20px;
  font-weight: 900;
}

.launcher-body .brand-mark {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  color: #fff;
  background: linear-gradient(135deg, #5776ff, #875cff);
  box-shadow: 0 14px 38px rgba(91,140,255,.35);
}

.launcher-body .menu,
.detail-nav-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.launcher-body .menu a,
.back-link,
.detail-nav-actions a {
  min-height: 38px;
  padding: 9px 14px;
  border: 1px solid var(--line2);
  border-radius: 999px;
  color: rgba(255,255,255,.82);
  background: rgba(255,255,255,.045);
  font-size: 14px;
  font-weight: 800;
  transition: transform .35s cubic-bezier(.2,.8,.2,1), border-color .35s ease, box-shadow .35s ease, color .35s ease, background-color .35s ease;
}

.launcher-body .menu a:hover,
.launcher-body .menu a:focus-visible,
.back-link:hover,
.back-link:focus-visible,
.detail-nav-actions a:hover,
.detail-nav-actions a:focus-visible {
  transform: translateY(-4px);
  border-color: rgba(67,214,197,.65);
  color: #fff;
  background: rgba(67,214,197,.08);
  box-shadow: 0 18px 40px rgba(67,214,197,.18), 0 0 0 3px rgba(67,214,197,.08);
  outline: 0;
}

.launcher-landing .hero-copy { max-width: 850px; }

.launcher-landing .hero-badge,
.launcher-detail .detail-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  padding: 9px 13px;
  border: 1px solid var(--line2);
  border-radius: 999px;
  color: #bffaf4;
  background: rgba(255,255,255,.09);
  font-size: 13px;
  font-weight: 900;
}

.launcher-landing .hero-badge::first-letter { color: var(--green); }

.launcher-landing h1,
.launcher-detail h1 {
  margin: 18px 0 18px;
  color: #fff;
  font-size: clamp(46px, 7vw, 84px);
  line-height: 1.03;
  font-weight: 950;
  letter-spacing: -.06em;
}

.launcher-landing h1 em,
.launcher-detail h1 em {
  color: transparent;
  font-style: normal;
  background: linear-gradient(90deg, #fff, #d2f7ff, #b9f7dd, #b8a5ff);
  -webkit-background-clip: text;
  background-clip: text;
}

.launcher-landing .hero-copy p {
  max-width: 760px;
  margin: 0;
  color: var(--dim);
  font-size: 18px;
  line-height: 1.65;
}

.launcher-landing .tool-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 42px;
}

.launcher-landing .tool-card {
  min-height: 246px;
  padding: 22px;
  border: 1px solid var(--line2);
  border-radius: 20px;
  background: var(--card);
  box-shadow: 0 20px 70px rgba(0,0,0,.16);
  backdrop-filter: blur(16px);
  transition: transform .35s cubic-bezier(.2,.8,.2,1), border-color .35s ease, box-shadow .35s ease, background-color .35s ease;
}

.launcher-landing .tool-card::after {
  content: "";
  position: absolute;
  z-index: 0;
  top: -80px;
  left: 12%;
  right: 12%;
  height: 150px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(67,214,197,.22), transparent 68%);
  opacity: 0;
  transition: opacity .35s ease;
  pointer-events: none;
}

.launcher-landing .tool-card:hover,
.launcher-landing .tool-card:focus-visible {
  transform: translateY(-10px);
  border-color: rgba(67,214,197,.55);
  background: rgba(67,214,197,.08);
  box-shadow: 0 18px 40px rgba(67,214,197,.18), 0 0 0 3px rgba(67,214,197,.08);
  outline: 0;
}

.launcher-landing .tool-card:hover::after,
.launcher-landing .tool-card:focus-visible::after { opacity: 1; }

.launcher-landing .tool-icon,
.launcher-detail .tool-icon {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  margin-bottom: 24px;
  border-radius: 16px;
  color: #dffefa;
  background: rgba(255,255,255,.10);
  font-size: 25px;
  transition: transform .35s cubic-bezier(.2,.8,.2,1), background .35s ease, box-shadow .35s ease;
}

.launcher-landing .tool-card:hover .tool-icon,
.launcher-landing .tool-card:focus-visible .tool-icon {
  transform: scale(1.12);
  background: linear-gradient(135deg, rgba(67,214,197,.44), rgba(107,91,210,.62));
  box-shadow: 0 10px 26px rgba(67,214,197,.20);
}

.launcher-landing .tool-card h2 {
  margin: 0 0 8px;
  font-size: 20px;
  line-height: 1.25;
}

.launcher-landing .tool-card p {
  min-height: 48px;
  margin: 0;
  color: var(--dim);
  font-size: 14px;
  line-height: 1.55;
}

.launcher-landing .card-tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 18px;
}

.launcher-landing .card-tags span {
  padding: 5px 8px;
  border: 1px solid rgba(255,255,255,.11);
  border-radius: 999px;
  color: rgba(255,255,255,.62);
  background: rgba(255,255,255,.04);
  font-size: 11px;
  font-weight: 800;
}

.launcher-landing .open-action {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-top: 20px;
  color: var(--cyan);
  font-size: 13px;
  font-weight: 900;
  opacity: .25;
  transform: translateX(-4px);
  transition: opacity .35s ease, transform .35s ease;
}

.launcher-landing .tool-card:hover .open-action,
.launcher-landing .tool-card:focus-visible .open-action { opacity: 1; transform: translateX(0); }

.launcher-landing .english-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 28px;
  padding: 16px 18px;
  border: 1px dashed rgba(67,214,197,.42);
  border-radius: 14px;
  color: rgba(234,240,250,.82);
  background: rgba(67,214,197,.045);
  font-size: 13px;
  font-weight: 800;
}

.launcher-landing .english-banner strong { color: var(--cyan); }

.launcher-detail .detail-shell {
  position: relative;
  z-index: 1;
  width: min(1220px, calc(100% - 44px));
  margin: 0 auto;
  padding: 22px 0 60px;
}

.launcher-detail .detail-nav { margin-bottom: 40px; }
.launcher-detail .detail-nav-actions { align-items: center; }
.launcher-detail .detail-nav-actions .back-link { margin-right: 2px; }

.launcher-detail .detail-title {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 26px;
}

.launcher-detail .detail-title .tool-icon { flex: 0 0 auto; margin: 4px 0 0; }
.launcher-detail .detail-title h1 { margin: 10px 0 10px; font-size: clamp(38px, 5vw, 64px); }
.launcher-detail .detail-title p { max-width: 760px; margin: 0; color: var(--dim); font-size: 17px; line-height: 1.6; }

.launcher-detail .detail-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
  gap: 18px;
  align-items: start;
}

.launcher-detail .detail-panel {
  border: 1px solid var(--line2);
  border-radius: 20px;
  background: var(--card);
  box-shadow: 0 20px 70px rgba(0,0,0,.16);
  backdrop-filter: blur(16px);
}

.launcher-detail .input-panel { padding: 22px; }
.launcher-detail .panel-head,
.launcher-detail .result-toolbar,
.launcher-detail .saved-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.launcher-detail .section-label {
  margin: 0 0 5px;
  color: var(--cyan);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.launcher-detail .panel-head h2,
.launcher-detail .result-toolbar h2 {
  margin: 0;
  font-size: 22px;
  line-height: 1.25;
}

.launcher-detail .counter {
  color: var(--dim);
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.launcher-detail .chip-group {
  margin: 22px 0 0;
  padding: 0;
  border: 0;
}

.launcher-detail .chip-group legend {
  margin-bottom: 9px;
  color: rgba(234,240,250,.84);
  font-size: 13px;
  font-weight: 900;
}

.launcher-detail .chip-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(92px, 1fr));
  gap: 8px;
}

.launcher-detail .chip { position: relative; display: block; }
.launcher-detail .chip input { position: absolute; width: 1px; height: 1px; opacity: 0; }

.launcher-detail .chip span {
  display: grid;
  min-height: 38px;
  place-items: center;
  padding: 0 10px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 10px;
  color: rgba(234,240,250,.72);
  background: rgba(255,255,255,.045);
  font-size: 12px;
  font-weight: 850;
  text-align: center;
  transition: transform .35s cubic-bezier(.2,.8,.2,1), border-color .35s ease, box-shadow .35s ease, background .35s ease, color .35s ease;
}

.launcher-detail .chip span:hover,
.launcher-detail .chip input:focus-visible + span {
  transform: translateY(-3px);
  border-color: rgba(67,214,197,.50);
  color: #fff;
  box-shadow: 0 12px 28px rgba(67,214,197,.14), 0 0 0 3px rgba(67,214,197,.06);
  outline: 0;
}

.launcher-detail .chip input:checked + span {
  border-color: transparent;
  color: #fff;
  background: linear-gradient(135deg, rgba(107,91,210,.92), rgba(67,214,197,.76));
  box-shadow: 0 10px 22px rgba(67,214,197,.12);
}

.launcher-detail .input-label {
  display: block;
  margin: 22px 0 9px;
  color: rgba(234,240,250,.84);
  font-size: 13px;
  font-weight: 900;
}

.launcher-detail textarea {
  display: block;
  width: 100%;
  min-height: 148px;
  resize: vertical;
  padding: 14px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 12px;
  outline: 0;
  color: #11182a;
  background: rgba(247,250,255,.96);
  line-height: 1.55;
}

.launcher-detail textarea:focus {
  border-color: rgba(67,214,197,.78);
  box-shadow: 0 0 0 4px rgba(67,214,197,.14);
}

.launcher-detail .toggle-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 16px;
  color: rgba(234,240,250,.84);
  font-size: 13px;
  font-weight: 850;
}

.launcher-detail .toggle-row input { position: absolute; opacity: 0; }
.launcher-detail .toggle-ui {
  position: relative;
  width: 40px;
  height: 22px;
  border-radius: 999px;
  background: rgba(255,255,255,.16);
  transition: background .2s ease, box-shadow .2s ease;
}

.launcher-detail .toggle-ui::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  transition: transform .2s ease;
}

.launcher-detail .toggle-row input:checked + .toggle-ui { background: var(--cyan); box-shadow: 0 0 0 4px rgba(67,214,197,.12); }
.launcher-detail .toggle-row input:checked + .toggle-ui::after { transform: translateX(18px); }
.launcher-detail .toggle-row input:focus-visible + .toggle-ui { box-shadow: 0 0 0 4px rgba(67,214,197,.20); }

.launcher-detail .actions {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 18px;
}

.launcher-detail .button,
.launcher-detail .copy-button,
.launcher-detail .delete-button {
  min-height: 42px;
  padding: 0 14px;
  border: 1px solid var(--line2);
  border-radius: 11px;
  color: #fff;
  background: rgba(255,255,255,.08);
  font-size: 13px;
  font-weight: 900;
  transition: transform .35s cubic-bezier(.2,.8,.2,1), border-color .35s ease, box-shadow .35s ease, background .35s ease;
}

.launcher-detail .button.primary {
  border-color: transparent;
  background: linear-gradient(135deg, var(--violet), var(--cyan));
  box-shadow: 0 14px 30px rgba(107,91,210,.25);
}

.launcher-detail .button:hover,
.launcher-detail .button:focus-visible,
.launcher-detail .copy-button:hover,
.launcher-detail .copy-button:focus-visible,
.launcher-detail .delete-button:hover,
.launcher-detail .delete-button:focus-visible {
  transform: translateY(-4px);
  border-color: rgba(67,214,197,.58);
  box-shadow: 0 14px 30px rgba(67,214,197,.16), 0 0 0 3px rgba(67,214,197,.07);
  outline: 0;
}

.launcher-detail .button:active,
.launcher-detail .copy-button:active,
.launcher-detail .delete-button:active { transform: translateY(1px) scale(.98); }
.launcher-detail button:disabled { cursor: not-allowed; opacity: .52; }
.launcher-detail .message { min-height: 20px; margin: 12px 0 0; color: var(--dim); font-size: 12px; }
.launcher-detail .message.success { color: var(--green); }
.launcher-detail .message.error { color: var(--danger); }

.launcher-detail .result-panel { padding: 22px; }
.launcher-detail .result-toolbar { align-items: center; margin-bottom: 14px; }
.launcher-detail .result-box {
  min-height: 370px;
  padding: 16px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 13px;
  color: rgba(234,240,250,.88);
  background: rgba(4,8,20,.52);
  line-height: 1.6;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.launcher-detail .placeholder { margin: 0; color: var(--dim); }
.launcher-detail .result-text { margin: 0; white-space: pre-wrap; font: inherit; }
.launcher-detail .result-label { margin: 0 0 10px; color: var(--cyan); font-size: 11px; font-weight: 900; }

.launcher-detail .external-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 8px;
  margin-top: 14px;
}

.launcher-detail .external-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 40px;
  padding: 0 12px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 10px;
  color: rgba(234,240,250,.80);
  background: rgba(255,255,255,.045);
  font-size: 12px;
  font-weight: 850;
  transition: transform .35s cubic-bezier(.2,.8,.2,1), border-color .35s ease, box-shadow .35s ease;
}

.launcher-detail .external-link:hover,
.launcher-detail .external-link:focus-visible { transform: translateY(-4px); border-color: rgba(67,214,197,.55); box-shadow: 0 14px 30px rgba(67,214,197,.14); outline: 0; }
.launcher-detail .saved-panel { margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.10); }
.launcher-detail .saved-head { align-items: center; margin-bottom: 10px; }
.launcher-detail .saved-head h3 { margin: 0; font-size: 15px; }
.launcher-detail .saved-head small { color: var(--dim); font-size: 10px; font-weight: 700; }
.launcher-detail .saved-list { display: grid; gap: 7px; }
.launcher-detail .saved-empty { margin: 0; color: var(--dim); font-size: 12px; }

.launcher-detail .saved-item {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 8px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 10px;
  background: rgba(255,255,255,.035);
}

.launcher-detail .saved-load {
  min-width: 0;
  padding: 4px;
  border: 0;
  color: rgba(234,240,250,.82);
  background: transparent;
  text-align: left;
}

.launcher-detail .saved-load strong,
.launcher-detail .saved-load span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.launcher-detail .saved-load strong { font-size: 12px; }
.launcher-detail .saved-load span { margin-top: 3px; color: var(--dim); font-size: 10px; }
.launcher-detail .saved-load:hover { color: #fff; }
.launcher-detail .delete-button { min-height: 30px; padding: 0 9px; color: var(--dim); font-size: 11px; }

.launcher-detail .notice {
  margin-top: 14px;
  padding: 12px;
  border: 1px dashed rgba(67,214,197,.30);
  border-radius: 11px;
  color: var(--dim);
  background: rgba(67,214,197,.035);
  font-size: 11px;
  line-height: 1.55;
}

.launcher-detail .notice p { margin: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

@media (max-width: 1000px) {
  .launcher-landing .tool-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .launcher-detail .detail-layout { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .launcher-landing .landing-shell,
  .launcher-detail .detail-shell { width: min(100% - 28px, 1220px); }
  .launcher-landing .site-nav,
  .launcher-detail .detail-nav { align-items: flex-start; flex-direction: column; margin-bottom: 42px; }
  .launcher-body .menu,
  .detail-nav-actions { justify-content: flex-start; }
  .launcher-landing h1 { font-size: 46px; }
  .launcher-landing .tool-grid { grid-template-columns: 1fr; }
  .launcher-landing .english-banner { align-items: flex-start; flex-direction: column; }
  .launcher-detail .detail-title { flex-direction: column; }
  .launcher-detail .detail-title .tool-icon { margin-top: 0; }
  .launcher-detail .detail-title h1 { font-size: 42px; }
  .launcher-detail .external-links { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .launcher-body *,
  .launcher-body *::before,
  .launcher-body *::after {
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    scroll-behavior: auto !important;
  }

  .launcher-landing .tool-card:hover,
  .launcher-landing .tool-card:focus-visible,
  .launcher-body .menu a:hover,
  .launcher-body .menu a:focus-visible,
  .back-link:hover,
  .back-link:focus-visible,
  .launcher-detail .button:hover,
  .launcher-detail .button:focus-visible,
  .launcher-detail .copy-button:hover,
  .launcher-detail .copy-button:focus-visible,
  .launcher-detail .external-link:hover,
  .launcher-detail .external-link:focus-visible { transform: none; }

  .spotlight::before { display: none; }
}
