/* ToonPie platform landing pages. All selectors are isolated with tpp-. */
.tpp-page {
  --tpp-blue: #1677ff; --tpp-cyan: #25c8e8; --tpp-purple: #7657ee;
  --tpp-navy: #071a49; --tpp-ink: #10264a; --tpp-muted: #63718a;
  --tpp-line: rgba(18, 62, 123, .12); --tpp-soft: #f5f9ff;
  color: var(--tpp-ink); background: #fff; overflow: hidden;
  font-family: Inter, 'Apple SD Gothic Neo', 'Noto Sans KR', sans-serif;
}
.tpp-pad { --tpp-blue: #2d8cff; --tpp-cyan: #62d4ff; --tpp-purple: #6795f6; }
.tpp-mac { --tpp-blue: #326bd8; --tpp-cyan: #43bada; --tpp-purple: #7a68e7; }
.tpp-page *, .tpp-page *::before, .tpp-page *::after { box-sizing: border-box; }
.tpp-page img { max-width: 100%; }
.tpp-hero {
  position: relative; min-height: 830px; padding: 88px 0 34px; color: #fff;
  background:
    radial-gradient(circle at 82% 22%, rgba(81,221,255,.42), transparent 29%),
    radial-gradient(circle at 14% 76%, rgba(139,104,255,.38), transparent 28%),
    linear-gradient(138deg, #061c67 0%, #0750d6 47%, #16a6dc 100%);
}
.tpp-hero::before { content: ''; position: absolute; inset: 0; opacity: .24; pointer-events: none; background-image: radial-gradient(circle, rgba(255,255,255,.65) 1px, transparent 1px); background-size: 28px 28px; mask-image: linear-gradient(90deg, transparent, #000 15%, #000 85%, transparent); }
.tpp-hero-grid { position: relative; z-index: 1; min-height: 650px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(520px, 1.08fr); align-items: center; gap: 48px; }
.tpp-kicker { margin: 0 0 20px; color: var(--tpp-blue); font-size: .78rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.tpp-hero .tpp-kicker, .tpp-flow .tpp-kicker { color: #9eeeff; }
.tpp-hero h1 { margin: 0; max-width: 690px; font-size: clamp(2.75rem, 4.8vw, 5rem); line-height: 1.05; letter-spacing: -.055em; }
.tpp-hero h1 span { color: #9eefff; }
.tpp-hero-desc { max-width: 660px; margin: 28px 0 28px; color: rgba(255,255,255,.84); font-size: 1.05rem; line-height: 1.82; }
.tpp-store-button { display: inline-flex; align-items: center; text-decoration: none; transition: transform .2s ease, opacity .2s ease; }
.tpp-store-button:hover { transform: translateY(-3px); opacity: .92; }
.tpp-store-button img { width: auto; height: 51px; display: block; }
.tpp-availability { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 18px; color: rgba(255,255,255,.78); font-size: .86rem; }
.tpp-availability span { padding: 7px 13px; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; color: #fff; background: rgba(255,255,255,.13); font-weight: 800; }
.tpp-availability b { font-weight: 600; }
.tpp-hero-visual { position: relative; min-height: 560px; }
.tpp-visual-glow { position: absolute; width: 540px; height: 540px; left: 50%; top: 50%; transform: translate(-50%, -50%); border-radius: 50%; background: rgba(78,227,255,.34); filter: blur(70px); }
.tpp-screen { position: absolute; display: block; border: 1px solid rgba(255,255,255,.4); border-radius: 18px; background: rgba(255,255,255,.08); box-shadow: 0 35px 80px rgba(0,21,71,.42); object-fit: contain; }
.tpp-device-desktop .tpp-screen { width: 520px; height: auto; }
.tpp-device-desktop .tpp-screen-front { z-index: 3; left: 50%; top: 50%; transform: translate(-50%, -50%) rotate(-1deg); }
.tpp-device-desktop .tpp-screen-back { z-index: 1; left: 43%; top: 20px; transform: translateX(-50%) rotate(-6deg) scale(.88); opacity: .78; }
.tpp-device-desktop .tpp-screen-side { z-index: 2; left: 56%; bottom: 8px; transform: translateX(-50%) rotate(5deg) scale(.86); opacity: .9; }
.tpp-device-tablet .tpp-screen { width: 270px; height: auto; border-radius: 28px; }
.tpp-device-tablet .tpp-hero-visual { min-height: 650px; }
.tpp-device-tablet .tpp-screen-front { z-index: 3; left: 50%; top: 50%; transform: translate(-50%, -50%); }
.tpp-device-tablet .tpp-screen-back { z-index: 1; left: 30%; top: 62px; transform: translateX(-50%) rotate(-7deg) scale(.86); opacity: .78; }
.tpp-device-tablet .tpp-screen-side { z-index: 2; left: 70%; bottom: 38px; transform: translateX(-50%) rotate(7deg) scale(.86); opacity: .88; }
.tpp-proof-row { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.16); }
.tpp-proof-row span { padding: 20px 24px; color: rgba(255,255,255,.8); text-align: center; font-size: .84rem; font-weight: 700; }
.tpp-proof-row span + span { border-left: 1px solid rgba(255,255,255,.16); }
.tpp-main { background: #fff; }
.tpp-section { padding: 112px 0; }
.tpp-section-heading { max-width: 760px; margin-bottom: 52px; }
.tpp-section-heading h2 { margin: 0 0 18px; color: var(--tpp-ink); font-size: clamp(2rem, 3.7vw, 3.65rem); line-height: 1.12; letter-spacing: -.045em; }
.tpp-section-heading > p:last-child { margin: 0; color: var(--tpp-muted); font-size: 1rem; line-height: 1.8; }
.tpp-feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.tpp-feature-card { min-height: 260px; padding: 30px; border: 1px solid var(--tpp-line); border-radius: 25px; background: linear-gradient(155deg, #fff, var(--tpp-soft)); box-shadow: 0 15px 42px rgba(18,64,125,.07); transition: transform .2s ease, box-shadow .2s ease; }
.tpp-feature-card:hover { transform: translateY(-5px); box-shadow: 0 24px 55px rgba(18,64,125,.12); }
.tpp-feature-mark { width: 54px; height: 54px; display: inline-flex; align-items: center; justify-content: center; margin-bottom: 28px; border-radius: 16px; color: #fff; background: linear-gradient(135deg, var(--tpp-blue), var(--tpp-purple)); box-shadow: 0 12px 25px rgba(36,110,230,.25); font-size: .67rem; font-weight: 900; letter-spacing: .06em; }
.tpp-feature-card h3 { margin: 0 0 12px; font-size: 1.16rem; letter-spacing: -.02em; }
.tpp-feature-card p { margin: 0; color: var(--tpp-muted); font-size: .91rem; line-height: 1.72; }
.tpp-flow { position: relative; color: #fff; background: linear-gradient(145deg, #06153c, #082a68 55%, #074c87); }
.tpp-flow::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at 85% 12%, rgba(44,202,234,.2), transparent 31%), radial-gradient(circle at 12% 90%, rgba(115,86,238,.2), transparent 34%); }
.tpp-flow .container { position: relative; }
.tpp-heading-light h2 { color: #fff; }
.tpp-flow-list { display: grid; gap: 32px; }
.tpp-flow-card { display: grid; grid-template-columns: .8fr 1.2fr; align-items: center; gap: 54px; min-height: 480px; padding: 46px; overflow: hidden; border: 1px solid rgba(255,255,255,.12); border-radius: 30px; background: rgba(255,255,255,.075); box-shadow: 0 28px 70px rgba(0,0,0,.16); }
.tpp-flow-card.tpp-flow-reverse .tpp-flow-copy { order: 2; }
.tpp-flow-card.tpp-flow-reverse .tpp-flow-image { order: 1; }
.tpp-flow-copy > span { color: #8cecff; font-size: .83rem; font-weight: 900; letter-spacing: .16em; }
.tpp-flow-copy h3 { margin: 17px 0 15px; color: #fff; font-size: clamp(1.65rem, 2.7vw, 2.65rem); line-height: 1.13; letter-spacing: -.035em; }
.tpp-flow-copy p { margin: 0; color: rgba(255,255,255,.72); line-height: 1.85; }
.tpp-flow-image { display: flex; align-items: center; justify-content: center; min-height: 360px; }
.tpp-flow-image img { width: 100%; height: auto; max-height: 420px; padding: 10px; object-fit: contain; border-radius: 18px; background: rgba(255,255,255,.06); box-shadow: 0 24px 55px rgba(0,0,0,.28); }
.tpp-device-tablet .tpp-flow-image img { width: auto; max-width: 100%; max-height: 520px; }
.tpp-gallery-section { overflow: hidden; background: #fff; }
.tpp-gallery-header { display: flex; align-items: end; justify-content: space-between; gap: 30px; }
.tpp-gallery-controls { display: flex; gap: 10px; margin-bottom: 50px; }
.tpp-gallery-button { width: 50px; height: 50px; border: 1px solid var(--tpp-line); border-radius: 50%; color: var(--tpp-ink); background: #fff; box-shadow: 0 10px 24px rgba(23,69,140,.08); cursor: pointer; font-size: 1.25rem; transition: .2s ease; }
.tpp-gallery-button:hover { color: #fff; border-color: var(--tpp-blue); background: var(--tpp-blue); transform: translateY(-2px); }
.tpp-gallery { display: flex; gap: 22px; padding: 8px 24px 28px 0; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: rgba(22,119,255,.35) transparent; }
.tpp-gallery-card { flex: 0 0 430px; margin: 0; scroll-snap-align: start; }
.tpp-gallery-image { height: 320px; display: flex; align-items: center; justify-content: center; overflow: hidden; border-radius: 26px; background: linear-gradient(145deg, #e8f4ff, #eef0ff); }
.tpp-gallery-image img { width: 100%; height: 100%; padding: 10px; object-fit: contain; transition: transform .3s ease; }
.tpp-gallery-card:hover img { transform: scale(1.025); }
.tpp-device-tablet .tpp-gallery-card { flex-basis: 300px; }
.tpp-device-tablet .tpp-gallery-image { height: 400px; }
.tpp-device-tablet .tpp-gallery-image img { width: 100%; height: 100%; object-fit: contain; }
.tpp-gallery-card figcaption { display: flex; align-items: center; gap: 12px; padding: 18px 4px 0; color: var(--tpp-ink); font-size: .94rem; font-weight: 700; }
.tpp-gallery-card figcaption span { color: var(--tpp-blue); font-size: .76rem; letter-spacing: .08em; }
.tpp-download { padding-top: 24px; background: #fff; }
.tpp-download-card { min-height: 500px; display: grid; grid-template-columns: 1fr .82fr; align-items: center; gap: 55px; padding: 62px 70px; overflow: hidden; border-radius: 34px; background: linear-gradient(135deg, #edf7ff, #eef0ff 56%, #e5fbff); }
.tpp-download-card h2 { margin: 0 0 18px; font-size: clamp(2rem, 3.4vw, 3.4rem); line-height: 1.12; letter-spacing: -.045em; }
.tpp-download-card p { color: var(--tpp-muted); line-height: 1.8; }
.tpp-download-card ul { display: grid; gap: 10px; margin: 24px 0 28px; padding: 0; list-style: none; }
.tpp-download-card li { color: var(--tpp-ink); font-size: .91rem; font-weight: 700; }
.tpp-download-card li::before { content: '✓'; margin-right: 10px; color: var(--tpp-blue); }
.tpp-download-image { width: 100%; max-height: 410px; object-fit: contain; border-radius: 22px; filter: drop-shadow(0 24px 30px rgba(20,70,135,.22)); transform: rotate(2deg); }
.tpp-device-tablet .tpp-download-image { max-height: 470px; }
.tpp-download .tpp-store-button img { height: 48px; }
.tpp-mobile-download { display: none; }

@media (max-width: 1120px) {
  .tpp-hero-grid { grid-template-columns: minmax(0,1fr) 470px; gap: 20px; }
  .tpp-device-desktop .tpp-screen { width: 450px; }
  .tpp-feature-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 820px) {
  .tpp-hero { min-height: auto; padding-top: 86px; }
  .tpp-hero-grid { min-height: auto; grid-template-columns: 1fr; text-align: center; }
  .tpp-hero-copy { display: flex; flex-direction: column; align-items: center; }
  .tpp-hero-visual { min-height: 520px; }
  .tpp-device-tablet .tpp-hero-visual { min-height: 590px; }
  .tpp-proof-row { margin-top: 12px; }
  .tpp-flow-card, .tpp-download-card { grid-template-columns: 1fr; }
  .tpp-flow-card.tpp-flow-reverse .tpp-flow-copy, .tpp-flow-card.tpp-flow-reverse .tpp-flow-image { order: initial; }
  .tpp-flow-card { gap: 26px; }
  .tpp-download-image { max-width: 640px; margin: 0 auto; }
}
@media (max-width: 640px) {
  .tpp-hero { padding-top: 74px; }
  .tpp-hero-grid { padding-left: 20px; padding-right: 20px; }
  .tpp-hero h1 { font-size: clamp(2.25rem, 11vw, 3.5rem); }
  .tpp-hero-desc { font-size: .96rem; }
  .tpp-hero-visual { min-height: 390px; }
  .tpp-device-desktop .tpp-screen { width: 340px; border-radius: 13px; }
  .tpp-device-tablet .tpp-hero-visual { min-height: 500px; }
  .tpp-device-tablet .tpp-screen { width: 205px; }
  .tpp-proof-row { grid-template-columns: 1fr; }
  .tpp-proof-row span { padding: 13px 16px; }
  .tpp-proof-row span + span { border-left: 0; border-top: 1px solid rgba(255,255,255,.14); }
  .tpp-section { padding: 82px 0; }
  .tpp-section-heading { margin-bottom: 34px; }
  .tpp-feature-grid { grid-template-columns: 1fr; }
  .tpp-feature-card { min-height: 0; padding: 25px; }
  .tpp-flow-card { min-height: 0; padding: 26px 21px; border-radius: 23px; }
  .tpp-flow-image { min-height: 220px; }
  .tpp-flow-image img { max-height: 300px; }
  .tpp-device-tablet .tpp-flow-image img { max-height: 410px; }
  .tpp-gallery-controls { display: none; }
  .tpp-gallery-card { flex-basis: 300px; }
  .tpp-gallery-image { height: 225px; }
  .tpp-device-tablet .tpp-gallery-card { flex-basis: 250px; }
  .tpp-device-tablet .tpp-gallery-image { height: 340px; }
  .tpp-download { padding-bottom: 105px; }
  .tpp-download-card { padding: 38px 24px; border-radius: 25px; }
  .tpp-download-image { max-height: 280px; }
  .tpp-mobile-download { position: fixed; z-index: 60; left: 12px; right: 12px; bottom: 10px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 10px; padding: 10px 10px 10px 16px; border: 1px solid rgba(255,255,255,.16); border-radius: 18px; color: #fff; background: rgba(7,26,73,.93); box-shadow: 0 16px 40px rgba(0,21,67,.35); backdrop-filter: blur(18px); }
  .tpp-mobile-download span { font-size: .86rem; font-weight: 800; }
  .tpp-mobile-download a { padding: 10px 12px; border-radius: 10px; color: #fff; background: rgba(255,255,255,.13); text-decoration: none; font-size: .74rem; font-weight: 800; }
}
@media (prefers-reduced-motion: reduce) {
  .tpp-page *, .tpp-page *::before, .tpp-page *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
