@font-face {
    font-family:Fredoka;
    src:url('/fonts/robobledy/fredoka-600.ttf') format('truetype');
    font-weight:600;
    font-display:swap;
}
@font-face {
    font-family:Nunito;
    src:url('/fonts/robobledy/nunito-400.ttf') format('truetype');
    font-weight:400;
    font-display:swap;
}
@font-face {
    font-family:Nunito;
    src:url('/fonts/robobledy/nunito-700.ttf') format('truetype');
    font-weight:700;
    font-display:swap;
}
:root {
    --navy:#173a66;
    --purple:#8b6bb1;
    --blue:#2d7fc1;
    --yellow:#f2b705;
    --orange:#f0935a;
    --muted:#58677b;
    --line:#e4e8ee;
    --pale:#f7f6fa;
    --radius:24px;
}
* {
    box-sizing:border-box;
}
html {
    scroll-behavior:smooth;
    scroll-padding-top:120px;
}
body {
    margin:0;
    background:#fff;
    color:var(--navy);
    font-family:Nunito,Arial,sans-serif;
    font-size:17px;
    line-height:1.65;
}
a {
    color:inherit;
    text-decoration:none;
}
button {
    font:inherit;
    cursor:pointer;
}
button,a,summary {
    -webkit-tap-highlight-color:transparent;
}
a:focus-visible,button:focus-visible,summary:focus-visible {
    outline:3px solid var(--blue);
    outline-offset:5px;
}
h1,h2,h3,h4,p {
    margin:0;
}
h1,h2,h3,h4 {
    line-height:1.13;
    font-weight:600;
    font-family:Fredoka,Arial,sans-serif;
}
h2 {
    font-size:clamp(36px,4vw,50px);
    letter-spacing:-.6px;
}
h3 {
    font-size:29px;
}
p {
    color:var(--muted);
}
[hidden] {
    display:none!important;
}
.container {
    width:min(1216px,calc(100% - 80px));
    margin-inline:auto;
}
.section {
    padding-block:104px;
}
.brand-stripe {
    height:6px;
    background:linear-gradient(90deg,var(--purple) 0 25%,var(--navy) 25% 45%,var(--blue) 45% 65%,var(--yellow) 65% 85%,var(--orange) 85%);
}
.skip-link {
    position:fixed;
    top:-100px;
    left:20px;
    background:var(--navy);
    color:white;
    padding:12px 22px;
    z-index:100;
}
.skip-link:focus {
    top:10px;
}
.site-header {
    background:#fff;
    position:sticky;
    top:0;
    z-index:20;
    border-bottom:1px solid #eef0f4;
}
.header-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    min-height:100px;
}
.brand {
    display:inline-flex;
    flex-shrink:0;
    background:white;
    align-items:center;
}
.brand-logo {
    display:block;
    width:232px;
    height:100px;
}
.site-header nav {
    display:flex;
    gap:26px;
    align-items:center;
    font-size:14px;
    font-weight:700;
}
.site-header nav a {
    transition:color .15s;
}
.site-header nav a:hover {
    color:var(--blue);
}
.nav-contact {
    border:1px solid var(--line);
    padding:9px 17px;
    border-radius:8px;
}
.platform-link {
    padding-left:22px;
    border-left:1px solid var(--line);
}
.menu-toggle {
    display:none;
    min-height:44px;
    border:1px solid var(--line);
    background:white;
    border-radius:8px;
    padding:8px 13px;
    color:var(--navy);
}
.menu-toggle span {
    margin-left:9px;
}
.eyebrow {
    font-size:11px;
    letter-spacing:1.6px;
    font-weight:700;
    color:var(--navy);
    line-height:1.6;
    margin-bottom:18px;
}
.little-dot {
    display:inline-block;
    width:9px;
    height:9px;
    background:var(--orange);
    border-radius:50%;
    margin-right:9px;
}
.hero {
    display:grid;
    grid-template-columns:1.08fr 1fr;
    align-items:center;
    gap:40px;
    padding-block:65px 62px;
}
.hero h1 {
    font-size:clamp(45px,4.7vw,66px);
    line-height:1.1;
    letter-spacing:-1px;
}
.hero h1>span {
    color:var(--purple);
}
.hero-description {
    max-width:480px;
    margin-top:24px;
    font-size:17px;
    line-height:1.8;
}
.hero-actions {
    display:flex;
    align-items:center;
    gap:25px;
    margin-top:31px;
    flex-wrap:wrap;
}
.button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:24px;
    padding:15px 22px;
    border-radius:9px;
    font-size:14px;
    font-weight:700;
    transition:transform .2s,box-shadow .2s;
}
.button:hover {
    transform:translateY(-3px);
    box-shadow:0 7px 16px #173a6614;
}
.button-yellow {
    background:var(--yellow);
    color:var(--navy);
}
.button span {
    font-size:21px;
    line-height:1;
}
.text-link {
    font-size:14px;
    font-weight:700;
}
.text-link span {
    margin-left:10px;
}
.hero-note {
    font-size:12px;
    margin-top:23px;
}
.tiny-spark {
    font-size:21px;
    color:var(--purple);
    margin-right:7px;
    vertical-align:middle;
}
.hero-art {
    position:relative;
    background:#f7f4fa;
    border-radius:30px;
    min-width:0;
    border:1px solid #ece7f2;
    padding-top:27px;
    margin-bottom:24px;
}
.art-caption {
    display:flex;
    justify-content:space-between;
    padding:0 26px;
    font-size:9px;
    letter-spacing:1.3px;
    font-weight:700;
}
.robot-illustration {
    display:block;
    width:100%;
    height:auto;
    margin-block:-6px 10px;
}
.code-note {
    position:absolute;
    left:20px;
    bottom:35px;
    padding:13px 17px;
    border:1px solid #e5dfed;
    background:#fff;
    border-radius:11px;
    font-size:11px;
    box-shadow:0 9px 20px #173a6609;
    line-height:1.8;
}
.code-dot {
    background:var(--yellow);
    width:7px;
    height:7px;
    border-radius:50%;
    display:inline-block;
    margin-right:6px;
}
.code-note strong {
    font-weight:700;
    color:var(--blue);
}
.made-tag {
    background:var(--navy);
    color:#fff;
    border-radius:7px;
    padding:11px 17px;
    position:absolute;
    bottom:-22px;
    right:16px;
    font-size:11px;
    transform:rotate(-3deg);
}
.made-tag span {
    color:var(--yellow);
    padding-right:6px;
    font-size:19px;
    vertical-align:middle;
}
.alliance {
    border-block:1px solid var(--line);
    padding:24px 0;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
}
.alliance>p {
    font-size:10px;
    letter-spacing:1.6px;
    font-weight:700;
}
.alliance>div {
    display:flex;
    align-items:center;
    gap:9px;
    font-size:13px;
}
.ibp-mark {
    font-size:25px;
    font-weight:700;
    color:var(--purple);
    margin-left:12px;
    letter-spacing:-2px;
}
.section-heading {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:35px;
    margin-bottom:45px;
}
.section-heading>p {
    font-size:15px;
    line-height:1.8;
}
.section-heading h2 {
    margin:0;
}
.program-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
}
.program-card {
    border:1px solid var(--line);
    border-radius:var(--radius);
    overflow:hidden;
    transition:transform .2s;
}
.program-card:hover {
    transform:translateY(-5px);
}
.program-visual {
    position:relative;
    height:190px;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
}
.kids .program-visual {
    background:#f1eaf6;
}
.teens .program-visual {
    background:#e9f3fa;
}
.makers .program-visual {
    background:#fff6dd;
}
.program-number {
    position:absolute;
    top:17px;
    left:21px;
    font-size:11px;
    font-weight:700;
    opacity:.6;
}
.visual-label {
    position:absolute;
    bottom:15px;
    font-size:8px;
    letter-spacing:2px;
    font-weight:700;
}
.blocks {
    position:relative;
    width:150px;
    height:110px;
    transform:rotate(-9deg);
}
.blocks i {
    position:absolute;
    display:block;
    width:79px;
    height:40px;
    border-radius:7px;
    background:var(--purple);
    box-shadow:inset 0 -7px 0 #00000012;
}
.blocks i:before,.blocks i:after {
    content:'';
    width:19px;
    height:12px;
    position:absolute;
    top:-6px;
    background:inherit;
    border-radius:4px;
}
.blocks i:before {
    left:10px;
}
.blocks i:after {
    right:10px;
}
.blocks i:nth-child(1) {
    left:10px;
    top:60px;
    background:var(--navy);
}
.blocks i:nth-child(2) {
    left:65px;
    top:21px;
    background:var(--yellow);
}
.blocks i:nth-child(3) {
    left:0;
    top:6px;
    background:var(--purple);
    transform:rotate(-18deg);
}
.code-visual {
    transform:rotate(-8deg);
    width:165px;
    background:var(--navy);
    border-radius:10px;
    padding:13px 23px;
    box-shadow:8px 8px 0 #2d7fc12b;
    font:12px/1.4 monospace;
    color:white;
}
.code-visual span {
    color:#afd7f5;
    display:block;
    font-size:10px;
}
.code-visual b {
    display:block;
    padding:4px 0 4px 12px;
    color:var(--yellow);
    font-weight:400;
}
.maker-visual {
    position:relative;
    width:170px;
    height:130px;
}
.maker-visual>span {
    position:absolute;
    font-size:126px;
    line-height:1;
    color:var(--orange);
    top:0;
    left:14px;
}
.maker-visual i {
    position:absolute;
    width:51px;
    height:60px;
    left:100px;
    top:36px;
    clip-path:polygon(0 0,95% 69%,58% 72%,75% 100%,56% 100%,39% 76%,15% 100%);
    background:var(--navy);
    transform:rotate(-8deg);
}
.program-body {
    padding:26px 27px 27px;
}
.age-label {
    display:inline-block;
    color:var(--muted);
    font-size:10px;
    font-weight:700;
    letter-spacing:1.1px;
    margin-bottom:11px;
}
.program-body h3 {
    font-size:32px;
}
.program-body p {
    font-size:15px;
    margin-top:14px;
    min-height:108px;
    line-height:1.75;
}
.program-body>a {
    border-top:1px solid var(--line);
    display:flex;
    justify-content:space-between;
    padding-top:19px;
    margin-top:20px;
    font-size:13px;
    font-weight:700;
}
.program-body>a span {
    font-size:19px;
}
.schedule {
    display:grid;
    grid-template-columns:.8fr 1.2fr;
    gap:60px;
    background:var(--pale);
    border-radius:var(--radius);
    padding:37px 40px;
    margin-top:30px;
    scroll-margin-top:125px;
}
.schedule-intro .eyebrow {
    font-size:9px;
    margin-bottom:12px;
}
.schedule-intro h3 {
    font-size:30px;
}
.schedule-intro>p:last-child {
    font-size:13px;
    margin-top:14px;
    max-width:245px;
}
.program-tabs {
    display:flex;
    gap:7px;
    flex-wrap:wrap;
    margin-bottom:17px;
}
.program-tabs button {
    min-height:44px;
    background:white;
    border:1px solid #dddfe8;
    border-radius:7px;
    padding:8px 16px;
    color:var(--navy);
    font-size:12px;
    font-weight:700;
}
.program-tabs button[aria-pressed=true] {
    background:var(--navy);
    border-color:var(--navy);
    color:white;
}
.schedule-panel h4 {
    font-family:Nunito,sans-serif;
    font-size:13px;
    font-weight:700;
}
.schedule-panel ul {
    padding:0;
    margin:7px 0;
    list-style:none;
}
.schedule-panel li {
    display:flex;
    justify-content:space-between;
    gap:12px;
    font-size:13px;
    padding:8px 0;
    border-bottom:1px solid #e2dfeb;
}
.schedule-note {
    font-size:10px;
    margin-top:12px;
}
.about {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:85px;
    align-items:center;
    padding-top:15px;
}
.about-copy>p:not(.eyebrow) {
    font-size:15px;
    line-height:1.9;
    margin-top:20px;
}
.values {
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-top:25px;
}
.values span {
    border:1px solid #e5e0ed;
    border-radius:30px;
    font-size:10px;
    padding:6px 12px;
    font-weight:700;
}
.about-art {
    position:relative;
    min-height:410px;
    background:#f9fafc;
    border-radius:28px;
    overflow:hidden;
}
.orbit {
    position:absolute;
    width:295px;
    height:295px;
    border:1px dashed #cad2df;
    border-radius:50%;
    top:60px;
    left:45px;
}
.orbit-two {
    left:165px;
    top:125px;
    width:225px;
    height:225px;
}
.origin {
    position:absolute;
    background:white;
    border:1px solid var(--line);
    border-radius:12px;
    padding:14px 18px;
    box-shadow:0 6px 14px #173a6605;
    z-index:2;
}
.origin>span {
    font-size:10px;
    color:var(--blue);
    margin-right:7px;
}
.origin strong {
    font-size:14px;
    font-weight:700;
}
.origin small {
    display:block;
    font-size:10px;
    color:var(--muted);
    margin-left:24px;
}
.origin-tech {
    left:30px;
    top:45px;
    transform:rotate(-5deg);
}
.origin-creative {
    right:30px;
    top:100px;
    transform:rotate(5deg);
}
.origin-community {
    left:40px;
    bottom:35px;
    transform:rotate(-3deg);
}
.origin-result {
    position:absolute;
    left:38%;
    top:43%;
    font-size:22px;
    line-height:1.25;
    font-family:Fredoka,sans-serif;
}
.origin-result strong {
    font-size:37px;
    color:var(--purple);
    font-weight:600;
}
.brand-dots {
    display:flex;
    gap:7px;
    margin-top:17px;
}
.brand-dots i {
    width:8px;
    height:8px;
    border-radius:50%;
    background:var(--purple);
}
.brand-dots i:nth-child(2) {
    background:var(--navy);
}
.brand-dots i:nth-child(3) {
    background:var(--blue);
}
.brand-dots i:nth-child(4) {
    background:var(--yellow);
}
.brand-dots i:nth-child(5) {
    background:var(--orange);
}
.learning {
    background:var(--navy);
    color:white;
}
.learning .eyebrow {
    color:#bdcfe4;
}
.learning .section-heading>p {
    color:#ccdaeb;
}
.learning .section-heading {
    margin-bottom:46px;
}
.steps-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:30px;
}
.steps-grid article {
    border-top:1px solid #ffffff30;
    padding-top:22px;
}
.step-number {
    font-size:12px;
    color:var(--yellow);
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:24px;
}
.step-number span {
    font-size:25px;
}
.steps-grid h3 {
    font-size:26px;
}
.steps-grid p {
    color:#ccdaeb;
    font-size:14px;
    margin-top:13px;
    line-height:1.8;
}
.achievement {
    display:flex;
    align-items:center;
    gap:32px;
    background:#f5f1f8;
    padding:34px 38px;
    border-radius:20px;
}
.trophy {
    font-size:82px;
    color:var(--purple);
    line-height:1;
}
.achievement .eyebrow {
    font-size:9px;
    margin-bottom:10px;
}
.achievement h3 {
    font-size:28px;
}
.achievement p {
    font-size:13px;
    margin-top:10px;
    max-width:695px;
}
.achievement-seal {
    margin-left:auto;
    flex-shrink:0;
    border:1px dashed var(--purple);
    border-radius:50%;
    height:112px;
    width:112px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    font-size:9px;
    line-height:1.8;
    transform:rotate(10deg);
}
.achievement-seal strong {
    font-size:14px;
}
.agenda-heading {
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin:48px 0 16px;
    gap:20px;
}
.agenda-heading h3 {
    font-size:24px;
}
.agenda-heading>span {
    font-size:11px;
    color:var(--muted);
}
.event-row {
    display:flex;
    align-items:center;
    gap:27px;
    border-top:1px solid var(--line);
    padding:23px 12px;
}
.event-row:last-child {
    border-bottom:1px solid var(--line);
}
.event-date {
    border:1px solid var(--line);
    width:76px;
    min-height:90px;
    border-radius:12px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    line-height:1.2;
}
.event-date>span {
    text-transform:uppercase;
    font-size:9px;
    font-weight:700;
    letter-spacing:1px;
}
.event-date strong {
    font-family:Fredoka,sans-serif;
    font-size:34px;
    font-weight:600;
}
.event-date small {
    font-size:9px;
    color:var(--muted);
}
.event-date .pending-date {
    font-family:Nunito,sans-serif;
    font-size:11px;
    text-align:center;
    margin-top:6px;
    font-weight:700;
}
.event-label {
    font-size:8px;
    letter-spacing:1.6px;
    font-weight:700;
    color:var(--muted);
}
.event-info h4 {
    font-size:24px;
    margin-top:5px;
}
.event-info p {
    font-size:12px;
    margin-top:7px;
}
.event-arrow {
    font-size:29px;
    margin-left:auto;
    color:var(--purple);
}
.agenda-note {
    font-size:11px;
    margin-top:17px;
}
.empty-agenda {
    padding:28px 0;
    border-block:1px solid var(--line);
}
.faq {
    background:#faf9fc;
}
.faq-inner {
    display:grid;
    grid-template-columns:1fr 1.3fr;
    gap:90px;
}
.faq-inner>div>p:last-child {
    font-size:15px;
    margin-top:20px;
}
.faq-list details {
    border-bottom:1px solid #dddfe7;
}
.faq-list details:first-child {
    border-top:1px solid #dddfe7;
}
.faq-list summary {
    list-style:none;
    padding:23px 0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    font-size:15px;
    font-weight:700;
    cursor:pointer;
}
.faq-list summary::-webkit-details-marker {
    display:none;
}
.faq-list summary span {
    font-size:24px;
    color:var(--purple);
}
.faq-list details[open] summary span {
    transform:rotate(45deg);
}
.faq-list details p {
    padding:0 27px 23px 0;
    font-size:14px;
    line-height:1.85;
}
.contact {
    background:var(--navy);
    color:white;
    margin-top:85px;
    border-radius:27px;
    padding:55px 56px;
    display:grid;
    grid-template-columns:1.4fr 1fr;
    gap:50px;
    position:relative;
    overflow:hidden;
}
.contact:before {
    content:'';
    position:absolute;
    right:-80px;
    top:-60px;
    width:370px;
    height:370px;
    border:1px solid #ffffff12;
    border-radius:50%;
    pointer-events:none;
}
.contact .eyebrow {
    color:#ccdcef;
    font-size:10px;
}
.contact h2 {
    font-size:46px;
}
.contact-copy>p:not(.eyebrow) {
    color:#cedbec;
    font-size:14px;
    margin-top:20px;
}
.contact .button {
    margin-top:26px;
}
.contact-location {
    border-left:1px solid #ffffff2b;
    padding-left:42px;
    align-self:center;
    position:relative;
}
.location-symbol {
    color:var(--yellow);
    font-size:58px;
    line-height:1;
    display:block;
    margin-bottom:18px;
}
.contact-location>p {
    color:#cedbec;
    font-size:9px;
    letter-spacing:1.5px;
    margin-bottom:9px;
}
.contact-location h3 {
    font-size:28px;
}
.contact-location address {
    font-style:normal;
    color:#cedbec;
    font-size:13px;
    margin-top:15px;
    max-width:280px;
}
.contact-location .brand-dots i:nth-child(2) {
    background:#fff;
}
.visit-label {
    margin-top:25px;
    display:inline-block;
    background:var(--yellow);
    color:var(--navy);
    padding:13px 18px;
    border-radius:8px;
    font-size:13px;
    font-weight:700;
}
.visit-label span {
    margin-left:10px;
}
.site-footer {
    padding-top:35px;
}
.footer-top {
    display:flex;
    align-items:center;
    gap:50px;
    padding-bottom:26px;
}
.footer-top>p {
    font-size:12px;
}
.footer-links {
    margin-left:auto;
    display:flex;
    flex-direction:column;
    gap:6px;
    align-items:flex-end;
    font-size:12px;
    font-weight:700;
}
.footer-bottom {
    border-top:1px solid var(--line);
    padding:20px 0;
    display:flex;
    justify-content:space-between;
    font-size:10px;
    color:var(--muted);
}
@media(min-width:1440px) {
    .hero {
        padding-block:85px;
    }
    .hero h1 {
        font-size:68px;
    }
}
@media(max-width:1100px) {
    .container {
        width:calc(100% - 48px);
    }
    .site-header nav {
        gap:16px;
        font-size:12px;
    }
    .brand-logo {
        width:205px;
        height:95px;
    }
    .platform-link {
        padding-left:14px;
    }
    .hero {
        gap:25px;
    }
    .hero h1 {
        font-size:49px;
    }
    .hero-description {
        font-size:15px;
    }
    .hero-actions {
        gap:17px;
    }
    .hero-art {
        margin-bottom:20px;
    }
    .code-note {
        bottom:23px;
        left:12px;
        font-size:9px;
    }
    .program-body {
        padding:24px;
    }
    .program-body p {
        min-height:130px;
    }
    .about {
        gap:45px;
    }
    .origin-creative {
        right:15px;
    }
    .origin-community {
        left:25px;
    }
    .origin-result {
        left:30%;
    }
    .section {
        padding-block:80px;
    }
    .schedule {
        gap:35px;
    }
    .contact {
        padding:45px;
        gap:35px;
    }
    .contact h2 {
        font-size:40px;
    }
}
@media(max-width:800px) {
    html {
        scroll-padding-top:100px;
    }
    .container {
        width:calc(100% - 36px);
    }
    .header-inner {
        min-height:85px;
        flex-wrap:wrap;
        gap:0;
    }
    .brand-logo {
        width:200px;
        height:85px;
    }
    .site-header nav {
        width:100%;
        gap:0;
        display:flex;
        flex-wrap:wrap;
        padding-bottom:12px;
    }
    .site-header nav a {
        padding:9px 12px;
        border:0;
    }
    .site-header .platform-link {
        margin-left:auto;
    }
    .js .menu-toggle {
        display:block;
    }
    .js .site-header nav {
        display:none;
    }
    .js .site-header nav.is-open {
        display:flex;
    }
    .hero {
        grid-template-columns:1fr;
        padding-top:40px;
        padding-bottom:48px;
        gap:35px;
    }
    .hero-copy {
        max-width:620px;
    }
    .hero h1 {
        font-size:clamp(42px,7vw,58px);
    }
    .hero-description {
        max-width:570px;
        font-size:16px;
    }
    .hero-art {
        max-width:560px;
        width:100%;
        justify-self:center;
    }
    .hero-note {
        font-size:12px;
    }
    .code-note {
        bottom:40px;
        font-size:11px;
    }
    .alliance {
        flex-direction:column;
        gap:12px;
        padding:23px 0;
    }
    .alliance>div {
        flex-wrap:wrap;
        justify-content:center;
        font-size:12px;
    }
    .section-heading {
        display:block;
    }
    .section-heading>p {
        margin-top:22px;
    }
    .section-heading>p br {
        display:none;
    }
    .program-grid {
        gap:14px;
    }
    .program-body {
        padding:19px;
    }
    .program-body h3 {
        font-size:25px;
    }
    .program-body p {
        font-size:13px;
        min-height:151px;
    }
    .program-body>a {
        font-size:11px;
        gap:7px;
    }
    .program-visual {
        height:160px;
    }
    .visual-label {
        font-size:6px;
        letter-spacing:1px;
    }
    .program-number {
        font-size:9px;
    }
    .schedule {
        padding:28px;
        gap:30px;
        grid-template-columns:1fr 1.4fr;
    }
    .schedule h3 {
        font-size:25px;
    }
    .program-tabs button {
        padding:7px 9px;
        font-size:10px;
    }
    .schedule-panel li {
        font-size:12px;
    }
    .schedule-note {
        font-size:9px;
    }
    .about {
        grid-template-columns:1fr;
        gap:36px;
    }
    .about-art {
        max-width:550px;
        width:100%;
        margin:auto;
        min-height:390px;
    }
    .about-copy {
        max-width:620px;
    }
    .steps-grid {
        grid-template-columns:1fr 1fr;
        gap:30px;
    }
    .achievement {
        gap:20px;
        padding:25px;
    }
    .achievement h3 {
        font-size:24px;
    }
    .achievement-seal {
        display:none;
    }
    .trophy {
        font-size:62px;
    }
    .agenda-heading {
        align-items:flex-start;
        flex-direction:column;
        gap:8px;
    }
    .event-info h4 {
        font-size:21px;
    }
    .faq-inner {
        grid-template-columns:1fr;
        gap:30px;
    }
    .contact {
        padding:35px;
        grid-template-columns:1fr;
        gap:30px;
    }
    .contact-location {
        border-left:0;
        border-top:1px solid #ffffff2b;
        padding:25px 0 0;
    }
    .location-symbol {
        display:none;
    }
    .contact-location address {
        max-width:none;
    }
    .contact-location .brand-dots {
        position:absolute;
        right:0;
        top:28px;
    }
    .footer-top {
        gap:18px;
        flex-wrap:wrap;
    }
    .footer-top>p {
        margin-left:auto;
    }
    .footer-links {
        align-items:flex-start;
        margin:0;
        width:100%;
    }
    .footer-bottom {
        gap:15px;
        flex-wrap:wrap;
    }
}
@media(max-width:560px) {
    .section {
        padding-block:64px;
    }
    h2 {
        font-size:37px;
    }
    .eyebrow {
        font-size:9px;
        letter-spacing:1.3px;
    }
    .hero {
        padding-top:28px;
    }
    .hero h1 {
        font-size:42px;
        letter-spacing:-.8px;
    }
    .hero-description {
        font-size:15px;
        margin-top:21px;
    }
    .hero-actions {
        gap:20px;
    }
    .button {
        font-size:13px;
        padding:14px 17px;
    }
    .text-link {
        font-size:12px;
    }
    .hero-art {
        border-radius:22px;
        padding-top:21px;
    }
    .art-caption {
        font-size:7px;
        padding:0 19px;
        letter-spacing:1px;
    }
    .code-note {
        font-size:8px;
        bottom:22px;
        padding:10px 12px;
    }
    .made-tag {
        font-size:8px;
        right:8px;
        padding:8px 12px;
        bottom:-18px;
    }
    .made-tag span {
        font-size:15px;
    }
    .hero-note {
        font-size:10px;
    }
    .alliance>p {
        font-size:8px;
        letter-spacing:1.1px;
    }
    .alliance strong {
        font-size:12px;
    }
    .alliance .ibp-mark {
        font-size:21px;
        margin-left:0;
    }
    .section-heading {
        margin-bottom:30px;
    }
    .section-heading>p {
        font-size:14px;
    }
    .program-grid {
        grid-template-columns:1fr;
        gap:22px;
    }
    .program-visual {
        height:185px;
    }
    .visual-label {
        font-size:8px;
        letter-spacing:1.8px;
    }
    .program-number {
        font-size:11px;
    }
    .program-body {
        padding:25px;
    }
    .program-body h3 {
        font-size:32px;
    }
    .program-body p {
        min-height:0;
        font-size:15px;
    }
    .program-body>a {
        font-size:13px;
    }
    .schedule {
        grid-template-columns:1fr;
        padding:26px 22px;
        gap:25px;
    }
    .schedule h3 br {
        display:none;
    }
    .schedule-intro>p:last-child {
        max-width:none;
    }
    .program-tabs button {
        font-size:11px;
        padding:9px 10px;
        flex:1;
    }
    .schedule-panel li {
        font-size:13px;
    }
    .schedule-note {
        font-size:10px;
    }
    .about-art {
        min-height:355px;
    }
    .origin-tech {
        left:18px;
        top:30px;
    }
    .origin-creative {
        top:110px;
    }
    .origin-community {
        bottom:23px;
        left:20px;
    }
    .origin {
        padding:12px 15px;
    }
    .origin-result {
        left:28%;
        top:49%;
        font-size:17px;
    }
    .origin-result strong {
        font-size:31px;
    }
    .origin strong {
        font-size:12px;
    }
    .origin small {
        font-size:9px;
    }
    .about-art .orbit {
        left:0;
        top:40px;
    }
    .about-art .orbit-two {
        left:145px;
    }
    .steps-grid {
        gap:25px 20px;
    }
    .steps-grid h3 {
        font-size:23px;
    }
    .steps-grid p {
        font-size:13px;
    }
    .step-number {
        margin-bottom:17px;
    }
    .achievement {
        align-items:flex-start;
        gap:12px;
        padding:23px 18px;
    }
    .trophy {
        font-size:36px;
    }
    .achievement h3 {
        font-size:23px;
    }
    .achievement p {
        font-size:12px;
    }
    .event-row {
        padding:22px 0;
        gap:15px;
    }
    .event-date {
        width:61px;
        min-height:83px;
    }
    .event-date strong {
        font-size:29px;
    }
    .event-info h4 {
        font-size:19px;
        line-height:1.2;
    }
    .event-info p {
        font-size:11px;
    }
    .event-arrow {
        display:none;
    }
    .agenda-note {
        font-size:10px;
    }
    .faq-list summary {
        font-size:14px;
        gap:12px;
    }
    .contact {
        margin-top:55px;
        padding:30px 23px;
        border-radius:20px;
    }
    .contact h2 {
        font-size:36px;
    }
    .contact-copy>p:not(.eyebrow) {
        font-size:13px;
    }
    .contact-copy>p br {
        display:none;
    }
    .contact .eyebrow {
        font-size:8px;
    }
    .contact-location h3 {
        font-size:25px;
    }
    .visit-label {
        font-size:11px;
    }
    .contact-location .brand-dots {
        position:static;
    }
    .footer-top {
        padding-bottom:22px;
        column-gap:12px;
    }
    .footer-top .brand-logo {
        width:190px;
        height:90px;
    }
    .footer-top>p {
        font-size:10px;
        max-width:124px;
    }
    .footer-bottom {
        font-size:9px;
        padding-block:17px;
    }
    .footer-bottom>span {
        display:block;
    }
    .site-header nav.is-open {
        display:flex;
        flex-direction:column;
        align-items:stretch;
        padding:4px 0 15px;
    }
    .site-header nav a {
        padding:12px;
    }
    .site-header .platform-link {
        margin:0;
        border-top:1px solid var(--line);
    }
    .site-header nav a.nav-contact {
        background:var(--pale);
        border-radius:7px;
    }
    .menu-toggle {
        font-size:12px;
    }
}
@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto;
    }
    *,*:before,*:after {
        transition:none!important;
        animation:none!important;
    }
}

