/* Basic native elements, replacing framework component defaults. */
* { box-sizing: border-box; }
body { margin: 0; }
a { text-decoration: none; }
button, input, select { font: inherit; }
button, [data-slot="button"] { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 18px; border-radius: 10px; border: 1px solid var(--border); background: var(--primary); color: white; cursor: pointer; }
[data-variant="outline"], [data-variant="ghost"] { background: var(--card); color: var(--foreground); }
input, select { padding: 10px 12px; border: 1px solid var(--border); border-radius: 8px; background: var(--card); color: var(--foreground); max-width: 100%; }
svg { flex-shrink: 0; }
[data-slot="native-select-icon"] { display: none; }
.theme-select { width: 105px; font-size: 13px; }
.kabby-realistic { cursor: default; }
[hidden] { display: none !important; }
dialog { max-width: min(640px, 92vw); max-height: 85vh; overflow: auto; border: 1px solid var(--border); border-radius: 20px; background: var(--card); color: var(--foreground); padding: 28px; }
dialog::backdrop { background: #0008; }
[data-close-dialog] { float: right; }
#university-detail h2 { margin-top: 20px; }
@media (max-width: 1000px) { .desktop-nav.mobile-open { display: flex; position: absolute; top: 100%; left: 0; right: 0; flex-direction: column; padding: 20px; background: var(--card); } }


/* Standalone reset: no Tailwind runtime is required. */
svg { display: block; vertical-align: middle; }
button svg, [data-slot="button"] svg { width: 16px; height: 16px; }
/* KEBUN SCHOLAR — edit colors in :root and .dark;
   page layouts follow below. */




:root {
  --background:#fff;
  --foreground:#16304c;
  --card:#fff;
  --soft:#f3f7fb;
  --primary:#0861a8;
  --primary-foreground:#fff;
  --muted:#61748a;
  --border:#dae4ed;
  --gold:#ffba42;
  --blue-soft:#e9f3fc;
  --shadow:0 16px 45px #16304c0a;
  color-scheme:light
}

.dark {
  --background:#0d1928;
  --foreground:#eaf3ff;
  --card:#152539;
  --soft:#101f31;
  --primary:#62b2f4;
  --primary-foreground:#071d30;
  --muted:#afc0d5;
  --border:#2c4057;
  --gold:#ffbf50;
  --blue-soft:#193754;
  --shadow:0 16px 45px #0002;
  color-scheme:dark
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:100px
}

body {
  margin:0;
  background:var(--background);
  color:var(--foreground);
  font-family:Arial,'Noto Sans',sans-serif;
  font-size:16px;
  line-height:1.7;
  transition:background-color .25s,color .25s
}

a {
  text-decoration:none;
  color:inherit
}

button,input,select,textarea {
  font:inherit
}

button,a {
  touch-action:manipulation
}

button {
  cursor:pointer
}

button:disabled {
  cursor:wait
}

img {
  max-width:100%
}

h1,h2,h3,h4,p {
  margin:0
}

h1,h2,h3 {
  letter-spacing:-.04em;
  line-height:1.2
}

h1 {
  font-size:clamp(40px,4.1vw,62px);
  font-weight:750
}

h2 {
  font-size:clamp(30px,3vw,42px);
  font-weight:700
}

h3 {
  font-size:20px;
  font-weight:700;
  letter-spacing:-.025em
}

h4 {
  font-size:15px;
  font-weight:700;
  line-height:1.5
}

p {
  color:var(--muted)
}

svg {
  flex-shrink:0
}

em {
  color:var(--primary);
  font-style:normal
}

.wrap {
  width:88%;
  max-width:1240px;
  margin-inline:auto
}

.section {
  padding-block:84px
}

.row {
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap
}

.spread {
  justify-content:space-between
}

.center {
  text-align:center
}

.wide {
  width:100%
}

.eyebrow {
  font-size:12px;
  font-weight:700;
  letter-spacing:1.8px;
  text-transform:uppercase;
  color:var(--primary);
  margin-bottom:18px
}

.meta {
  font-size:13px;
  color:var(--muted);
  line-height:1.65
}

.skip {
  position:absolute;
  top:-100px;
  padding:12px;
  background:var(--card);
  z-index:100
}

.skip:focus {
  top:0
}

.site-header {
  background:var(--background);
  border-bottom:1px solid var(--border);
  position:sticky;
  top:0;
  z-index:30;
  transition:background .25s
}

.header-inner {
  width:91%;
  max-width:1380px;
  height:88px;
  margin:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px
}

.brand {
  display:block;
  position:relative;
  width:215px;
  height:33px;
  overflow:hidden;
  flex-shrink:0
}

.brand img {
  position:absolute;
  width:232px;
  max-width:none;
  height:auto;
  left:-8px;
  top:-22px
}

.dark .brand {
  background:transparent;
  box-shadow:none
}

.dark .brand img {
  filter:brightness(1.65) saturate(.85)
}

.desktop-nav {
  display:flex;
  align-items:center;
  gap:28px;
  font-size:14px;
  white-space:nowrap
}

.desktop-nav a {
  position:relative;
  padding:30px 0;
  color:var(--muted)
}

.desktop-nav a.active {
  color:var(--primary);
  font-weight:700
}

.desktop-nav a.active:after {
  content:'';
  position:absolute;
  bottom:16px;
  height:3px;
  background:var(--gold);
  left:0;
  right:0;
  border-radius:3px
}

.header-tools {
  display:flex;
  align-items:center;
  gap:13px
}

.header-language {
  display:flex;
  align-items:center;
  gap:2px
}

.header-language select {
  width:94px;
  padding-left:7px;
  border:none;
  box-shadow:none;
  font-size:12px
}

.header-language svg {
  color:var(--muted)
}

.theme-toggle .moon {
  display:none
}

.dark .theme-toggle .sun {
  display:none
}

.dark .theme-toggle .moon {
  display:block
}

.mobile-menu {
  display:none!important
}

.mobile-nav {
  display:flex;
  flex-direction:column;
  padding:20px 6%;
  gap:18px;
  border-top:1px solid var(--border)
}

[data-slot=button] {
  min-height:42px;
  border-radius:9px;
  padding:10px 18px;
  font-size:14px;
  line-height:1.3;
  white-space:normal;
  height:auto;
  transition:background .2s,transform .2s,box-shadow .2s
}

[data-slot=button]:hover {
  transform:translateY(-2px)
}

[data-slot=button][data-size=icon] {
  padding:10px;
  width:40px;
  height:40px;
  min-height:40px
}

.header-account {
  font-size:13px!important;
  padding-inline:16px!important;
  white-space:nowrap!important
}

.hero {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:60px;
  padding-top:62px;
  padding-bottom:64px;
  align-items:center
}

.hero-label {
  display:inline-flex;
  align-items:center;
  gap:9px;
  background:var(--blue-soft);
  color:var(--primary);
  font-size:10px;
  letter-spacing:1.5px;
  font-weight:700;
  padding:7px 12px;
  border-radius:30px;
  margin-bottom:24px
}

.hero-label>span {
  width:5px;
  height:5px;
  background:var(--primary);
  border-radius:50%
}

.hero h1 {
  font-size:clamp(44px,4.7vw,70px);
  letter-spacing:-.06em;
  line-height:1.1
}

.hero h1 em {
  position:relative;
  display:inline-block
}

.hero h1 em:after {
  content:'';
  position:absolute;
  bottom:-8px;
  left:1px;
  width:62%;
  height:5px;
  background:var(--gold);
  border-radius:50%
}

.hero-description {
  margin-top:30px;
  max-width:480px;
  font-size:17px;
  line-height:1.85
}

.hero-buttons {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:30px
}

.hero-buttons [data-slot=button] {
  padding:15px 21px;
  font-size:14px
}

.hero-assurance {
  display:flex;
  gap:22px;
  font-size:12px;
  color:var(--muted);
  margin-top:27px;
  flex-wrap:wrap
}

.hero-assurance span {
  display:flex;
  gap:6px;
  align-items:center
}

.hero-assurance svg {
  width:14px;
  color:var(--primary)
}

.hero-stage {
  height:455px;
  background:#e9f4fd;
  border-radius:42px;
  position:relative;
  isolation:isolate;
  overflow:visible
}

.dark .hero-stage {
  background:#19334d
}

.stage-ring {
  position:absolute;
  width:335px;
  height:335px;
  max-width:83%;
  aspect-ratio:1;
  border:1px solid #99bfd966;
  border-radius:50%;
  top:63px;
  left:14%;
  z-index:-1
}

.stage-ring:after {
  content:'';
  position:absolute;
  inset:25px;
  border:1px solid #99bfd944;
  border-radius:50%
}

.stage-caption {
  position:absolute;
  top:28px;
  left:30px;
  right:26px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:9px;
  letter-spacing:2px;
  color:var(--primary);
  font-weight:700
}

.stage-caption svg {
  width:21px
}

.hero-kebby {
  position:absolute;
  height:325px;
  width:auto;
  bottom:40px;
  left:17%;
  filter:drop-shadow(0 15px 12px #122d3620)
}

.kebby-bubble {
  position:absolute;
  right:-12px;
  top:91px;
  background:var(--card);
  box-shadow:var(--shadow);
  padding:13px 17px;
  border:1px solid var(--border);
  border-radius:14px 14px 14px 0;
  z-index:2;
  max-width:190px;
  transform:rotate(3deg)
}

.kebby-bubble strong {
  display:block;
  font-size:13px
}

.kebby-bubble span {
  display:block;
  font-size:11px;
  color:var(--muted);
  line-height:1.55;
  margin-top:3px
}

.journey-card {
  position:absolute;
  bottom:-18px;
  left:25px;
  right:25px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:17px;
  background:var(--card);
  border:1px solid var(--border);
  border-radius:12px;
  box-shadow:var(--shadow)
}

.mini-icon {
  display:grid;
  place-items:center;
  background:var(--blue-soft);
  padding:10px;
  border-radius:8px;
  color:var(--primary)
}

.journey-card small {
  display:block;
  font-size:11px;
  color:var(--muted)
}

.journey-card strong {
  font-size:13px
}

.journey-card>svg {
  margin-left:auto;
  width:20px
}

.stage-star {
  position:absolute;
  left:32px;
  top:160px;
  color:var(--gold);
  font-size:35px;
  transform:rotate(15deg)
}

.brand-strip {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:90px;
  border-block:1px solid var(--border);
  padding:23px 5%;
  background:var(--soft);
  font-size:13px;
  color:var(--muted)
}

.brand-strip span {
  display:flex;
  align-items:center;
  gap:11px
}

.brand-strip svg {
  width:18px;
  color:var(--primary)
}

.about-grid {
  display:grid;
  grid-template-columns:.95fr 1.1fr;
  gap:90px;
  align-items:center
}

.about-photo {
  height:310px;
  position:relative;
  border-radius:18px;
  overflow:hidden
}

.about-photo img {
  width:100%;
  height:100%;
  object-fit:cover
}

.about-photo:after {
  content:'';
  position:absolute;
  inset:50% 0 0;
  background:linear-gradient(transparent,#0c284dc9)
}

.about-photo span {
  position:absolute;
  left:25px;
  bottom:22px;
  font-size:11px;
  font-weight:700;
  letter-spacing:2px;
  color:white;
  z-index:1
}

.about-grid h2 {
  margin-bottom:22px
}

.about-grid p:not(.eyebrow) {
  font-size:15px;
  line-height:1.95
}

.text-link {
  display:inline-flex;
  gap:15px;
  align-items:center;
  color:var(--primary);
  font-size:14px;
  font-weight:700;
  margin-top:22px
}

.text-link svg {
  width:17px
}

.soft-section {
  background:var(--soft)
}

.section-heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:30px;
  margin-bottom:35px
}

.section-heading h2 {
  max-width:620px
}

.service-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px
}

.service-card {
  background:var(--card);
  border:1px solid var(--border);
  border-radius:14px;
  padding:24px 21px 13px;
  display:flex;
  flex-direction:column;
  transition:transform .2s,box-shadow .2s
}

.service-card:hover {
  transform:translateY(-4px);
  box-shadow:var(--shadow)
}

.service-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:22px
}

