:root {
       --lime:#eafa8d;
       --lime-soft:#f6fbdc;
       --lime-deep:#cfe969;
       --pink:#f23f94;
       --pink-soft:#ffe3f0;
       --cyan:#72d9e3;
       --yellow:#ffe66a;
       --gray-900:#414843;
       --gray-700:#626a65;
       --gray-500:#8d958f;
       --gray-200:#dfe4df;
       --gray-100:#f1f4f1;
       --cream:#fffdf7;
       --white:#fff
    }

/* Typography scale: Korean supporting copy 16px / English labels 14px */
.eyebrow,
.badge,
.label,
.value .num,
.program-card .top span,
.step b,
.copyright,
[lang="en"] {
    font-size: 14px !important;
}
     * {
       box-sizing:border-box
    }
     html {
       scroll-behavior:smooth
    }
     body {
       margin:0;
       background:var(--cream);
       color:var(--gray-900);
       font-family:"Pretendard",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
       letter-spacing:-.025em;
       overflow-x:hidden
    }
     body.lock {
       overflow:hidden
    }
     a {
       color:inherit;
       text-decoration:none
    }
     button {
       font:inherit
    }
     .container {
       width:min(1340px,calc(100% - 80px));
       margin:auto
    }
     .topbar {
       height:36px;
       background:#727b74;
       color:#fff;
       font:400 13px "Pretendard",sans-serif;
       letter-spacing:.08em
    }
     .topbar .container {
       height:100%;
       display:flex;
       justify-content:flex-end;
       align-items:center;
       gap:23px
    }
     .topbar a {
       font-size:13px!important;
       opacity:.75
    }
     .topbar a:hover {
       opacity:1
    }
     .topbar .top-social-text {
       width:auto;
       height:auto;
       font-size:13px!important;
       font-weight:400;
       letter-spacing:.08em;
       opacity:.82
    }
     .topbar .top-inquiry-link {
       display:inline-flex;
       align-items:center;
       justify-content:center;
       min-height:26px;
       padding:0 11px;
       border-radius:8px;
       background:var(--lime);
       color:#465044;
       font-size:13px!important;
       font-weight:600;
       letter-spacing:-.01em;
       opacity:1
    }
     .topbar .top-inquiry-link:hover {
       background:var(--pink);
       color:#fff
    }
     body > header {
       height:94px;
       background:rgba(255,255,255,.95);
       border-bottom:1px solid rgba(65,72,67,.1);
       position:sticky;
       top:0;
       z-index:50;
       backdrop-filter:blur(13px)
    }
     .head {
       height:100%;
       display:flex;
       align-items:center
    }
     .logo {
       width:255px;
       display:flex;
       align-items:center;
       flex:0 0 auto
    }
     .logo img {
       display:block;
       width:100%;
       height:auto
    }
     .gnb {
       height:100%;
       display:flex;
       align-items:stretch;
       justify-content:center;
       flex:1
    }
     .gnb-item {
       height:100%;
       display:flex;
       align-items:center;
       padding:0 29px;
       font-size:17px;
       font-weight:600;
       position:relative
    }
     .gnb-main {
       height:100%;
       display:flex;
       align-items:center;
       color:var(--gray-900)
    }
     .gnb-item:after {
       content:"";
       position:absolute;
       bottom:25px;
       left:29px;
       right:100%;
       height:3px;
       background:var(--pink);
       transition:.25s
    }
     .gnb-item:hover:after,
     .gnb-item.is-current:after {
       right:29px
    }
     .drop {
       position:absolute;
       visibility:hidden;
       opacity:0;
       top:93px;
       left:50%;
       transform:translate(-50%,9px);
       width:235px;
       padding:13px;
       background:#fff;
       border-radius:0 0 14px 14px;
       box-shadow:0 22px 45px rgba(65,72,67,.13);
       transition:.23s
    }
     .gnb-item:hover .drop {
       visibility:visible;
       opacity:1;
       transform:translate(-50%,0)
    }
     .drop a {
       display:block;
       padding:10px 12px;
       border-radius:7px;
       font-size:15px;
       font-weight:500;
       color:var(--gray-700)
    }
     .drop a:hover {
       background:var(--lime-soft);
       color:var(--gray-900)
    }
     .header-side {
       width:225px;
       display:flex;
       justify-content:flex-end
    }
     .header-side a {
       display:flex;
       align-items:center;
       justify-content:center;
       gap:12px;
       min-height:50px;
       padding:6px 7px 6px 22px;
       border:2px solid var(--pink);
       border-radius:999px;
       background:#fff;
       font-size:17px;
       font-weight:600;
       white-space:nowrap;
       transition:background .2s,color .2s,transform .2s
    }
     .header-side a:hover {
       background:var(--pink);
       color:#fff;
       transform:translateY(-1px)
    }
     .header-side b {
       display:flex;
       align-items:center;
       justify-content:center;
       width:36px;
       height:36px;
       border-radius:50%;
       background:var(--pink);
       color:#fff;
       font-size:16px;
       line-height:1;
       padding-top:3px
    }
     .header-side a:hover b {
       background:#fff;
       color:var(--pink)
    }
     .menu-btn {
       display:none;
       margin-left:auto;
       width:50px;
       height:50px;
       align-items:center;
       justify-content:center;
       flex-direction:column;
       gap:5px;
       padding:0;
       border:0;
       border-radius:50%;
       background:var(--lime);
       color:var(--gray-900);
       cursor:pointer
    }
     .menu-btn span {
       width:18px;
       height:1.5px;
       display:block;
       background:currentColor;
       transition:transform .2s,opacity .2s
    }
     .menu-btn.active span:nth-child(1) {
       transform:translateY(6.5px) rotate(45deg)
    }
     .menu-btn.active span:nth-child(2) {
       opacity:0
    }
     .menu-btn.active span:nth-child(3) {
       transform:translateY(-6.5px) rotate(-45deg)
    }
     .mobile-menu {
       display:none
    }
     .hero {
       min-height:705px;
       background:var(--lime);
       position:relative;
       overflow:hidden
    }
     .hero:before {
       content:"";
       position:absolute;
       width:470px;
       height:470px;
       border-radius:50%;
       background:rgba(255,255,255,.36);
       right:-130px;
       top:-170px
    }
     .hero:after {
       content:"";
       position:absolute;
       width:240px;
       height:240px;
       border-radius:50%;
       background:var(--cyan);
       left:-135px;
       bottom:-140px
    }
     .hero-grid {
       min-height:705px;
       display:grid;
       grid-template-columns:1fr .92fr;
       gap:76px;
       align-items:center;
       position:relative;
       z-index:2
    }
     .eyebrow {
       display:inline-flex;
       align-items:center;
       gap:11px;
       background:#fff;
       border-radius:40px;
       padding:9px 15px;
       font:600 14px "Pretendard",sans-serif;
       letter-spacing:.13em;
       box-shadow:0 10px 25px rgba(65,72,67,.08)
    }
     .eyebrow:before {
       content:"";
       width:8px;
       height:8px;
       border-radius:50%;
       background:var(--pink)
    }
     h1 {
       font-size:60px;
       line-height:1.13;
       letter-spacing:-.065em;
       margin:24px 0 23px;
       font-weight:600
    }
     .hot {
       position:relative;
       color:var(--pink);
       z-index:1;
       white-space:nowrap
    }
     .hot:after {
       content:"";
       position:absolute;
       left:-4px;
       right:-5px;
       bottom:3px;
       height:17px;
       background:#fff;
       z-index:-1;
       transform:rotate(-1deg)
    }
     .hero-copy {
       font-size:17px;
       line-height:1.85;
       color:#5f665f;
       margin:0 0 32px;
       max-width:575px
    }
     .hero-actions {
       display:flex;
       align-items:center;
       gap:15px
    }
     .hero-actions .primary {
       display:inline-flex;
       align-items:center;
       gap:28px;
       padding:17px 18px 17px 24px;
       border-radius:40px;
       background:#626b64;
       color:#fff;
       font-size:16px;
       font-weight:600;
       box-shadow:0 12px 28px rgba(65,72,67,.17)
    }
     .hero-actions .primary b {
       display:grid;
       place-items:center;
       width:29px;
       height:29px;
       border-radius:50%;
       background:var(--pink);
       color:#fff
    }
     .text-link {
       font-size:16px;
       font-weight:600;
       padding:12px
    }
     .hero-visual {
       height:535px;
       position:relative
    }
     .hero-photo {
       position:absolute;
       width:420px;
       height:470px;
       right:18px;
       top:24px;
       border-radius:49% 51% 43% 57%/50% 43% 57% 50%;
       overflow:hidden;
       background:#fff;
       border:8px solid rgba(255,255,255,.72);
       box-shadow:22px 24px 0 rgba(255,255,255,.47);
       transition:border-radius .9s cubic-bezier(.22,.61,.36,1),transform .9s cubic-bezier(.22,.61,.36,1)
    }
     .hero-visual.shape-one .hero-photo {
       border-radius:49% 51% 43% 57%/50% 43% 57% 50%;
       transform:rotate(0)
    }
     .hero-visual.shape-two .hero-photo {
       border-radius:61% 39% 54% 46%/42% 57% 43% 58%;
       transform:rotate(2deg)
    }
     .hero-visual.shape-three .hero-photo {
       border-radius:42% 58% 37% 63%/59% 38% 62% 41%;
       transform:rotate(-2deg)
    }
     .hero-photo img {
       position:absolute;
       inset:0;
       width:100%;
       height:100%;
       object-fit:cover;
       opacity:0;
       transform:scale(1.035);
       transition:opacity .8s ease,transform 1.4s ease
    }
     .hero-photo img.active {
       opacity:1;
       transform:scale(1)
    }
     .orbit {
       position:absolute;
       border:2px solid var(--pink);
       border-radius:50%;
       width:440px;
       height:500px;
       right:-2px;
       top:7px;
       transform:rotate(8deg);
       transition:border-radius .9s cubic-bezier(.22,.61,.36,1),transform .9s cubic-bezier(.22,.61,.36,1),width .9s,height .9s
    }
     .hero-visual.shape-one .orbit {
       border-radius:50%;
       transform:rotate(8deg)
    }
     .hero-visual.shape-two .orbit {
       border-radius:58% 42% 63% 37%/46% 61% 39% 54%;
       transform:rotate(-7deg)
    }
     .hero-visual.shape-three .orbit {
       border-radius:39% 61% 48% 52%/62% 43% 57% 38%;
       transform:rotate(14deg)
    }
     .badge {
       position:absolute;
       z-index:3;
       width:120px;
       height:120px;
       border-radius:50%;
       background:var(--pink);
       color:#fff;
       left:4px;
       bottom:50px;
       display:grid;
       place-items:center;
       text-align:center;
       font-size:16px;
       font-weight:600;
       line-height:1.45;
       transform:rotate(-9deg);
       box-shadow:0 11px 25px rgba(242,63,148,.25)
    }
     .spark {
       position:absolute;
       right:-15px;
       top:10px;
       font-size:55px;
       color:var(--pink)
    }
     .hero-pager {
       position:absolute;
       bottom:28px;
       left:0;
       display:flex;
       align-items:center;
       gap:12px;
       font:600 14px "Pretendard",sans-serif
    }
     .hero-pager > button {
       padding:4px 0;
       border:0;
       background:transparent;
       color:var(--gray-900);
       font:inherit;
       cursor:pointer
    }
     .hero-progress {
       display:flex;
       width:100px;
       height:2px;
       background:#ffffffa1
    }
     .hero-progress button {
       width:33.333%;
       height:8px;
       margin-top:-3px;
       padding:0;
       border:0;
       background:transparent;
       position:relative;
       cursor:pointer
    }
     .hero-progress button:after {
       content:"";
       position:absolute;
       inset:3px 0;
       background:transparent;
       transition:background-color .25s
    }
     .hero-progress button.active:after,
     .hero-progress button:hover:after {
       background:var(--pink)
    }
     .about {
       padding:135px 0 125px;
       background:#fff
    }
     .about-grid {
       display:grid;
       grid-template-columns:.78fr 1.22fr;
       gap:100px;
       align-items:start
    }
     .label {
       display:flex;
       align-items:center;
       gap:12px;
       font:600 14px "Pretendard",sans-serif;
       letter-spacing:.15em;
       color:var(--pink);
       margin-bottom:27px
    }
     .label:before {
       content:"";
       width:28px;
       height:2px;
       background:var(--pink)
    }
     .about h2,.program-head h2,.gallery-head h2 {
       font-size:40px;
       line-height:1.24;
       letter-spacing:-.055em;
       margin:0
    }
     .about h2 span {
       color:#a0a8a2
    }
     .about-copy {
       padding-top:44px
    }
     .about-copy .lead {
       font-size:20px;
       font-weight:600;
       line-height:1.7;
       margin:0 0 24px
    }
     .about-copy p {
       font-size:16px;
       line-height:1.9;
       color:var(--gray-700);
       margin:0
    }
     .values {
       grid-column:1/-1;
       display:grid;
       grid-template-columns:repeat(3,1fr);
       gap:18px;
       margin-top:58px
    }
     .value {
       min-height:260px;
       border-radius:22px;
       padding:31px;
       position:relative;
       overflow:hidden
    }
     .value:nth-child(1) {
       background:var(--yellow)
    }
     .value:nth-child(2) {
       background:var(--cyan)
    }
     .value:nth-child(3) {
       background:var(--pink-soft)
    }
     .value .num {
       font:600 14px "Pretendard",sans-serif;
       letter-spacing:.1em
    }
     .value h3 {
       font-size:23px;
       line-height:1.35;
       margin:56px 0 13px
    }
     .value p {
       font-size:16px;
       line-height:1.7;
       color:#55605a;
       margin:0
    }
     .value i {
       font-style:normal;
       position:absolute;
       right:23px;
       top:23px;
       width:40px;
       height:40px;
       border-radius:50%;
       border:1px solid rgba(65,72,67,.4);
       display:grid;
       place-items:center
    }
     .programs {
       padding:130px 0;
       background:var(--lime-soft)
    }
     .program-head {
       display:flex;
       justify-content:space-between;
       align-items:end;
       margin-bottom:48px
    }
     .program-head p {
       max-width:440px;
       margin:0 0 0 60px;
       color:var(--gray-700);
       font-size:16px;
       line-height:1.8;
       text-align:right;
       word-break:keep-all
    }
     .program-grid {
       display:grid;
       grid-template-columns:repeat(3,1fr);
       gap:16px
    }
     .program-card {
       display:block;
       color:inherit;
       min-height:440px;
       background:#fff;
       border-radius:24px;
       padding:29px 29px 80px;
       position:relative;
       overflow:hidden;
       transition:.35s;
       border:1px solid rgba(65,72,67,.06)
    }
     .program-card:hover {
       transform:translateY(-9px);
       box-shadow:0 20px 45px rgba(65,72,67,.11)
    }
     .program-card.program-cooking {
       background:var(--pink-soft)
    }
     .program-card.program-oneday {
       background:#e3f6f7
    }
     .program-card .top {
       height:auto;
       background:none;
       color:var(--gray-900);
       display:flex;
       justify-content:space-between;
       align-items:center
    }
     .program-card .top span {
       font:600 14px "Pretendard",sans-serif;
       letter-spacing:.12em
    }
     .program-card .top b {
       width:42px;
       height:42px;
       border:1px solid rgba(65,72,67,.35);
       border-radius:50%;
       display:grid;
       place-items:center
    }
     .program-icon {
       height:137px;
       display:flex;
       align-items:center;
       justify-content:center;
       margin:20px 0
    }
     .art-icon {
       width:105px;
       height:105px;
       border-radius:38% 62% 55% 45%;
       background:var(--yellow);
       transform:rotate(15deg);
       position:relative
    }
     .art-icon:after {
       content:"";
       position:absolute;
       width:34px;
       height:34px;
       border-radius:50%;
       background:var(--pink);
       top:13px;
       right:-5px
    }
     .program-card.program-cooking .art-icon {
       border-radius:15px 65px 15px 65px;
       background:var(--pink);
       box-shadow:18px 13px 0 var(--yellow)
    }
     .program-card.program-oneday .art-icon {
       border-radius:50%;
       background:var(--cyan);
       box-shadow:inset 0 0 0 25px #fff
    }
     .program-card h3 {
       font-size:22px;
       margin:0 0 7px
    }
     .program-card h3 small {
       display:block;
       font-size:16px;
       color:var(--pink);
       margin-top:7px;
       font-weight:600
    }
     .program-card p {
       font-size:16px;
       color:var(--gray-700);
       line-height:1.75;
       margin:15px 0 0;
       word-break:keep-all
    }
     .ages {
       position:absolute;
       left:29px;
       bottom:27px;
       font-size:16px;
       font-weight:600;
       color:var(--gray-500)
    }
     .journey {
       padding:125px 0;
       background:#7e8881;
       color:#fff;
       position:relative;
       overflow:hidden
    }
     .journey:after {
       content:"";
       position:absolute;
       width:410px;
       height:410px;
       border-radius:50%;
       background:var(--lime);
       right:-190px;
       bottom:-240px
    }
     .journey-grid {
       display:grid;
       grid-template-columns:.95fr 1.05fr;
       align-items:center;
       gap:100px;
       position:relative;
       z-index:2
    }
     .journey-copy .label {
       color:var(--lime)
    }
     .journey-copy .label:before {
       background:var(--lime)
    }
     .journey h2 {
       font-size:51px;
       line-height:1.22;
       letter-spacing:-.055em;
       margin:0 0 28px
    }
     .journey h2 span {
       color:var(--lime)
    }
     .journey p {
       color:#e4e8e4;
       line-height:1.9;
       font-size:16px
    }
     .journey-steps {
       display:grid;
       grid-template-columns:repeat(2,1fr);
       gap:13px
    }
     .step {
       min-height:170px;
       padding:25px;
       border-radius:18px;
       background:rgba(255,255,255,.11);
       border:1px solid rgba(255,255,255,.15);
       backdrop-filter:blur(5px)
    }
     .step b {
       font:600 14px "Pretendard",sans-serif;
       letter-spacing:.12em;
       color:var(--lime)
    }
     .step h3 {
       font-size:20px;
       margin:32px 0 8px
    }
     .step p {
       font-size:16px;
       line-height:1.65;
       margin:0;
       color:#e4e8e4
    }
     .gallery {
       padding:130px 0 140px;
       background:#f1f3f1
    }
     .gallery-head {
       display:flex;
       justify-content:space-between;
       align-items:end;
       margin-bottom:50px
    }
     .gallery-head p {
       max-width:465px;
       margin:0 0 0 60px;
       color:var(--gray-700);
       font-size:16px;
       line-height:1.8;
       text-align:right;
       word-break:keep-all
    }
     .works {
       display:grid;
       grid-template-columns:1.18fr .82fr .82fr;
       gap:17px
    }
     .work {
       height:470px;
       border-radius:24px;
       overflow:hidden;
       position:relative;
       background:#ddd
    }
     .work:nth-child(2),.work:nth-child(3) {
       height:365px;
       margin-top:105px
    }
     .work img {
       width:100%;
       height:100%;
       object-fit:cover;
       transition:.65s
    }
     .work:hover img {
       transform:scale(1.045)
    }
     .work:after {
       content:"";
       position:absolute;
       inset:0;
       background:linear-gradient(transparent 55%,rgba(68,77,70,.72))
    }
     .work-caption {
       position:absolute;
       z-index:2;
       left:24px;
       right:24px;
       bottom:23px;
       color:#fff;
       display:flex;
       justify-content:space-between;
       align-items:end
    }
     .work-caption b {
       font-size:17px
    }
     .work-caption span {
       font:600 14px "Pretendard",sans-serif;
       letter-spacing:.09em;
       opacity:.75
    }
     .kids-point {
       padding:100px 0;
       background:#fff
    }
     .kids-box {
       height:320px;
       background:var(--lime);
       border-radius:32px;
       overflow:hidden;
       position:relative;
       display:flex;
       align-items:center
    }
     .kids-copy {
       position:relative;
       z-index:2;
       width:55%;
       padding-left:65px
    }
     .kids-copy small {
       font:600 14px "Pretendard",sans-serif;
       letter-spacing:.15em;
       color:var(--pink)
    }
     .kids-copy h2 {
       font-size:38px;
       line-height:1.35;
       margin:13px 0 11px
    }
     .kids-copy p {
       margin:0;
       color:var(--gray-700);
       font-size:16px;
       line-height:1.75
    }
     .kids-illustration {
       position:absolute;
       right:0;
       top:0;
       width:52%;
       height:100%;
       object-fit:cover;
       object-position:68% center
    }
     .kids-box:after {
       content:"";
       position:absolute;
       z-index:1;
       inset:0;
       background:linear-gradient(90deg,var(--lime) 0,var(--lime) 47%,rgba(234,250,141,.3) 68%,transparent)
    }
     .contact {
       padding:85px 0;
       background:var(--pink);
       color:#fff
    }
     .contact .container {
       display:flex;
       justify-content:space-between;
       align-items:center
    }
     .contact h2 {
       font-size:39px;
       line-height:1.35;
       margin:0
    }
     .contact p {
       margin:11px 0 0;
       color:#ffe9f3;
       font-size:16px
    }
     .contact-buttons {
       display:flex;
       gap:11px
    }
     .contact-buttons a {
       min-width:180px;
       padding:19px 23px;
       border-radius:8px;
       background:#fff;
       color:var(--gray-900);
       display:flex;
       justify-content:space-between;
       font-size:16px;
       font-weight:600
    }
     .contact-buttons a:last-child {
       background:var(--lime)
    }
     footer {
       padding:52px 0;
       background:#e9ede9;
       color:#6f7771;
       font-size:16px;
       line-height:1.9
    }
     .foot {
       display:grid;
       grid-template-columns:1fr 2fr 1fr;
       gap:45px
    }
     .footer-logo {
       display:flex;
       align-items:flex-start
    }
     .footer-logo img {
       display:block;
       width:230px;
       height:auto
    }
     footer a[href^="tel:"] {
       color:#525b55;
       font-weight:600
    }
     .footer-links {
       text-align:right
    }
     .footer-info p {
       margin:0;
       font-size:14px
    }
     .copyright {
       margin-top:15px!important;
       font-size:12px!important;
       font-weight:600;
       letter-spacing:.02em
    }
     .policy-links {
       display:flex;
       justify-content:flex-end;
       gap:16px
    }
     .policy-links button {
       padding:0;
       border:0;
       background:none;
       color:#606963;
       font-size:14px;
       cursor:pointer
    }
     .social-links {
       display:flex;
       flex-direction:column;
       justify-content:center;
       gap:10px;
       position:fixed;
       z-index:90;
       right:24px;
       bottom:24px;
       margin:0
    }
     .social-links a {
       width:56px;
       height:56px;
       display:grid;
       place-items:center;
       border:0;
       border-radius:50%;
       background:#fff;
       color:#fff;
       position:relative;
       box-shadow:0 9px 24px rgba(65,72,67,.14);
       transition:.2s
    }
     .social-links a::before {
       content:attr(data-quick-label);
       position:absolute;
       right:66px;
       padding:6px 9px;
       border-radius:6px;
       background:#414843;
       color:#fff;
       font-size:11px;
       font-weight:500;
       letter-spacing:.05em;
       opacity:0;
       visibility:hidden;
       transform:translateX(5px);
       transition:.2s;
       white-space:nowrap
    }
     .social-links a:hover::before {
       opacity:1;
       visibility:visible;
       transform:translateX(0)
    }
     .social-links a:hover {
       color:#fff;
       filter:brightness(.94);
       transform:translateY(-3px)
    }
     .social-links a:first-child {
       background:linear-gradient(135deg,#7b42f6 0%,#f23f94 52%,#ff9c4a 100%)
    }
     .social-links .blog-icon {
       background:#35b761
    }
     .social-links svg {
       width:25px;
       fill:none;
       stroke:currentColor;
       stroke-width:1.8
    }
     .blog-icon {
       font-size:22px;
       font-weight:600
    }
     .quick-top {
       display:flex!important;
       flex-direction:column;
       align-items:center;
       justify-content:center;
       gap:1px;
       background:#6f7872!important
    }
     .quick-top span {
       display:block;
       font-size:26px;
       line-height:1;
       transform:none
    }
     .quick-top small {
       display:block;
       margin-top:4px;
       font-size:11px;
       font-weight:600;
       letter-spacing:.08em
    }
     .policy-modal {
       display:none;
       position:fixed;
       z-index:200;
       inset:0
    }
     .policy-modal.open {
       display:block
    }
     .policy-modal-backdrop {
       position:absolute;
       inset:0;
       background:rgba(28,34,30,.62);
       backdrop-filter:blur(4px)
    }
     .policy-modal-dialog {
       position:absolute;
       left:50%;
       top:50%;
       width:min(720px,calc(100% - 34px));
       max-height:min(720px,calc(100vh - 50px));
       overflow:auto;
       transform:translate(-50%,-50%);
       padding:48px;
       border-radius:22px;
       background:#fff;
       box-shadow:0 28px 80px rgba(0,0,0,.2)
    }
     .policy-modal-close {
       position:absolute;
       right:20px;
       top:18px;
       width:42px;
       height:42px;
       border:0;
       border-radius:50%;
       background:var(--gray-100);
       display:flex;
       align-items:center;
       justify-content:center;
       padding:2px 0 0;
       font-family:Arial,sans-serif;
       font-size:26px;
       line-height:1;
       cursor:pointer
    }
     .policy-content h2 {
       margin:0 0 28px;
       font-size:26px;
       font-weight:600
    }
     .policy-content h3 {
       margin:28px 0 8px;
       font-size:16px;
       font-weight:600
    }
     .policy-content p {
       margin:0;
       color:var(--gray-700);
       font-size:14px;
       line-height:1.85
    }
     .reveal {
       opacity:0;
       transform:translateY(25px);
       transition:.75s
    }
     .reveal.show {
       opacity:1;
       transform:none
    }
     @media(max-width:1080px) {
       .container {
         width:calc(100% - 42px)
      }
       .gnb,.header-side {
         display:none
      }
       .logo {
         width:220px
      }
       .menu-btn {
         display:flex
      }
       .mobile-menu.open {
         display:block;
         position:fixed;
         z-index:45;
         inset:94px 0 0;
         background:#fff;
         padding:30px 25px;
         overflow:auto
      }
       .mobile-menu details {
         padding:17px 0;
         border-bottom:1px solid var(--gray-200)
      }
       .mobile-menu summary {
         position:relative;
         padding:0 30px 0 0;
         list-style:none;
         font-size:20px;
         font-weight:600;
         cursor:pointer
      }
       .mobile-menu summary::-webkit-details-marker {
         display:none
      }
       .mobile-menu summary::after {
         position:absolute;
         top:50%;
         right:4px;
         width:8px;
         height:8px;
         border-right:2px solid var(--gray-700);
         border-bottom:2px solid var(--gray-700);
         content:"";
         transform:translateY(-68%) rotate(45deg);
         transition:transform .2s
      }
       .mobile-menu details[open] summary {
         margin-bottom:11px
      }
       .mobile-menu details[open] summary::after {
         transform:translateY(-30%) rotate(225deg)
      }
       .mobile-menu a {
         display:block;
         padding:8px 14px 8px 12px;
         color:var(--gray-700);
         font-size:15px
      }
       .hero-grid {
         gap:30px
      }
       .hero-photo {
         width:370px
      }
       .about-grid {
         gap:50px
      }
       .program-grid {
         grid-template-columns:repeat(2,1fr)
      }
       .journey-grid {
         gap:55px
      }
    }
     @media(max-width:720px) {
       .social-links {
         right:12px;
         bottom:12px
      }
       .social-links a {
         width:56px;
         height:56px
      }
       .social-links a::before {
         right:64px
      }
       .social-links svg {
         width:25px
      }
       .blog-icon {
         font-size:22px
      }
       .quick-top span {
         font-size:21px
      }
       .topbar {
         display:none
      }
       body > header {
         height:72px
      }
       .mobile-menu.open {
         inset:72px 0 0
      }
       .container {
         width:calc(100% - 34px)
      }
       .hero {
         min-height:760px
      }
       .hero-grid {
         min-height:760px;
         display:block;
         padding-top:61px
      }
       .eyebrow {
         font-size:8px
      }
       h1 {
         font-size:28px;
         white-space:nowrap
      }
       .hero-copy {
         font-size:16px
      }
       .text-link {
         display:none
      }
       .hero-visual {
         height:305px;
         margin-top:22px
      }
       .hero-photo {
         width:265px;
         height:288px;
         right:8px;
         top:0
      }
       .orbit {
         width:280px;
         height:298px;
         right:1px;
         top:-4px
      }
       .badge {
         width:84px;
         height:84px;
         font-size:16px;
         left:8px;
         bottom:8px
      }
       .spark {
         font-size:38px;
         right:-5px
      }
       .hero-pager {
         display:none
      }
       .about,.programs,.journey,.gallery,.kids-point {
         padding:80px 0
      }
       .about-grid {
         display:block
      }
       .about h2,.program-head h2,.gallery-head h2 {
         font-size:29px;
         white-space:nowrap
      }
       .about-copy {
         padding-top:35px
      }
       .about-copy .lead {
         font-size:17px
      }
       .values {
         grid-template-columns:1fr;
         margin-top:45px
      }
       .value {
         min-height:225px
      }
       .value h3 {
         margin-top:34px
      }
       .program-head,.gallery-head {
         display:block
      }
       .program-head p,.gallery-head p {
         margin:18px 0 0;
         text-align:left
      }
       .program-grid {
         grid-template-columns:1fr
      }
       .program-card {
         min-height:410px
      }
       .journey-grid {
         grid-template-columns:1fr;
         gap:48px
      }
       .journey h2 {
         font-size:38px
      }
       .journey-steps {
         grid-template-columns:1fr
      }
       .works {
         grid-template-columns:1fr
      }
       .work,.work:nth-child(2),.work:nth-child(3) {
         height:340px;
         margin:0
      }
       .kids-box {
         height:520px;
         align-items:flex-start
      }
       .kids-copy {
         width:100%;
         padding:40px 30px
      }
       .kids-copy h2 {
         font-size:29px
      }
       .kids-illustration {
         top:auto;
         bottom:0;
         width:100%;
         height:58%;
         object-position:68% center
      }
       .kids-box:after {
         background:linear-gradient(180deg,var(--lime) 0,var(--lime) 40%,rgba(234,250,141,.6) 57%,transparent)
      }
       .contact .container {
         display:block
      }
       .contact h2 {
         font-size:30px
      }
       .contact-buttons {
         display:block;
         margin-top:28px
      }
       .contact-buttons a {
         margin-top:10px
      }
       .foot {
         grid-template-columns:1fr
      }
       .footer-links {
         text-align:left
      }
       .policy-links,.social-links {
         justify-content:flex-start
      }
       .policy-modal-dialog {
         padding:42px 24px 30px
      }
    }