/* Noticias: galerías independientes con desplazamiento táctil nativo. */
.news-home { background:#f7f6fa; }
.news-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:25px; }
.news-card { border:1px solid var(--line); border-radius:22px; background:white; overflow:hidden; min-width:0; }
.news-carousel { position:relative; background:#f1eef5; min-width:0; }
.carousel-track { display:flex; width:100%; aspect-ratio:var(--gallery-ratio); overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; scrollbar-width:none; }
.carousel-track::-webkit-scrollbar { display:none; }
.carousel-track:focus-visible { outline:3px solid var(--blue); outline-offset:-3px; }
.carousel-slide { flex:0 0 100%; min-width:0; height:100%; margin:0; scroll-snap-align:start; scroll-snap-stop:always; position:relative; }
.carousel-slide img { display:block; width:100%; height:100%; object-fit:contain; }
.carousel-count { position:absolute; top:14px; right:14px; border-radius:20px; background:#173a66e6; color:white; padding:4px 10px; font-size:11px; pointer-events:none; }
.carousel-prev,.carousel-next { position:absolute; top:50%; transform:translateY(-50%); width:42px; height:42px; border:1px solid #173a661a; border-radius:50%; background:#fffffff2; color:var(--navy); display:grid; place-items:center; font-size:30px; line-height:1; box-shadow:0 2px 8px #173a6614; }
.carousel-prev { left:12px; }
.carousel-next { right:12px; }
.carousel-prev:disabled,.carousel-next:disabled { opacity:0; pointer-events:none; }
.carousel-dots { position:absolute; bottom:13px; left:50%; transform:translateX(-50%); display:flex; justify-content:center; flex-wrap:wrap; max-width:90%; width:max-content; background:#fffffff0; border-radius:22px; padding:0 4px; }
.carousel-dots button { width:24px; height:32px; display:grid; place-items:center; padding:0; border:0; background:none; }
.carousel-dots button span { display:block; width:5px; height:5px; border-radius:50%; background:#a9b3c0; }
.carousel-dots button[aria-pressed=true] span { width:7px; height:7px; background:var(--blue); }
.news-card-body { padding:25px; }
.news-card time,.news-detail time { font-size:12px; color:var(--muted); }
.news-card h3 { margin-top:12px; font-size:25px; overflow-wrap:anywhere; }
.news-card h3 a:hover { color:var(--blue); }
.news-card-body>p { font-size:14px; line-height:1.85; margin-top:14px; overflow-wrap:anywhere; }
.news-read { border-top:1px solid var(--line); display:flex; justify-content:space-between; font-weight:700; font-size:13px; margin-top:22px; padding-top:17px; }
.news-cover { min-height:210px; background:#eee7f4; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:10px; letter-spacing:2px; }
.news-cover span { font-size:68px; line-height:1.3; color:var(--purple); }
.news-empty { grid-column:1/-1; text-align:center; padding:55px 25px; border:1px dashed #cdc4db; border-radius:22px; background:#ffffff80; }
.news-empty>span { font-size:40px; color:var(--purple); }
.news-empty h2,.news-empty h3 { font-size:29px; margin-top:14px; }
.news-empty p { font-size:15px; margin-top:15px; }
.news-page-heading { margin:40px 0; max-width:830px; }
.news-page-heading h1 { font-size:clamp(36px,4.5vw,60px); overflow-wrap:anywhere; }
.news-page-heading>p:not(.eyebrow) { margin-top:22px; }
.news-page-heading time { display:block; margin-top:20px; }
.news-detail { max-width:850px; }
.news-detail>.news-carousel { border-radius:20px; overflow:hidden; max-width:680px; margin:35px auto; }
.news-prose { margin:38px 0 45px; overflow-wrap:anywhere; color:var(--muted); line-height:1.85; }
.news-prose h2,.news-prose h3 { color:var(--navy); margin:32px 0 16px; }
.news-prose h2 { font-size:32px; }
.news-prose h3 { font-size:26px; }
.news-prose p { margin:16px 0; }
.news-prose ul,.news-prose ol { padding-left:25px; }
.news-prose a { color:var(--navy); text-decoration:underline; text-underline-offset:3px; }
.news-prose blockquote { border-left:4px solid var(--purple); margin:25px 0; padding:8px 24px; background:var(--pale); }
.news-prose img { max-width:100%; height:auto; }
.news-pagination { margin-top:40px; display:flex; gap:25px; align-items:center; justify-content:center; font-size:13px; }
.news-pagination .button { border:1px solid var(--line); }
@media(max-width:1000px) {
    .site-header nav { gap:14px; }
    .news-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .news-home .news-card:last-child:nth-child(3) { grid-column:1/-1; max-width:600px; justify-self:center; }
}
@media(max-width:600px) {
    .news-grid { grid-template-columns:minmax(0,1fr); }
    .news-home .section-heading>.text-link { display:inline-block; margin-top:23px; }
    .news-page-heading { margin-block:32px; }
    .news-card-body { padding:23px; }
    .news-card h3 { font-size:26px; }
    .news-prose { font-size:16px; }
    .news-pagination { gap:12px; flex-wrap:wrap; }
    .news-pagination .button { font-size:12px; padding:12px; }
}