.icon-box {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border-radius:10px;
  background:var(--blue-soft);
  color:var(--primary);
  flex-shrink:0
}

.icon-box svg {
  width:21px
}

.tone-1 {
  background:#fff3d9;
  color:#946012
}

.tone-2 {
  background:#e9f3ed;
  color:#30714b
}

.dark .tone-1 {
  background:#463923;
  color:#ffce73
}

.dark .tone-2 {
  background:#233f32;
  color:#91cea1
}

.service-card h3 {
  font-size:18px;
  min-height:44px;
  margin-bottom:13px
}

.service-card p {
  font-size:14px;
  line-height:1.8;
  margin-bottom:18px;
  flex:1
}

.service-foot {
  border-top:1px solid var(--border);
  padding-top:8px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:5px
}

.service-foot>span {
  font-size:12px;
  font-weight:600;
  color:var(--primary)
}

.uni-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:23px
}

.uni-card {
  border:1px solid var(--border);
  border-radius:15px;
  overflow:hidden;
  background:var(--card);
  transition:transform .2s,box-shadow .2s
}

.uni-card:hover {
  transform:translateY(-4px);
  box-shadow:var(--shadow)
}

.uni-art {
  height:125px;
  position:relative;
  background:#edf3f8;
  display:flex;
  align-items:center;
  padding:22px 24px
}

.dark .uni-art {
  background:#e6edf4
}

.uni-art.id {
  background:#152f56
}

.uni-logo {
  max-width:65%;
  max-height:59px;
  width:auto;
  object-fit:contain
}

.country-pill {
  position:absolute;
  bottom:12px;
  right:13px;
  display:flex;
  align-items:center;
  gap:4px;
  font-size:10px;
  line-height:1.5;
  background:#fff;
  color:#16304c;
  border-radius:30px;
  padding:4px 8px
}

.uni-body {
  padding:22px
}

.uni-body h3 {
  font-size:21px;
  margin-top:9px;
  min-height:51px
}

.program {
  font-size:13px;
  margin-top:12px;
  min-height:43px
}

.uni-facts {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  border-block:1px solid var(--border);
  padding-block:16px;
  margin-top:14px
}

.uni-facts small,.tuition small {
  display:block;
  color:var(--muted);
  font-size:11px;
  line-height:1.7
}

.uni-facts b {
  font-size:12px;
  font-weight:600;
  line-height:1.6;
  display:block
}

.tuition {
  padding-block:16px;
  min-height:88px
}

.tuition strong {
  font-size:20px;
  color:var(--foreground);
  line-height:1.5;
  display:block;
  letter-spacing:-.03em
}

.card-actions {
  display:flex;
  gap:8px;
  flex-wrap:wrap
}

.card-actions [data-slot=button] {
  font-size:12px;
  flex:1;
  padding:10px 9px;
  min-height:39px
}

.card-actions svg {
  width:14px
}

.catalog-note {
  font-size:12px;
  text-align:center;
  max-width:950px;
  margin:24px auto 0;
  line-height:1.7
}

.token-banner {
  background:#0b4378;
  color:#fff;
  border-radius:23px;
  display:grid;
  grid-template-columns:1.35fr .65fr;
  padding:50px 55px;
  gap:25px;
  overflow:hidden;
  min-height:350px
}

.token-banner .eyebrow {
  color:#ffc96c
}

.token-banner h2 {
  max-width:500px
}

.token-banner p:not(.eyebrow) {
  color:#cbdeee;
  font-size:15px;
  margin-top:18px;
  max-width:550px
}

.token-equation {
  display:flex;
  gap:15px;
  align-items:center;
  margin-block:24px;
  color:#fff;
  font-size:20px
}

.token-equation>span {
  color:#a6c8e6
}

.token-equation svg {
  color:#ffc562
}

.gold-button {
  background:var(--gold)!important;
  color:#153452!important
}

.token-illustration {
  position:relative;
  min-height:280px
}

.token-illustration .kebby {
  height:280px;
  width:auto;
  position:absolute;
  left:25px;
  bottom:0
}

.token-float {
  position:absolute;
  bottom:0;
  left:0;
  background:var(--card);
  color:var(--foreground);
  border-radius:10px;
  padding:13px 18px;
  box-shadow:var(--shadow);
  font-size:21px;
  font-weight:700
}

.token-float small {
  display:block;
  font-size:10px;
  color:var(--muted);
  font-weight:400
}

.token-terms {
  display:flex;
  gap:12px;
  align-items:flex-start;
  font-size:12px;
  line-height:1.9;
  margin-top:22px
}

.token-terms svg {
  margin-top:4px;
  color:var(--primary)
}

.steps-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:30px
}

.steps-grid>div {
  border-top:1px solid var(--border);
  padding-top:22px
}

.steps-grid > div > .step-number {
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--blue-soft);
  color:var(--primary);
  font-weight:700;
  font-size:14px;
  width:43px;
  height:43px;
  margin-bottom:20px
}

.steps-grid h3 {
  font-size:18px
}

.faq-layout {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:80px
}

.faq-kebby {
  height:135px;
  width:auto;
  margin-top:24px
}

.faq-layout [data-slot=accordion-trigger] {
  font-size:16px;
  line-height:1.6;
  padding-block:24px;
  letter-spacing:0
}

.faq-layout [data-slot=accordion-content] {
  font-size:15px;
  line-height:1.85;
  color:var(--muted)
}

.contact-section {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:40px
}

.contact-section h2 {
  max-width:680px
}

.contact-section .cta {
  flex-shrink:0
}

footer {
  background:var(--soft);
  border-top:1px solid var(--border);
  padding-top:52px
}

.footer-grid {
  display:grid;
  grid-template-columns:1.3fr .8fr 1fr 1fr;
  gap:45px;
  font-size:13px
}

.footer-grid .brand {
  margin-top:4px;
  margin-bottom:25px
}

.footer-grid h3 {
  font-size:14px;
  letter-spacing:0;
  margin-bottom:18px
}

.footer-grid a:not(.brand) {
  display:flex;
  align-items:center;
  gap:4px;
  margin-bottom:8px;
  color:var(--muted)
}

.footer-grid p {
  font-size:13px;
  line-height:1.85
}

.footer-grid span {
  display:block;
  font-size:12px;
  color:var(--muted);
  margin-top:7px
}

.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:20px;
  border-top:1px solid var(--border);
  padding-block:23px;
  margin-top:40px;
  color:var(--muted);
  font-size:11px
}

.page-heading {
  margin-bottom:35px
}

.page-heading h1 {
  font-size:44px;
  max-width:800px;
  line-height:1.2
}

.page-heading>p:not(.eyebrow) {
  max-width:830px;
  font-size:15px;
  margin-top:20px
}

.filters {
  padding:25px;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--card);
  box-shadow:var(--shadow)
}

.search-field {
  position:relative;
  display:block
}

.search-field>svg {
  position:absolute;
  left:15px;
  top:15px;
  width:18px;
  color:var(--muted)
}

.search-field input {
  padding-left:45px!important;
  height:49px!important;
  background:var(--soft)!important
}

.filter-grid {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:14px;
  margin-top:22px
}

.filter-grid label {
  font-size:12px;
  font-weight:600
}

.filter-grid [data-slot=native-select-wrapper] {
  margin-top:7px;
  width:100%
}

.filter-grid select {
  font-size:12px;
  max-width:100%;
  background:var(--background);
  height:42px
}

.result-row {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-block:25px;
  font-size:14px;
  color:var(--muted)
}

.service-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px
}

.service-heading .kebby {
  height:180px;
  width:auto
}

.service-heading p:not(.eyebrow) {
  margin-top:20px;
  max-width:700px
}

.info-panel {
  margin-top:35px;
  padding:25px;
  background:var(--soft);
  border:1px solid var(--border);
  border-radius:14px
}

.info-panel .token-terms {
  margin-top:8px
}

.wallet-grid {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:30px
}

.balance-card {
  background:#0b4e89;
  color:white;
  border-radius:19px;
  min-height:290px;
  padding:31px;
  position:relative;
  overflow:hidden
}

.balance-card>div {
  position:relative;
  z-index:1
}

.balance-card span {
  font-size:14px;
  color:#c5e4ff
}

.balance-card h2 {
  font-size:55px;
  letter-spacing:-2px;
  margin-top:10px
}

.balance-card h2 small {
  font-size:19px;
  letter-spacing:0
}

.balance-card p {
  color:#bbd8ee;
  font-size:13px;
  margin-top:8px
}

.balance-card .kebby {
  width:160px;
  position:absolute;
  right:8px;
  bottom:-35px
}

.balance-account {
  position:absolute;
  bottom:30px;
  left:31px;
  max-width:60%;
  font-size:12px!important
}

.package-panel {
  border:1px solid var(--border);
  background:var(--card);
  padding:28px;
  border-radius:19px
}

.package-panel h2 {
  font-size:23px;
  margin-bottom:23px
}

.packages {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-bottom:20px
}

.packages button {
  border:1px solid var(--border);
  border-radius:10px;
  position:relative;
  background:var(--background);
  padding:17px 8px;
  display:flex;
  align-items:center;
  flex-direction:column;
  color:var(--foreground)
}

.packages button.selected {
  border:2px solid var(--primary);
  padding:16px 7px;
  background:var(--blue-soft)
}

.packages button>svg {
  color:var(--primary);
  width:20px;
  margin-bottom:10px
}

.packages strong {
  font-size:20px;
  line-height:1.5;
  white-space:nowrap
}

.packages strong small {
  display:block;
  font-size:10px;
  font-weight:400;
  color:var(--muted)
}

.packages button>span {
  font-size:11px;
  white-space:nowrap;
  margin-top:12px
}

.packages .package-check {
  position:absolute;
  top:4px;
  right:4px;
  width:12px
}

.package-panel .meta {
  margin-top:15px;
  font-size:12px
}

.payment-reference {
  display:flex;
  gap:15px;
  border:1px solid var(--border);
  padding:24px;
  border-radius:14px;
  background:var(--blue-soft);
  margin-top:25px
}

.payment-reference p {
  font-size:13px;
  margin-block:10px;
  overflow-wrap:anywhere
}

.history-panel {
  margin-top:45px;
  padding:27px;
  border:1px solid var(--border);
  border-radius:17px;
  background:var(--card)
}

.history-panel h2 {
  font-size:25px;
  margin-bottom:22px
}

[data-slot=tabs-list] {
  height:auto;
  min-height:42px;
  display:inline-flex;
  flex-wrap:wrap;
  max-width:100%;
  gap:4px;
  padding:4px;
  border-radius:9px;
  background:var(--soft)
}

[data-slot=tabs-trigger] {
  padding:10px 17px;
  font-size:13px;
  line-height:1.4;
  height:auto;
  border-radius:7px;
  white-space:normal
}

[data-slot=tabs-content] {
  margin-top:25px
}

.table-wrap {
  width:100%;
  overflow:auto
}

table {
  border-collapse:collapse;
  width:100%;
  font-size:13px;
  text-align:left
}

th {
  color:var(--muted);
  font-size:12px;
  font-weight:500;
  padding:14px 12px;
  border-bottom:1px solid var(--border)
}

td {
  padding:17px 12px;
  border-bottom:1px solid var(--border);
  vertical-align:top;
  white-space:nowrap
}

td code {
  font-size:11px;
  color:var(--muted)
}

.table-link {
  display:flex;
  gap:7px;
  align-items:center;
  font-size:11px;
  color:var(--primary);
  margin-top:8px
}

.status {
  display:inline-block;
  font-size:11px;
  line-height:1.5;
  padding:5px 9px;
  border-radius:6px;
  background:var(--blue-soft);
  color:var(--primary)
}

.status.warning {
  background:#fff0d6;
  color:#87591a
}

.empty {
  padding:30px 20px;
  text-align:center;
  max-width:520px;
  margin:auto
}

.empty .kebby {
  height:105px;
  width:auto;
  margin:0 auto 18px;
  opacity:.93
}

.empty h3 {
  font-size:15px;
  font-weight:400;
  line-height:1.8;
  color:var(--muted);
  letter-spacing:0
}

.account-gate {
  display:flex;
  align-items:center;
  gap:35px;
  background:var(--soft);
  padding:30px;
  border-radius:15px;
  margin-top:30px
}

.account-gate .kebby {
  height:160px;
  width:auto
}

.account-gate h2 {
  font-size:26px
}

.account-gate p {
  font-size:14px;
  margin-block:15px
}

.loading-state {
  text-align:center;
  padding:30px;
  max-width:450px;
  margin:auto
}

.loading-state .kebby {
  height:100px;
  width:auto;
  margin:auto
}

.loading-state p {
  font-size:14px;
  margin:20px 0
}

.loading-state [data-slot=progress] {
  max-width:230px;
  margin:auto
}

.dashboard-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:35px;
  gap:25px
}

.dashboard-heading h1 {
  font-size:37px
}

.dashboard-stats {
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr;
  gap:22px;
  margin-bottom:35px
}

.stat {
  border:1px solid var(--border);
  background:var(--card);
  border-radius:15px;
  padding:25px;
  position:relative;
  display:flex;
  flex-direction:column
}

.stat>svg {
  position:absolute;
  right:25px;
  top:25px;
  width:23px;
  color:var(--primary)
}

.stat>span {
  font-size:13px;
  color:var(--muted)
}

.stat strong {
  font-size:40px;
  line-height:1.6;
  margin-top:8px;
  font-weight:600
}

.stat strong small {
  font-size:15px;
  font-weight:400
}

.stat a {
  font-size:12px;
  display:flex;
  gap:15px;
  align-items:center;
  margin-top:8px;
  color:var(--primary)
}

.stat a svg {
  width:14px
}

.primary-stat {
  background:var(--blue-soft);
  border-color:transparent
}

.application-list {
  border:1px solid var(--border);
  border-radius:12px;
  overflow:hidden
}

.application-item {
  padding:23px;
  display:flex;
  width:100%;
  gap:20px;
  align-items:center;
  text-align:left;
  background:var(--card);
  border:0;
  border-bottom:1px solid var(--border)
}

.application-item:last-child {
  border-bottom:0
}

.application-item:hover {
  background:var(--soft)
}

.app-label {
  flex:1;
  min-width:0
}

.app-label strong {
  font-size:15px;
  display:block
}

.app-label small {
  font-size:12px;
  color:var(--muted)
}

.application-item>svg {
  width:16px
}

.notification-dot {
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--gold)
}

.profile-panel {
  border:1px solid var(--border);
  border-radius:15px;
  padding:30px;
  max-width:660px;
  background:var(--card)
}

.profile-form {
  display:grid;
  gap:18px
}

.profile-form label,.scholar-dialog>label {
  font-size:13px;
  font-weight:600;
  display:grid;
  gap:7px
}

input:not([type=checkbox]),textarea {
  font-size:15px!important;
  padding:11px 13px!important;
  background:var(--background);
  height:auto;
  min-height:42px
}

input[type=file] {
  font-size:12px!important;
  max-width:100%
}

.profile-form [data-slot=button] {
  justify-self:start
}

.account-page {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  align-items:center
}

.account-intro .kebby {
  height:250px;
  width:auto;
  margin-bottom:20px
}

.account-intro h1 {
  font-size:40px;
  margin-bottom:18px
}

.account-intro p {
  font-size:15px;
  max-width:400px
}

.account-page .profile-panel>[data-slot=button] {
  margin-top:20px
}

.settings-page {
  max-width:950px
}

.settings-panel {
  border:1px solid var(--border);
  background:var(--card);
  border-radius:18px;
  padding:35px
}

.settings-panel h2 {
  font-size:20px;
  display:flex;
  gap:10px;
  align-items:center;
  margin-bottom:22px
}

.settings-panel h2:not(:first-child) {
  margin-top:40px
}

.theme-options {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:15px
}

.theme-options button {
  border:1px solid var(--border);
  background:var(--background);
  padding:23px 15px;
  border-radius:12px;
  display:flex;
  gap:10px;
  align-items:center;
  font-size:14px
}

.theme-options button.selected {
  background:var(--blue-soft);
  border-color:var(--primary);
  color:var(--primary)
}

.theme-options svg {
  width:20px
}

.settings-panel>p {
  font-size:13px;
  margin:25px 0
}

.scholar-dialog {
  max-width:610px!important;
  max-height:88dvh;
  overflow-y:auto;
  padding:30px!important;
  border-radius:17px;
  gap:17px!important
}

.scholar-dialog [data-slot=dialog-title] {
  font-size:25px;
  line-height:1.3;
  padding-right:24px;
  letter-spacing:-.03em
}

.scholar-dialog [data-slot=dialog-description] {
  font-size:14px;
  line-height:1.7
}

.scholar-dialog>p {
  font-size:14px;
  line-height:1.85
}

.scholar-dialog h4 {
  margin-top:5px
}

.detail-heading {
  display:flex;
  align-items:center;
  gap:25px;
  padding:20px;
  background:#e8f0f7;
  border-radius:10px;
  color:#153b61
}

.detail-heading img {
  width:140px;
  max-height:65px;
  object-fit:contain
}

.detail-heading:has(img[src*="mikroskil"]) {
  background:#143460;
  color:#fff
}

.detail-heading span {
  font-size:13px
}

.detail-facts {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:15px
}

.detail-facts p {
  font-size:14px;
  margin-top:5px
}

.info-note {
  background:var(--soft);
  padding:14px;
  border-radius:8px;
  border-left:3px solid var(--primary);
  font-size:13px!important;
  overflow-wrap:anywhere
}

.checklist {
  list-style:none;
  display:grid;
  gap:8px;
  margin:0;
  padding:0
}

.checklist li {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:14px;
  color:var(--muted)
}

.checklist svg {
  color:var(--primary)
}

.source-links {
  display:flex;
  flex-wrap:wrap;
  gap:15px;
  font-size:12px;
  color:var(--primary)
}

.source-links a {
  display:flex;
  align-items:center;
  gap:5px
}

.request-cost {
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--primary);
  background:var(--blue-soft);
  padding:18px;
  border-radius:10px;
  font-size:18px
}

.checkbox-label {
  display:flex!important;
  flex-direction:row;
  align-items:flex-start;
  gap:10px!important;
  font-weight:400!important;
  font-size:13px!important;
  line-height:1.6
}

.checkbox-label [data-slot=checkbox] {
  margin-top:3px;
  flex-shrink:0
}

.status-legend {
  display:flex;
  gap:7px;
  flex-wrap:wrap
}

.status-legend span {
  font-size:10px;
  background:var(--soft);
  color:var(--muted);
  border-radius:4px;
  padding:4px 6px
}

.status-legend .current {
  background:var(--primary);
  color:var(--primary-foreground)
}

.upload-panel {
  padding:19px;
  background:var(--soft);
  border-radius:12px
}

.upload-panel p {
  margin:10px 0
}

.document-list {
  display:grid;
  gap:8px;
  margin-top:15px
}

.document-list a {
  display:flex;
  gap:7px;
  align-items:center;
  overflow-wrap:anywhere;
  font-size:12px;
  color:var(--primary)
}

.document-list small {
  margin-left:auto;
  white-space:nowrap;
  font-size:10px;
  color:var(--muted)
}

.dialog-kebby {
  height:130px;
  width:auto;
  margin:auto
}

.notification {
  display:flex;
  gap:12px;
  border:1px solid var(--border);
  padding:14px;
  border-radius:9px
}

.notification.unread {
  background:var(--blue-soft)
}

.notification svg {
  width:17px;
  color:var(--primary);
  margin-top:4px
}

.notification p {
  font-size:13px
}

.notification small {
  font-size:11px;
  color:var(--muted)
}

.error-box {
  padding:14px 18px;
  border:1px solid #e7a8a8;
  background:#fff0f0;
  color:#9d2020;
  font-size:14px;
  line-height:1.7;
  border-radius:8px;
  display:flex;
  gap:15px;
  align-items:center;
  flex-wrap:wrap
}

.dark .error-box {
  background:#422828;
  color:#ffd0d0;
  border-color:#895353
}

.toast {
  position:fixed;
  bottom:25px;
  right:25px;
  z-index:100;
  max-width:min(430px,calc(100% - 30px));
  display:flex;
  align-items:center;
  gap:14px;
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--card);
  box-shadow:0 10px 50px #0002;
  padding:14px 18px;
  font-size:14px;
  animation:fade .2s ease
}

.toast .kebby {
  height:48px;
  width:auto
}

.toast button {
  margin-left:auto
}

.debit {
  color:#af5623
}

[data-slot=progress] {
  height:7px;
  background:var(--blue-soft)
}

[data-slot=progress-indicator] {
  transition:transform .65s ease
}

.floating {
  animation:float 5s ease-in-out infinite
}

.spin {
  animation:spin 1s linear infinite
}

.language-content {
  animation:fade .22s ease
}

.reveal {
  opacity:1
}

.reveal.visible {
  animation:rise .5s ease both
}

@keyframes float {
  0%,100% {
  transform:translateY(0)
}

50% {
  transform:translateY(-9px)
}


}

@keyframes spin {
  to {
  transform:rotate(360deg)
}


}

@keyframes fade {
  from {
  opacity:.55
}

to {
  opacity:1
}


}

@keyframes rise {
  from {
  opacity:.4;
  transform:translateY(12px)
}

to {
  opacity:1;
  transform:translateY(0)
}


}


@media(min-width:1500px) {
  .header-inner {
  max-width:1320px
}

.hero {
  padding-top:75px;
  padding-bottom:80px
}

.hero-stage {
  height:480px
}

.hero-kebby {
  height:345px
}


}

@media(max-width:1200px) {
  .desktop-nav {
  gap:18px;
  font-size:13px
}

.header-inner {
  gap:20px
}

.brand {
  width:192px;
  height:31px
}

.brand img {
  width:207px;
  left:-7px;
  top:-19px
}

.header-tools {
  gap:6px
}

.header-language select {
  width:76px
}

.hero {
  gap:35px
}

.hero h1 {
  font-size:57px
}

.hero-stage {
  height:420px
}

.hero-kebby {
  height:295px
}

.kebby-bubble {
  max-width:170px
}

.brand-strip {
  gap:45px
}

.service-grid {
  grid-template-columns:repeat(4,1fr);
  gap:12px
}

.service-card {
  padding-inline:17px
}

.service-card h3 {
  font-size:17px
}

.uni-body {
  padding:18px
}

.card-actions {
  flex-direction:column
}

.packages {
  grid-template-columns:repeat(2,1fr)
}

.wallet-grid {
  grid-template-columns:.8fr 1.2fr
}

.footer-grid {
  gap:25px
}


}

@media(max-width:1000px) {
  .desktop-nav {
  display:none
}

.header-account {
  display:none!important
}

.mobile-menu {
  display:inline-flex!important
}

.header-language select {
  width:120px
}

.hero {
  gap:25px
}

.hero h1 {
  font-size:48px
}

.hero-description {
  font-size:15px
}

.hero-stage {
  height:385px
}

.hero-kebby {
  height:280px;
  left:11%
}

.kebby-bubble {
  right:-5px;
  top:80px;
  max-width:145px;
  padding:11px
}

.stage-ring {
  height:260px;
  width:260px
}

.journey-card {
  left:10px;
  right:10px;
  padding:13px;
  gap:8px
}

.journey-card strong {
  font-size:11px
}

.hero-assurance {
  gap:12px;
  font-size:11px
}

.about-grid {
  gap:45px
}

.service-grid {
  grid-template-columns:repeat(2,1fr);
  gap:20px
}

.service-card h3 {
  min-height:0;
  font-size:19px
}

.uni-grid {
  gap:15px
}

.uni-body h3 {
  font-size:18px
}

.uni-facts {
  grid-template-columns:1fr;
  gap:8px
}

.uni-art {
  padding:15px
}

.tuition strong {
  font-size:18px
}

.token-banner {
  padding:40px
}

.token-illustration .kebby {
  height:245px;
  left:0
}

.faq-layout {
  gap:40px
}

.footer-grid {
  grid-template-columns:1fr 1fr;
  gap:35px
}

.filter-grid {
  grid-template-columns:repeat(3,1fr)
}

.dashboard-heading {
  align-items:flex-start
}

.dashboard-heading .row {
  max-width:250px;
  justify-content:flex-end
}

.theme-options {
  grid-template-columns:1fr
}

.account-page {
  gap:35px
}


}

@media(max-width:700px) {
  .wrap {
  width:89%
}

.section {
  padding-block:52px
}

.header-inner {
  height:72px;
  width:89%;
  gap:12px
}

.brand {
  width:173px;
  height:29px
}

.brand img {
  width:186px;
  top:-17px;
  left:-6px
}

.header-language {
  display:none
}

.header-tools {
  gap:3px
}

.hero {
  grid-template-columns:1fr;
  padding-top:37px;
  padding-bottom:47px;
  gap:37px
}

.hero h1 {
  font-size:51px;
  line-height:1.09
}

.hero-label {
  font-size:9px;
  letter-spacing:1.1px;
  margin-bottom:22px
}

.hero-description {
  font-size:16px;
  line-height:1.8;
  margin-top:26px
}

.hero-buttons {
  margin-top:24px
}

.hero-buttons [data-slot=button] {
  font-size:13px;
  padding:14px 17px
}

.hero-assurance {
  font-size:11px;
  margin-top:22px
}

.hero-stage {
  height:355px;
  border-radius:25px;
  margin-right:5px
}

.hero-kebby {
  height:272px;
  bottom:27px;
  left:18%
}

.kebby-bubble {
  right:-8px;
  top:65px;
  max-width:151px
}

.journey-card {
  bottom:-16px;
  left:17px;
  right:17px
}

.journey-card strong {
  font-size:12px
}

.stage-caption {
  top:20px;
  left:22px
}

.stage-ring {
  left:20%;
  top:48px
}

.stage-star {
  left:22px;
  top:130px
}

.brand-strip {
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  padding:22px 6%;
  font-size:12px
}

.brand-strip span {
  justify-content:center
}

.about-grid {
  grid-template-columns:1fr;
  gap:32px
}

.about-photo {
  height:230px
}

.about-grid h2 {
  font-size:32px
}

.section-heading {
  display:block;
  margin-bottom:26px
}

.section-heading [data-slot=button] {
  margin-top:20px
}

.section-heading h2 {
  font-size:32px
}

.service-grid {
  gap:12px
}

.service-card {
  padding:20px 15px 12px
}

.service-card h3 {
  font-size:17px;
  line-height:1.35;
  min-height:46px
}

.service-card p {
  font-size:13px;
  line-height:1.75
}

.service-top {
  margin-bottom:18px
}

.service-foot>span {
  font-size:10px
}

.service-foot [data-slot=button] {
  width:32px;
  min-height:32px;
  height:32px;
  padding:5px
}

.uni-grid {
  grid-template-columns:1fr;
  gap:22px
}

.uni-art {
  height:115px;
  padding:22px
}

.uni-body {
  padding:23px
}

.uni-body h3 {
  font-size:23px;
  min-height:0
}

.program {
  min-height:0;
  margin-top:10px
}

.uni-facts {
  grid-template-columns:1fr 1fr
}

.card-actions {
  flex-direction:row
}

.card-actions [data-slot=button] {
  font-size:12px;
  padding:12px 9px
}

.tuition {
  min-height:0
}

.tuition strong {
  font-size:23px
}

.catalog-note {
  text-align:left;
  font-size:12px
}

.token-banner {
  grid-template-columns:1fr;
  padding:32px 26px;
  gap:10px;
  border-radius:18px
}

.token-banner h2 {
  font-size:33px
}

.token-illustration {
  height:225px;
  min-height:225px
}

.token-illustration .kebby {
  height:220px;
  left:30%
}

.token-float {
  left:6px;
  bottom:15px
}

.token-equation {
  font-size:19px;
  gap:12px
}

.token-terms {
  font-size:11px;
  gap:9px
}

.steps-grid {
  grid-template-columns:1fr 1fr;
  gap:27px 23px
}

.steps-grid h3 {
  font-size:17px
}

.faq-layout {
  grid-template-columns:1fr;
  gap:15px
}

.faq-kebby {
  display:none
}

.faq-layout h2 {
  font-size:32px
}

.faq-layout [data-slot=accordion-trigger] {
  font-size:15px
}

.contact-section {
  display:block
}

.contact-section h2 {
  font-size:33px
}

.contact-section .cta {
  margin-top:25px
}

.footer-grid {
  grid-template-columns:1fr 1fr;
  gap:35px 20px;
  font-size:12px
}

.footer-grid>div:first-child {
  grid-column:1/-1
}

.footer-grid .brand {
  margin-bottom:18px
}

.footer-grid h3 {
  font-size:13px
}

.footer-grid p {
  font-size:12px
}

.footer-grid>div:nth-child(3) {
  overflow-wrap:anywhere
}

.footer-bottom {
  font-size:10px;
  line-height:1.7;
  margin-top:30px
}

.page-heading h1 {
  font-size:35px
}

.page-heading p:not(.eyebrow) {
  font-size:14px
}

.filters {
  padding:18px
}

.filter-grid {
  grid-template-columns:1fr 1fr;
  gap:14px 10px
}

.filter-grid label:last-child {
  grid-column:1/-1
}

.result-row {
  font-size:12px
}

.result-row [data-slot=button] {
  font-size:12px
}

.service-heading .kebby {
  display:none
}

.wallet-grid {
  grid-template-columns:1fr;
  gap:22px
}

.balance-card {
  min-height:250px;
  padding:25px
}

.balance-card h2 {
  font-size:50px
}

.balance-card .kebby {
  width:155px;
  bottom:-32px;
  right:14px
}

.balance-account {
  bottom:23px;
  left:25px
}

.package-panel {
  padding:22px
}

.packages {
  grid-template-columns:1fr 1fr
}

.packages button {
  padding:20px 10px
}

.packages button.selected {
  padding:19px 9px
}

.packages strong {
  font-size:24px
}

.packages button>span {
  font-size:13px
}

.history-panel {
  padding:21px 16px
}

.history-panel [data-slot=tabs-trigger] {
  font-size:11px;
  padding:9px 10px
}

.history-panel h2 {
  font-size:23px
}

.account-gate {
  gap:18px;
  padding:24px 18px;
  align-items:flex-start
}

.account-gate .kebby {
  height:100px
}

.account-gate h2 {
  font-size:23px
}

.account-gate p {
  font-size:13px
}

.dashboard-heading {
  display:block
}

.dashboard-heading h1 {
  font-size:32px
}

.dashboard-heading .row {
  max-width:none;
  justify-content:flex-start;
  margin-top:20px
}

.dashboard-stats {
  grid-template-columns:1fr 1fr;
  gap:15px
}

.primary-stat {
  grid-column:1/-1
}

.stat {
  padding:21px
}

.stat strong {
  font-size:34px
}

.stat>span {
  font-size:12px
}

.stat>svg {
  right:20px;
  top:20px;
  width:20px
}

.application-item {
  gap:10px;
  padding:16px;
  flex-wrap:wrap
}

.application-item .icon-box {
  width:34px;
  height:34px
}

.app-label strong {
  font-size:13px
}

.app-label small {
  font-size:11px
}

.application-item .status {
  margin-left:44px
}

.application-item>svg {
  margin-left:auto
}

.dashboard-tabs [data-slot=tabs-trigger] {
  font-size:11px;
  padding:9px 11px
}

.account-page {
  grid-template-columns:1fr;
  gap:25px
}

.account-intro .kebby {
  height:170px
}

.profile-panel {
  padding:23px
}

.settings-panel {
  padding:24px
}

.settings-panel h2 {
  font-size:18px
}

.scholar-dialog {
  padding:24px!important;
  max-width:calc(100% - 26px)!important;
  max-height:88dvh
}

.scholar-dialog [data-slot=dialog-title] {
  font-size:22px
}

.detail-heading {
  gap:15px;
  padding:16px
}

.detail-heading img {
  width:115px
}

.request-cost {
  font-size:16px
}

.toast {
  right:15px;
  bottom:15px;
  font-size:13px;
  padding:12px
}

.info-panel {
  padding:20px
}

.token-terms svg {
  width:16px
}

.error-box {
  font-size:13px
}


}

@media(prefers-reduced-motion:reduce) {
  html {
  scroll-behavior:auto
}

*,*:before,*:after {
  animation:none!important;
  transition:none!important
}


}



.uni-art.id {
  background:#edf3f8
}

.uni-art.id .uni-logo {
  max-height:88px;
  width:88px;
  mix-blend-mode:multiply
}

.detail-heading:has(img[src*="mikroskil"]) {
  background:#e8f0f7;
  color:#153b61
}

.detail-heading img[src*="mikroskil"] {
  mix-blend-mode:multiply;
  max-height:95px;
  width:95px
}


.status {
  font-size:14px
}

.filter-grid label,.profile-form label,.scholar-dialog>label {
  font-size:14px
}

.uni-facts b {
  font-size:14px
}

.card-actions [data-slot=button] {
  font-size:14px
}

.table-wrap table {
  font-size:14px
}

.status-legend span {
  font-size:12px
}

.status-legend .current {
  font-size:14px
}

.dashboard-tabs [data-slot=tabs-trigger],.history-panel [data-slot=tabs-trigger] {
  font-size:14px
}

.service-foot>span {
  font-size:13px
}


.section-intro {
  font-size:16px;
  line-height:1.85;
  max-width:720px;
  margin-top:20px
}

.benefit-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px
}

.benefit-grid article {
  background:var(--card);
  border:1px solid var(--border);
  border-radius:14px;
  padding:28px
}

.benefit-grid h3 {
  margin:22px 0 14px
}

.benefit-grid p {
  font-size:15px
}

.destination-grid {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:17px;
  margin-top:35px
}

.destination-grid .destination-card {
  display:flex;
  align-items:center;
  flex-direction:column;
  gap:12px;
  position:relative;
  padding:26px 15px;
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--card);
  transition:transform .2s,box-shadow .2s
}

.destination-grid a:hover {
  transform:translateY(-4px);
  box-shadow:var(--shadow)
}

.destination-grid strong {
  font-size:15px;
  text-align:center
}

.destination-grid a>svg {
  position:absolute;
  top:13px;
  right:13px;
  width:15px;
  color:var(--muted)
}

.flag-circle {
  width:57px;
  height:57px;
  border-radius:50%;
  background:var(--soft);
  display:grid;
  place-items:center;
  font-size:35px;
  overflow:hidden;
  line-height:1
}

.other-flag {
  color:var(--primary)
}

.growing-section {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  align-items:center;
  padding-top:10px
}

.ecosystem-tags {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:25px
}

.ecosystem-tags span {
  font-size:13px;
  padding:7px 13px;
  background:var(--blue-soft);
  color:var(--primary);
  border-radius:25px
}

.platform-links {
  display:flex;
  gap:30px;
  flex-wrap:wrap;
  margin-top:28px
}

.platform-links a {
  display:flex;
  gap:9px;
  align-items:center;
  color:var(--primary);
  font-size:14px
}

.platform-links svg {
  width:17px
}

.partner-panel {
  background:#0b4378;
  color:white;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  padding:50px;
  border-radius:20px
}

.partner-panel .eyebrow {
  color:#ffd183
}

.partner-panel p {
  color:#d0e2f3;
  margin:20px 0 27px;
  font-size:15px
}

.partner-benefits article {
  display:flex;
  gap:18px;
  padding:18px 0;
  border-bottom:1px solid #ffffff29
}

.partner-benefits article>span {
  color:#ffc25b;
  font-size:14px
}

.partner-benefits h3 {
  font-size:19px
}

.partner-benefits p {
  margin:10px 0 0;
  font-size:14px
}

.office-layout {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:60px;
  align-items:center
}

.office-layout address {
  font-style:normal;
  font-size:15px;
  line-height:1.9;
  color:var(--muted);
  margin:25px 0
}

.office-layout address strong {
  color:var(--foreground)
}

.office-layout iframe {
  width:100%;
  height:380px;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--card)
}

.contact-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
  margin-top:35px
}

.contact-grid article {
  padding:26px 22px;
  border:1px solid var(--border);
  border-radius:13px;
  background:var(--card);
  min-width:0
}

.contact-symbol {
  font-size:26px;
  display:block;
  margin-bottom:20px
}

.contact-grid h3 {
  font-size:19px
}

.contact-grid p {
  font-size:14px;
  margin-top:12px;
  overflow-wrap:anywhere
}

.contact-grid a {
  display:flex;
  align-items:center;
  gap:7px;
  color:var(--primary);
  font-size:14px;
  font-weight:600;
  margin-top:25px
}

.contact-grid svg {
  width:16px
}

.footer-grid p {
  line-height:1.9
}

.header-explore {
  font-size:12px!important;
  padding:10px 14px!important;
  white-space:nowrap!important
}

.desktop-nav {
  gap:20px
}

.header-inner {
  gap:20px
}

.header-tools {
  gap:7px
}

.header-language select {
  width:91px
}

.header-explore svg {
  width:14px
}

.platform-title {
  font-size:clamp(42px,4.5vw,67px)!important
}

@media(max-width:1200px) {
  .header-inner {
  width:95%;
  gap:14px
}

.desktop-nav {
  gap:14px;
  font-size:12px
}

.header-explore {
  font-size:11px!important;
  padding-inline:10px!important
}

.header-language select {
  width:70px
}

.destination-grid {
  grid-template-columns:repeat(5,1fr)
}

.contact-grid {
  gap:12px
}

.contact-grid article {
  padding:23px 16px
}


}

@media(max-width:1000px) {
  .header-inner {
  width:89%
}

.header-explore {
  font-size:13px!important
}

.destination-grid {
  grid-template-columns:repeat(3,1fr)
}

.benefit-grid {
  gap:16px
}

.benefit-grid article {
  padding:22px
}

.growing-section {
  gap:35px
}

.partner-panel {
  padding:35px;
  gap:35px
}

.office-layout {
  gap:30px
}

.contact-grid {
  grid-template-columns:repeat(2,1fr)
}


}

@media(max-width:700px) {
  .header-explore {
  font-size:11px!important;
  padding:8px!important;
  min-height:36px
}

.header-explore svg {
  display:none
}

.header-inner {
  width:94%;
  gap:8px
}

.header-inner .brand {
  width:135px;
  height:24px
}

.header-inner .brand img {
  width:145px;
  top:-13px;
  left:-5px
}

.header-tools {
  gap:0
}

.header-tools [data-size=icon] {
  width:34px;
  padding:7px
}

.benefit-grid {
  grid-template-columns:1fr
}

.benefit-grid h3 {
  margin-top:17px
}

.destination-grid {
  grid-template-columns:repeat(2,1fr);
  gap:12px
}

.growing-section {
  grid-template-columns:1fr;
  padding-top:0
}

.partner-panel {
  grid-template-columns:1fr;
  padding:28px;
  gap:18px
}

.partner-panel h2 {
  font-size:31px
}

.office-layout {
  grid-template-columns:1fr
}

.office-layout iframe {
  height:300px
}

.contact-grid {
  grid-template-columns:1fr 1fr
}

.contact-grid article {
  padding:20px 15px
}

.contact-grid p,.contact-grid a {
  font-size:13px
}

.section-intro {
  font-size:15px
}

.platform-title {
  font-size:49px!important
}


}

@media(max-width:370px) {
  .header-explore {
  max-width:95px;
  white-space:normal!important
}

.header-inner .brand {
  width:118px
}

.header-inner .brand img {
  width:128px;
  top:-11px
}

.contact-grid {
  grid-template-columns:1fr
}


}


/* Readable amber exploration buttons, spaced apart from utility controls. */
.header-tools {
  gap:13px
}

.header-explore {
  margin-left:10px!important;
  padding:13px 19px!important;
  border-radius:11px!important;
  min-height:44px!important;
  flex-shrink:0
}

.header-explore,.hero-buttons .cta {
  background:linear-gradient(110deg,#ffd984 0%,#ffbd48 45%,#ffe5ac 65%,#ffc456 100%)!important;
  background-size:250% 100%!important;
  color:#15324c!important;
  border:1px solid #e4a83a!important;
  box-shadow:0 5px 15px #ca922315;
  animation:explore-shimmer 7s ease-in-out infinite;
  transition:transform .2s,box-shadow .2s!important
}

.header-explore:hover,.hero-buttons .cta:hover {
  color:#10283e!important;
  box-shadow:0 8px 22px #bd842233;
  transform:translateY(-2px)
}

.header-explore svg,.hero-buttons .cta svg {
  transition:transform .2s
}

.header-explore:hover svg,.hero-buttons .cta:hover svg {
  transform:translate(2px,-2px)
}

.header-explore:focus-visible,.hero-buttons .cta:focus-visible {
  outline:3px solid var(--primary);
  outline-offset:4px
}

.desktop-nav a:after {
  content:'';
  position:absolute;
  bottom:16px;
  height:3px;
  background:var(--gold);
  left:0;
  right:0;
  border-radius:3px;
  transform:scaleX(0);
  transform-origin:center;
  transition:transform .25s ease
}

.desktop-nav a.active:after {
  transform:scaleX(1)
}

.desktop-nav a {
  transition:color .25s
}

.mobile-nav a.active {
  color:var(--primary);
  font-weight:700;
  text-decoration:underline;
  text-decoration-color:var(--gold);
  text-underline-offset:7px
}

.service-card {
  cursor:default;
  padding-bottom:24px
}

.service-card:hover {
  transform:none;
  box-shadow:none
}

.service-card p {
  margin-bottom:0
}

.steps-grid {
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:22px
}

.steps-grid h3 {
  font-size:18px;
  line-height:1.4
}

@keyframes explore-shimmer {
  0%,100% {
  background-position:0% 50%
}

50% {
  background-position:100% 50%
}


}

@media(max-width:1200px) {
  .header-tools {
  gap:8px
}

.header-explore {
  margin-left:4px!important;
  padding:12px 14px!important
}

.desktop-nav {
  gap:13px
}


}

@media(max-width:1000px) {
  .steps-grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:25px
}


}

@media(max-width:700px) {
  .header-tools {
  gap:7px
}

.header-explore {
  margin-left:3px!important;
  padding:9px 11px!important;
  min-height:40px!important;
  max-width:135px;
  white-space:normal!important
}

.header-inner {
  gap:12px
}

.steps-grid {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:25px
}

.steps-grid h3 {
  font-size:17px
}


}

@media(max-width:370px) {
  .header-inner {
  gap:8px
}

.header-explore {
  max-width:105px
}

.header-tools {
  gap:4px
}


}

@media(prefers-reduced-motion:reduce) {
  .header-explore,.hero-buttons .cta {
  animation:none!important
}

.desktop-nav a:after {
  transition:none
}


}




/* Owl artwork uses its own light studio backdrop, legible in both themes. */
.kebby {
  -webkit-mask:none;
  mask:none;
  border-radius:20px
}

.hero-kebby {
  border-radius:28px;
  filter:none
}

.dialog-kebby,.toast .kebby,.empty .kebby {
  border-radius:12px
}


/* Real-time 3D hero, with an image fallback when WebGL is unavailable. */
.kabby-3d {
  position:absolute;
  inset:7px 0 12px;
  z-index:2;
  isolation:isolate;
  touch-action:pan-y
}


.kabby-3d-canvas {
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity .45s
}


.kabby-3d-canvas canvas {
  display:block;
  width:100%;
  height:100%
}


.kabby-3d.is-ready .kabby-3d-canvas {
  opacity:1
}


.kabby-3d-fallback {
  height:80%;
  max-width:75%;
  object-fit:contain;
  position:absolute;
  left:50%;
  bottom:8%;
  transform:translateX(-50%);
  border-radius:24px;
  transition:opacity .45s
}


.kabby-3d.is-ready .kabby-3d-fallback {
  opacity:0;
  pointer-events:none
}


.hero-stage .kebby-bubble,.hero-stage .journey-card,.hero-stage .stage-caption {
  z-index:3;
  pointer-events:none
}


@media(prefers-reduced-motion:reduce) {
  .kabby-3d-canvas,.kabby-3d-fallback {
  transition:none
}


}


.kabby-realistic {
  position:absolute;
  inset:12px 18px 18px;
  z-index:2;
  transition:transform .35s ease-out;
  transform-origin:50% 65%;
  pointer-events:none
}


.kabby-realistic img {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  border-radius:28px
}


@media(max-width:600px) {
  .kabby-realistic {
  inset:18px 7px 20px
}


}


@media(prefers-reduced-motion:reduce) {
  .kabby-realistic {
  transform:none!important;
  transition:none
}


}


/* Only the owl's eye regions move;
   no card tilt or body transform. */
.kabby-realistic {
  transform:none!important;
  transition:none
}


.kabby-realistic canvas {
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  border-radius:28px;
  max-width:100%;
  max-height:100%
}



.kebby-speech {
  min-height:86px;
  width:230px;
  max-width:55%;
  display:flex;
  align-items:center;
  padding:16px 20px;
  box-sizing:border-box;
  background:var(--card);
  color:var(--foreground);
  border:1px solid var(--border)
}


.kebby-speech .speech-line {
  font-size:14px;
  font-weight:600;
  line-height:1.5;
  color:var(--foreground);
  animation:speech-appear .22s ease-out
}


@keyframes speech-appear {
  from {
  opacity:0
}

to {
  opacity:1
}


}


.dark .kabby-realistic,.dark .kabby-realistic img,.dark .kabby-realistic canvas,.dark .kebby {
  background:transparent;
  box-shadow:none
}


@media(max-width:600px) {
  .kebby-speech {
  min-height:82px;
  width:200px;
  padding:12px;
  max-width:58%
}

.kebby-speech .speech-line {
  font-size:13px
}


}



.kabby-realistic {
  pointer-events:auto;
  cursor:pointer;
  touch-action:manipulation;
  user-select:none;
  -webkit-user-select:none
}


.kabby-realistic:focus-visible {
  outline:3px solid var(--primary);
  outline-offset:3px;
  border-radius:28px
}


.kabby-realistic img,.kabby-realistic canvas {
  pointer-events:none
}



.destination-flags {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:28px;
  padding:24px 0
}


.destination-flags .flag-circle {
  cursor:default;
  flex:0 0 72px;
  width:72px;
  height:72px;
  font-size:46px;
  display:flex;
  align-items:center;
  justify-content:center
}


@media(max-width:600px) {
  .destination-flags {
  gap:20px
}

.destination-flags .flag-circle {
  flex-basis:60px;
  width:60px;
  height:60px;
  font-size:38px
}


}



/* Seamless transparent character animation; no visible video element. */
.kabby-realistic{cursor:pointer;touch-action:manipulation}
.kabby-realistic .flight-canvas{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none;max-height:none;transform:none;opacity:0;transition:opacity .2s;pointer-events:none}
.kabby-realistic.is-flying>img,.kabby-realistic.is-flying>canvas:not(.flight-canvas){opacity:0!important;transition:opacity .2s}
.kabby-realistic.is-flying .flight-canvas{opacity:1}

/* Original video, full frame with no cropping or deformation. */
.kabby-realistic .flight-video{position:absolute;left:0;top:50%;width:100%;height:auto;aspect-ratio:16/9;transform:translateY(-50%);object-fit:contain;border-radius:20px;background:#111;opacity:0;pointer-events:none;transition:opacity .2s}
.kabby-realistic.is-flying .flight-video{opacity:1}

/* Consistent header controls on Safari, Chrome and mobile. */
.header-language { gap: 8px; }
.header-language > [data-slot="native-select-wrapper"] { width: auto; }
.header-tools { gap: 12px; flex-shrink: 0; }
.preference-menu { position: relative; color: var(--foreground); }
.preference-menu summary {
  list-style: none; display: flex; align-items: center; justify-content: center;
  gap: 8px; min-height: 40px; padding: 8px 12px; border: 1px solid var(--border);
  border-radius: 12px; background: var(--card); font-size: 13px;
  line-height: 1.4; white-space: nowrap; cursor: pointer;
}
.preference-menu summary::-webkit-details-marker { display: none; }
.header-language .preference-menu summary::after { content: '⌄'; }
.header-tools > .preference-menu summary { width: 42px; padding: 6px; font-size: 23px; }
.preference-menu summary:focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }
.preference-panel {
  position: absolute; top: calc(100% + 10px); right: 0; z-index: 60;
  width: max-content; min-width: 180px; max-width: 85vw; padding: 6px;
  background: var(--card); border: 1px solid var(--border);
  border-radius: 14px; box-shadow: 0 12px 32px #0002;
}
.preference-panel button {
  display: block; width: 100%; text-align: left; border: 0;
  background: transparent; color: var(--foreground); padding: 10px 12px;
  border-radius: 8px; font-size: 14px; white-space: nowrap;
}
.preference-panel button:hover, .preference-panel button[aria-pressed="true"] { background: var(--soft); color: var(--primary); }
@media(max-width: 700px) {
  .header-tools { gap: 6px; }
  .header-language > svg { display: none; }
  .preference-menu summary { padding: 7px 8px; font-size: 12px; }
  .header-tools > .preference-menu summary { width: 36px; }
}

/* Mobile speech sits below the owl, never over its face or body. */
@media (max-width: 600px) {
  .hero-stage { margin-bottom: 104px; }
  .hero-stage .kebby-speech {
    top: calc(100% + 12px);
    bottom: auto;
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    width: min(280px, 100%);
    max-width: 100%;
    min-height: 0;
    padding: 9px 12px;
    border-radius: 12px;
    text-align: center;
    justify-content: center;
    pointer-events: none;
  }
  .hero-stage .kebby-speech .speech-line {
    font-size: 12px;
    line-height: 1.45;
    overflow-wrap: anywhere;
  }
}

/* PSE badge below the footer introduction. */
footer .footer-pse { display: block; width: 100%; max-width: 360px; height: auto; margin-top: 18px; border-radius: 8px; object-fit: contain; }

/* Five clear steps, with compact cards that stack on small screens. */
#how-it-works .steps-grid { gap: 16px; align-items: stretch; }
#how-it-works .journey-step {
  position: relative; padding: 24px 18px; border: 1px solid var(--border);
  border-radius: 20px; background: var(--card); box-shadow: var(--shadow);
  transition: transform .22s, border-color .22s, box-shadow .22s;
}
#how-it-works .journey-step:hover { transform: translateY(-5px); border-color: var(--gold); box-shadow: 0 14px 28px #0861a812; }
#how-it-works .step-number { display:block; width:auto; height:auto; background:none; color:var(--muted); font-size:12px; letter-spacing:2px; margin:0 0 18px; }
#how-it-works .step-icon { width:48px; height:48px; padding:10px; border-radius:14px; background:var(--blue-soft); color:var(--primary); margin-bottom:20px; }
#how-it-works .journey-step:nth-child(3) .step-icon { background:#ffba4226; color:var(--foreground); }
#how-it-works .journey-step h3 { font-size:18px; line-height:1.35; margin-bottom:12px; }
#how-it-works .journey-step p { font-size:13px; line-height:1.7; }
@media(max-width:600px) {
  #how-it-works .steps-grid { grid-template-columns:1fr; gap:12px; }
  #how-it-works .journey-step { padding:20px 20px 20px 84px; min-height:130px; }
  #how-it-works .step-icon { position:absolute; left:18px; top:48px; }
  #how-it-works .step-number { margin-bottom:8px; }
}
@media(prefers-reduced-motion:reduce) { #how-it-works .journey-step { transition:none; } #how-it-works .journey-step:hover { transform:none; } }

/* Step titles are flowing text; only .step-number receives badge styles. */
#how-it-works .journey-step h3 span {
  display: inline; width: auto; height: auto; margin: 0; padding: 0;
  background: none; border: 0; border-radius: 0; color: inherit;
  font: inherit; letter-spacing: inherit; white-space: normal;
}
#how-it-works .journey-step { overflow: hidden; }
#how-it-works .journey-step::before {
  content: ''; position: absolute; inset: 0 0 auto; height: 4px;
  background: linear-gradient(90deg, var(--primary), var(--gold));
}
#how-it-works .journey-step h3 { color: var(--foreground); min-height: 74px; height: auto; }
#how-it-works .journey-step p { margin-top: 0; }
@media(max-width:600px) {
  #how-it-works .journey-step h3 { min-height: 0; }
}

/* V17 — multilingual platform badge + typewriter treatment */
.hero-label {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  max-width: min(100%, 760px);
  min-height: 42px;
  padding: 10px 16px;
  margin-bottom: 28px;
  border: 1px solid color-mix(in srgb, var(--primary) 18%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--blue-soft) 88%, transparent);
  box-shadow: 0 8px 24px color-mix(in srgb, var(--primary) 8%, transparent);
  color: var(--primary);
  font-size: clamp(10.5px, .80vw, 13px);
  font-weight: 750;
  line-height: 1.35;
  letter-spacing: .10em;
  text-transform: uppercase;
}
.hero-label::before {
  content: '';
  flex: 0 0 auto;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: currentColor;
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--primary) 10%, transparent);
}
.hero-label > span {
  display: inline;
  width: auto;
  height: auto;
  min-width: 0;
  background: none;
  border-radius: 0;
  overflow-wrap: anywhere;
  text-wrap: balance;
}
.hero-label [data-typewriter]::after {
  content: '';
  display: inline-block;
  width: 2px;
  height: 1.05em;
  margin-left: .22em;
  border-radius: 999px;
  background: currentColor;
  vertical-align: -.12em;
  animation: ks-typewriter-caret .78s steps(1, end) infinite;
}
html[lang^="th"] .hero-label,
html[lang^="zh"] .hero-label,
html[lang^="ko"] .hero-label {
  letter-spacing: .045em;
  text-transform: none;
}
@keyframes ks-typewriter-caret {
  0%, 48% { opacity: 1; }
  49%, 100% { opacity: 0; }
}
@media (max-width: 640px) {
  .hero-label {
    max-width: 100%;
    min-height: 38px;
    padding: 9px 13px;
    margin-bottom: 22px;
    border-radius: 18px;
    font-size: 10.5px;
    line-height: 1.45;
  }
}
@media (prefers-reduced-motion: reduce) {
  .hero-label [data-typewriter]::after { animation: none; opacity: 1; }
}
