/* SpaceIF 0.7.1 — approved artwork; continuous layout scale; content-driven hero. */
:root{color-scheme:dark;--bg:#160d27;--deep:#10091e;--paper:#211530;--line:#65526f88;--muted:#d4c8df;--text:#fff9ff;--pink:#ff4e9b;--peach:#ffb668;--header:5.25rem;--radius:12px;--focus:#ffd083;--narrow:100rem;--wide:114rem;--gutter:clamp(1.25rem,3vw,4rem);font-family:Inter,Arial,Helvetica,sans-serif;font-size:100%}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 20px)}
body{margin:0;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
button,a{-webkit-tap-highlight-color:transparent}
button{color:inherit}
img{max-width:100%;display:block}
svg{flex-shrink:0}
[hidden]{display:none!important}
p,h1,h2,h3,h4{margin-top:0}
p{color:var(--muted)}
:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
::selection{background:#944a83;color:white}
.sp-icon{width:24px;height:24px;display:inline-block;vertical-align:middle}
.skip-link{position:fixed;z-index:300;top:-100px;left:15px;padding:12px 18px;border-radius:8px;background:#fff;color:#170c28}
.skip-link:focus{top:12px}
.site-shell,.sp-wide{width:min(var(--wide),calc(100% - var(--gutter) - var(--gutter)));margin-inline:auto}
section[id]{scroll-margin-top:calc(var(--header) + 20px)}
/* Top navigation */
.sp-header{z-index:100;position:sticky;top:0;width:100%;height:var(--header);background:rgba(17,9,32,.96);border-bottom:1px solid #78618530}
.sp-home .sp-header{position:absolute;background:transparent;border-color:transparent}
.sp-home .sp-header.is-scrolled{position:fixed;background:rgba(17,9,32,.95);border-bottom-color:#78618555;backdrop-filter:blur(14px)}
.sp-nav-shell{width:min(var(--narrow),calc(100% - var(--gutter) - var(--gutter)));height:100%;margin:auto;display:flex;align-items:center;gap:clamp(1rem,2vw,2rem)}
.sp-brand{display:flex;align-items:center;gap:11px;font-weight:800;letter-spacing:-.035em;white-space:nowrap;font-size:1.5625rem;line-height:1.15}
.sp-brand img{width:2rem;height:4rem;object-fit:contain}
.sp-brand b{color:#ff569b}
.sp-nav{display:flex;align-items:center;gap:clamp(.75rem,1.3vw,1.625rem);margin-left:auto;font-size:.875rem;font-weight:500;white-space:nowrap}
.sp-nav>a:not(.sp-button){padding-block:25px;position:relative;color:#f5e9fa}
.sp-nav>a:not(.sp-button)::after{content:"";position:absolute;bottom:18px;left:0;width:100%;height:2px;background:linear-gradient(90deg,var(--pink),var(--peach));transform:scaleX(0);transition:transform .2s}
.sp-nav>a[aria-current]::after,.sp-nav>a:hover::after{transform:scaleX(1)}
.sp-nav-cta{margin-left:clamp(.5rem,2vw,2.5rem)}
.sp-menu-toggle{display:none;margin-left:auto;border:1px solid var(--line);background:#271637;border-radius:10px;width:44px;height:44px;align-items:center;justify-content:center;flex-shrink:0}
.sp-button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid transparent;border-radius:18px;background:linear-gradient(102deg,#ff3897 2%,#ff728c 55%,#ffb662);box-shadow:0 6px 22px #f9559028;padding:.8125rem 1.375rem;color:#fff;font-size:.9375rem;font-weight:700;line-height:1.3;min-height:46px;transition:box-shadow .2s,transform .2s;white-space:normal}
.sp-button .sp-icon{width:1.125rem;height:1.125rem}
.sp-button:hover,.btn:hover{transform:translateY(-2px);box-shadow:0 10px 32px #fa669248}
.sp-button-outline,.btn.secondary,.btn.light{background:rgba(20,9,35,.46);border-color:#b599bf;box-shadow:none}
.sp-button-outline:hover{background:#361c44}
.sp-actions{display:flex;gap:13px;align-items:center;flex-wrap:wrap}
/* One full-width hero, using the approved campus illustration. */
.sp-hero{height:auto;min-height:clamp(38rem,42vw,47.5rem);position:relative;isolation:isolate;overflow:hidden;background:#190f2b;border-bottom:1px solid #92739342}
.sp-hero-art{position:absolute;inset:0;z-index:-2;background:url("../identity-070/hero-campus.webp") center top/cover no-repeat}
.sp-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(17,8,32,.18) 0%,rgba(17,8,32,.07) 35%,transparent 50%);pointer-events:none}
.sp-stars{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.64}
.sp-hero-inner{position:relative;z-index:1;width:min(var(--narrow),calc(100% - var(--gutter) - var(--gutter)));min-height:inherit;margin:auto;padding:calc(var(--header) + clamp(1.5rem,2.3vw,2.75rem)) 0 1.75rem;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);grid-template-rows:auto auto;column-gap:clamp(1.5rem,3vw,3rem);row-gap:2.25rem;align-content:space-between;align-items:end}
.sp-hero-copy{min-width:0;max-width:44rem;width:100%;grid-column:1;grid-row:1;align-self:start}
.sp-eyebrow{font-weight:700;font-size:.8125rem;letter-spacing:.075em;text-transform:uppercase;color:#ffb674;display:block;margin-bottom:.625rem}
.sp-hero h1{font-size:clamp(3rem,calc(2rem + 1.65vw),4rem);font-weight:800;line-height:1.01;letter-spacing:-.052em;margin:0 0 1rem;overflow-wrap:break-word}
.sp-hero h1>span{display:block;color:#ff7891;background:linear-gradient(100deg,#ff5598 8%,#ff986f 94%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.sp-hero-copy>p{font-size:clamp(1rem,calc(.875rem + .15vw),1.125rem);line-height:1.45;max-width:35rem;margin:0 0 1.25rem;color:#f0e8f7}
.sp-hero .sp-button{border-radius:18px}
.sp-meta{display:flex;gap:clamp(1rem,2vw,2rem);position:static;grid-column:1;grid-row:2;width:100%;line-height:1.35;align-items:flex-start;min-width:0}
.sp-meta>div{display:flex;align-items:center;gap:.6875rem;min-width:0}
.sp-meta .sp-icon{color:#ff519d;width:1.5rem;height:1.5rem}
.sp-meta small{display:block;color:#d5b9d6;font-size:.75rem;margin-bottom:4px}
.sp-meta b{display:block;font-size:.875rem;font-weight:600}
.sp-meta em{display:block;font-size:.75rem;font-style:normal;color:#c5b8d1;margin-top:3px}
.sp-themes{position:static;grid-column:2;grid-row:2;justify-self:end;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.625rem;width:100%;max-width:38rem;border:1px solid #97799d8a;border-radius:14px;background:linear-gradient(135deg,#5e304aab,#211131ed 66%);box-shadow:0 12px 24px #10071c44,inset 0 1px 0 #ffffff18;backdrop-filter:blur(12px);padding:1.125rem 1.25rem}
.sp-themes>div{text-align:center;display:grid;gap:8px;justify-items:center}
.sp-themes .sp-icon{width:2rem;height:2rem;color:#ff80b0}
.sp-themes>div:nth-child(4) .sp-icon,.sp-themes>div:nth-child(6) .sp-icon{color:#ffc279}
.sp-themes>div:nth-child(5) .sp-icon{color:#b4cf8c}
.sp-themes span{font-size:.625rem;text-transform:uppercase;letter-spacing:.045em;font-weight:600}
.sp-motion{position:absolute;right:10px;bottom:7px;z-index:2;width:26px;height:26px;display:grid;place-items:center;background:#16092380;border:1px solid #aa81ac40;border-radius:50%;opacity:.42}
.sp-motion .sp-icon{width:12px;height:12px}
.sp-motion:hover,.sp-motion:focus-visible{opacity:1}
/* Five cards, community band, Earth CTA: exact same reading order as the approved art. */
.sp-discover{background:radial-gradient(ellipse at 50% 0%,#50304842,transparent 70%),linear-gradient(180deg,#211430,#1a1129);padding:16px 0 0}
.sp-section-heading{text-align:center;margin-bottom:16px}
.sp-section-heading h2{font-size:clamp(1.875rem,calc(1.5rem + .8vw),2.5rem);letter-spacing:-.045em;line-height:1.12;margin:0 0 .375rem}
.sp-section-heading h2 span{color:#ff7b88}
.sp-section-heading p{font-size:1rem;margin:0;color:#d8c9e2}
.sp-card-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.sp-feature-card{isolation:isolate;position:relative;overflow:hidden;border:1px solid #997d9d88;border-radius:9px;min-height:195px;background:#261336;transition:transform .22s,border-color .22s,box-shadow .22s}
.sp-feature-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .5s}
.sp-feature-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#180e2af0,#180e2a72 64%,#180e2a10)}
.sp-feature-content{padding:1.25rem;min-height:195px;display:flex;flex-direction:column;align-items:flex-start}
.sp-feature-content>.sp-icon{color:#ff70a1;width:26px;height:26px;margin-bottom:8px}
.sp-feature-card:nth-child(4) .sp-feature-content>.sp-icon{color:#ffd071}
.sp-feature-card h3{font-size:1.0625rem;line-height:1.2;margin:0 0 .5rem}
.sp-feature-card p{color:#e1d8ec;font-size:.875rem;line-height:1.4;max-width:12rem;margin:0 0 .625rem}
.sp-card-link{display:flex;align-items:center;gap:5px;font-size:.8125rem;font-weight:600;color:#ff8ca8;margin-top:auto}
.sp-card-link .sp-icon{width:13px;height:13px}
.sp-feature-card:hover{border-color:#eeacbc;box-shadow:0 10px 26px #08031577;transform:translateY(-3px)}
.sp-feature-card:hover>img{transform:scale(1.04)}
.sp-community{display:flex;align-items:center;gap:24px;border:1px solid #91739966;border-radius:12px;background:linear-gradient(110deg,#1c1029e6,#2d18383b);margin-top:16px;padding:13px 28px;min-height:66px}
.sp-community>.sp-icon{width:36px;height:36px;color:#ff73a6}
.sp-community h3{font-size:1.0625rem;letter-spacing:-.015em;margin:0 0 3px}
.sp-community p{font-size:.875rem;line-height:1.45;margin:0}
.sp-community .sp-button{margin-left:auto;font-size:.875rem;padding:.6875rem 1.125rem;min-height:44px;border-radius:17px;flex-shrink:0}
.sp-community .sp-button .sp-icon{width:14px;height:14px}
.sp-horizon{height:clamp(160px,11.7vw,225px);position:relative;text-align:center;overflow:hidden;background:#170e29 url("../identity-070/earth-horizon.webp") center center/cover no-repeat}
.sp-horizon-inner{position:relative;padding:19px 20px 10px}
.sp-horizon-inner>span{font-size:9px;font-weight:500;letter-spacing:.45em;color:#e0bed8}
.sp-horizon h2{font-size:36px;line-height:1.07;margin:2px 0 4px;letter-spacing:-.045em}
.sp-horizon h2 em{font-style:normal;background:linear-gradient(90deg,#ff5c9a,#ffb061);background-clip:text;-webkit-background-clip:text;color:transparent}
.sp-horizon p{font-size:13px;margin:0 0 12px;color:#eee6f4}
.sp-horizon .sp-button{min-width:200px}
.sp-footer{background:#130b22;border-top:1px solid #86729355;min-height:62px;padding:11px 0}
.sp-footer-inner{max-width:var(--narrow);width:calc(100% - var(--gutter) - var(--gutter));margin:auto;display:flex;gap:25px;align-items:center}
.sp-footer .sp-brand{font-size:12px;letter-spacing:-.02em;gap:9px}
.sp-footer .sp-brand img{width:18px;height:38px}
.sp-brand small{display:block;font-size:9px;color:#c9b7d5;font-weight:400;margin-top:2px;letter-spacing:0}
.sp-footer-nav{margin-left:auto;display:flex;flex-wrap:wrap;gap:17px;font-size:.8125rem}
.sp-footer-nav a:hover{color:#ff9bab}
.sp-socials{display:flex;gap:14px;align-items:center}
.sp-socials a,.sp-socials button,.sp-team-link{display:inline-flex;align-items:center;justify-content:center;background:none;border:0;padding:4px;color:#efe6f7}
.sp-socials .sp-icon{width:17px;height:17px}
.sp-institution{border:0;border-left:1px solid #7e66865c;background:none;padding:0 0 0 20px;display:block;flex-shrink:0}
.sp-institution img{width:118px;height:auto;object-fit:contain}
.sp-team-link{opacity:.6}
.sp-team-link .sp-icon{width:14px;height:14px}
/* Internal pages inherit the same palette and readable, real controls. */
.page-hero{padding:48px 0 40px;position:relative;background:linear-gradient(90deg,#160b29f2,#1d1029bb),url("../identity-070/hero-campus.webp") center 42%/cover no-repeat;border-bottom:1px solid var(--line)}
.breadcrumb{display:flex;gap:10px;font-size:12px;margin-bottom:22px;color:#bdaccd}
.breadcrumb a{color:#ff9cb8}
.kicker{display:block;font-size:11px;font-weight:700;letter-spacing:.12em;color:#ff8eb1;text-transform:uppercase;margin-bottom:8px}
.page-hero h1{font-size:clamp(28px,3.5vw,50px);line-height:1.1;letter-spacing:-.04em;max-width:930px;margin:0 0 14px}
.page-hero p{font-size:16px;max-width:800px;margin-bottom:0;line-height:1.6}
.section{padding:40px 0;background:#180f29}
.section.soft{background:#1b112d}
.section h2{font-size:30px;letter-spacing:-.035em;line-height:1.15}
.section-head{display:flex;gap:20px;align-items:center;justify-content:space-between;margin-bottom:20px}
.section-head h2{margin:0 0 6px}
.lead{font-size:16px;line-height:1.6}
.panel{background:linear-gradient(135deg,#2d1c3b,#21152f);border:1px solid var(--line);border-radius:16px;padding:26px}
.panel h3{font-size:21px;margin-bottom:12px}
.panel p:last-child{margin-bottom:0}
.two-col{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.85fr);gap:26px;align-items:start}
.sticky{position:sticky;top:calc(var(--header) + 20px)}
.notice,.error-box,.success-box,.empty{padding:16px 20px;border-radius:12px;margin-bottom:20px;background:#32213e;border:1px solid #8b608f;color:#ead9ed;line-height:1.55;font-size:14px}
.notice{border-color:#ab8b555c;background:#393024;color:#ffe2b2}
.error-box{background:#472133;border-color:#ad5879;color:#ffe1eb}
.success-box{background:#173f32;border-color:#387a65;color:#c7f7e6}
.empty{padding:36px;text-align:center;border-style:dashed}
.text-link{color:#ff9cbd;font-weight:600}
.text-link .sp-icon{width:17px;height:17px}
.text-link:hover{color:#ffd1e1}
.btn{min-height:42px;border-radius:12px}
.btn.small{padding:8px 13px;font-size:12px;min-height:34px}
.btn.danger{background:#a93562}
.filters{display:flex;gap:9px;flex-wrap:wrap;margin:18px 0 20px}
.filter{background:#241632;border:1px solid var(--line);border-radius:22px;padding:10px 17px;color:#eee4f5;font-weight:600;font-size:14px}
.filter.active,.filter[aria-pressed=true]{background:#d93b83;border-color:#ee6ba7;color:white}
.schedule-list{display:grid;gap:14px}
.schedule-item{display:grid;grid-template-columns:145px minmax(0,1fr) auto;align-items:start;gap:24px;padding:24px;border:1px solid var(--line);border-radius:14px;background:#271935}
.schedule-date{border-right:1px solid var(--line);padding-right:18px;line-height:1.5}
.schedule-date b{display:block;color:#ffc07f}
.schedule-date span{font-size:13px;color:#d2bfdc}
.schedule-item h3{font-size:19px;margin:0 0 8px;line-height:1.3}
.schedule-item p{font-size:14px;margin:0 0 12px}
.tags{display:flex;gap:7px;flex-wrap:wrap}
.tag{display:inline-flex;align-items:center;padding:5px 9px;font-size:11px;border-radius:15px;background:#452139;color:#ffd0e2;border:1px solid #8d4f713f}
.competition-grid,.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.competition-card,.news-card{background:#281833;border:1px solid var(--line);border-radius:15px;padding:24px}
.competition-card.featured{background:linear-gradient(135deg,#48243f,#251535)}
.cicon{font-size:35px}
.competition-card h3{font-size:22px;margin-top:12px}
.competition-card p{font-size:15px;line-height:1.6}
.download-list{display:grid;gap:12px}
.download{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:18px;border:1px solid var(--line);border-radius:12px;min-width:0}
.download small{display:block;color:var(--muted)}
.download .btn{flex-shrink:0}
.news-card{padding:0;overflow:hidden}
.news-cover{height:190px;background:linear-gradient(135deg,#462444,#9c4167)}
.news-cover img{width:100%;height:100%;object-fit:cover}
.news-body{padding:20px}
.news-body h3{font-size:20px;line-height:1.25;margin:10px 0}
.news-body p{font-size:14px}
.news-body small{font-size:11px;color:#c4afce}
.timeline{display:grid;gap:16px}
.timeline-item{display:grid;grid-template-columns:90px 1fr;gap:22px}
.timeline-year{padding-top:24px;font-size:24px;color:#ffa5c3;font-weight:800}
.timeline-card{padding:24px;border:1px solid var(--line);border-radius:14px;background:#2a1937}
.timeline-card h3{font-size:21px;margin:0 0 8px}
.timeline-card p{margin:0 0 12px}
.source-list{display:grid;gap:12px}
.source-list a{padding:14px;border:1px solid var(--line);border-radius:10px;color:#edb6d1}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{display:grid;gap:8px;min-width:0}
.field.full{grid-column:1/-1}
.field label{font-weight:600;font-size:14px;color:#f8ebfc}
.field input,.field select,.field textarea{width:100%;min-width:0;padding:12px 13px;border:1px solid #80688e;border-radius:9px;background:#180f25;color:#fff}
.field textarea{min-height:115px;resize:vertical}
.field input::placeholder,.field textarea::placeholder{color:#af98be}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid #ff96bc;outline-offset:1px}
.check{display:flex;align-items:flex-start;gap:10px;font-size:14px;color:#dfcce7;font-weight:400!important}
.check input{margin-top:4px;width:17px;accent-color:#ee488f;flex-shrink:0}
.form-actions{display:flex;gap:15px;align-items:center;flex-wrap:wrap;margin-top:22px}
.help{font-size:12px;color:#ceb9d8}
.category-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.category-option{position:relative}
.category-option input{position:absolute;left:12px;top:14px;width:16px;height:16px;accent-color:#f564aa}
.category-option label{display:block;height:100%;padding:14px 12px 14px 38px;border:1px solid var(--line);border-radius:12px;cursor:pointer;background:#21112d}
.category-option label b{display:block;line-height:1.4;font-size:14px}
.category-option label small{font-size:12px;color:#cbb3d6;line-height:1.5;display:block}
.category-option input:checked+label{border-color:#fb83b1;background:#42223f}
.category-option input:focus-visible+label{outline:2px solid var(--focus)}
.registration-card{padding:30px;background:linear-gradient(135deg,#422641,#241536);border:1px solid var(--line);border-radius:18px}
.protocol{font-size:21px;font-weight:700;overflow-wrap:anywhere}
.status{display:inline-flex;padding:6px 12px;border-radius:14px;background:#215840;color:#d9ffe7;font-size:13px;font-weight:600;margin:14px 0}
.status.waitlist{background:#604b21;color:#ffe1a1}
.status.cancelled{background:#672a45;color:#ffe2ed}
.qr-box{background:#fff;border-radius:12px;padding:14px;width:max-content;max-width:100%;margin:20px 0}
.faq{display:grid;gap:14px}
.faq details{padding:20px;border:1px solid var(--line);border-radius:12px;background:#291934}
.faq summary{font-weight:600;cursor:pointer}
.faq p{margin:14px 0 0;line-height:1.7}
.sp-content-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.sp-content-card{border:1px solid var(--line);border-radius:16px;background:#2b1b39;padding:24px}
.sp-content-card>.sp-icon{color:#fc81ab;width:32px;height:32px;margin-bottom:18px}
.sp-content-card h3{font-size:21px;line-height:1.15}
.sp-content-card p{font-size:15px}
.sp-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.sp-contact-card{padding:26px;display:flex;gap:22px;align-items:center;background:#2c1b38;border-radius:16px;border:1px solid var(--line)}
.sp-contact-card .sp-icon{width:36px;height:36px;color:#fc81ab}
.sp-contact-card h3{margin:0 0 5px}
.sp-contact-card p{margin:0}
/* Dialog opens only on the institutional lockup; no repeated sponsor section on inner pages. */
.sp-dialog{color:var(--text);background:#24162f;border:1px solid #ad85b0;border-radius:18px;padding:28px;width:min(680px,calc(100% - 32px));max-height:85svh;overflow:auto}
.sp-dialog::backdrop{background:#080310c9;backdrop-filter:blur(7px)}
.sp-dialog-head{display:flex;align-items:center;gap:15px;justify-content:space-between}
.sp-dialog h2{font-size:27px;letter-spacing:-.035em;margin:0 0 15px}
.sp-dialog-head button{align-self:flex-start;background:none;border:1px solid var(--line);border-radius:8px;padding:6px;display:grid;place-items:center}
.sp-partner-list{display:grid;gap:14px}
.sp-partner-list article{border:1px solid var(--line);border-radius:12px;padding:18px}
.sp-partner-list h3{margin:0 0 8px}
.sp-toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:400;padding:12px 20px;border:1px solid var(--line);border-radius:10px;background:#3e2350;box-shadow:0 10px 25px #08031077;color:#fff;max-width:90%;font-size:14px}
/* Readable certificates, regardless of the public site's dark theme. */
.certificate{width:min(1000px,calc(100% - 40px));margin:30px auto;background:white;color:#21132f;padding:60px;border:8px solid #311a49;text-align:center}
.certificate p{color:#45344c}
.cert-mark{width:65px;margin:auto}
.certificate h1{font-size:42px}
.certificate .name{font-size:34px;color:#a8306c;margin:25px 0}
.certificate-code{font-size:12px;overflow-wrap:anywhere}
.print-actions{text-align:center;margin:25px}
@media (max-width:1250px){
.sp-card-grid{gap:10px}
.sp-institution{padding-left:12px}
.sp-footer .sp-brand small{max-width:140px;white-space:normal}
}
@media (max-width:1024px){
.sp-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.sp-footer{padding:17px 0}
.sp-footer-brand{margin-right:auto}
.two-col{grid-template-columns:1fr}
.sticky{position:static}
.schedule-item{grid-template-columns:125px 1fr}
.schedule-item>div:last-child{grid-column:2}
.competition-grid,.sp-content-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:680px){
.sp-motion{right:6px;bottom:109px}
.sp-discover{padding:25px 0 0}
.sp-card-grid{grid-template-columns:1fr 1fr;gap:12px}
.sp-horizon{height:218px;background-position:50% center;background-size:auto 100%}
.sp-horizon-inner{padding:28px 18px 10px}
.sp-horizon h2{font-size:31px;margin-top:8px}
.sp-horizon p{font-size:13px;margin:8px 0 15px}
.sp-institution{padding-left:12px}
.sp-institution img{width:102px}
.sp-footer-brand .sp-brand small{font-size:9px}
.sp-socials{gap:10px}
.sp-team-link{margin-left:auto}
.page-hero{padding:32px 0}
.page-hero h1{font-size:32px}
.page-hero p{font-size:15px}
.section{padding:28px 0}
.section h2{font-size:27px}
.section-head{align-items:start;flex-direction:column;gap:12px}
.panel{padding:21px}
.form-grid,.category-grid,.competition-grid,.news-grid,.sp-content-grid,.sp-contact-grid{grid-template-columns:1fr}
.form-grid{gap:16px}
.schedule-item{grid-template-columns:1fr;padding:20px;gap:12px}
.schedule-date{border-right:0;border-bottom:1px solid var(--line);padding:0 0 10px;display:flex;gap:16px}
.schedule-item>div:last-child{grid-column:auto}
.download{align-items:start;flex-direction:column;gap:14px}
.timeline-item{grid-template-columns:1fr;gap:8px}
.timeline-year{padding-top:0}
.timeline-card{padding:20px}
.sp-content-card{padding:23px}
.sp-contact-card{padding:22px}
.certificate{padding:30px 18px}
.certificate h1{font-size:32px}
.certificate .name{font-size:26px}
}
@media (max-width:359px){
.sp-card-grid{grid-template-columns:1fr}
.sp-footer-brand{width:100%}
.sp-socials{margin-right:auto}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.sp-feature-card:hover,.sp-button:hover,.btn:hover{transform:none}.sp-stars{opacity:.45}}
@media print{body{background:white;color:#211329}.sp-header,.sp-footer,.sp-stars,.sp-motion,.print-actions{display:none!important}.certificate{border-width:4px;box-shadow:none;margin:0;width:100%;break-inside:avoid}.section{background:white}.panel{background:white;color:#211329}}

/* Shared refinements: preserve user text sizing and avoid hidden content. */
.sp-hero-copy h1, .sp-meta span { min-width: 0; }
.sp-hero-copy > p, .sp-meta b { overflow-wrap: break-word; }
.sp-themes > div { min-width: 0; }
.sp-discover { padding-top: 1.375rem; }
.sp-horizon { height: auto; min-height: 13.5rem; }
.sp-horizon-inner { padding: 1.5rem 1.25rem 2rem; }
.sp-horizon h2 { font-size: clamp(2rem, calc(1.5rem + 1vw), 2.75rem); }
.sp-horizon p { font-size: 1rem; }
.sp-community { padding: 1.125rem 1.5rem; }
.sp-footer-nav a { padding-block: .375rem; }

/* Switch the menu when its content needs room, not according to monitor brand. */
@media (max-width: 1180px) {
  :root { --header: 4.5rem; }
  .sp-menu-toggle { display: flex; }
  .sp-brand { font-size: 1.375rem; }
  .sp-brand img { width: 1.75rem; height: 3.5rem; }
  .sp-nav {
    display: none; position: absolute; top: calc(var(--header) - 2px);
    left: var(--gutter); right: var(--gutter); align-items: stretch;
    flex-direction: column; gap: 0; padding: 1rem; background: #20102fec;
    border: 1px solid #87618a88; box-shadow: 0 14px 25px #05020866;
    border-radius: 14px; backdrop-filter: blur(20px); font-size: 1rem;
    max-height: calc(100svh - var(--header) - 20px); overflow: auto;
  }
  .sp-nav.is-open { display: flex; }
  .sp-nav > a:not(.sp-button) { padding: .75rem; }
  .sp-nav > a:not(.sp-button)::after { bottom: 7px; left: 12px; width: 30px; }
  .sp-nav-cta { margin: .75rem 0 0; }
  .sp-hero { min-height: 38rem; }
  .sp-hero-inner {
    padding-top: calc(var(--header) + 1.625rem);
    grid-template-columns: minmax(0,1.35fr) minmax(0,1fr); row-gap: 2rem;
  }
  .sp-hero h1 { font-size: clamp(2.375rem, 4.2vw, 3.125rem); }
  .sp-hero-art { background-position: 62% top; }
  .sp-meta { grid-column: 1 / -1; grid-row: 2; gap: 2rem; }
  .sp-themes { grid-column: 2; grid-row: 1; align-self: end;
    grid-template-columns: repeat(3,minmax(0,1fr)); max-width: 24rem; gap: 1.125rem .5rem; }
  .sp-card-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: .875rem; }
  .sp-footer-inner { flex-wrap: wrap; justify-content: space-between; gap: 1.125rem; }
  .sp-footer-nav { order: 5; width: 100%; justify-content: center; margin: 0; }
}

/* A phone is not a scaled-down desktop. The artwork is unchanged. */
@media (max-width: 680px) {
  :root { --gutter: 1.25rem; --header: 4.5rem; }
  .sp-hero { min-height: 50rem; }
  .sp-hero-inner {
    padding: calc(var(--header) + 1.5rem) 0 1.25rem;
    grid-template-columns: minmax(0,1fr); grid-template-rows: auto auto 1fr;
    row-gap: 1.5rem; align-content: normal;
  }
  .sp-hero-copy { grid-column: 1; grid-row: 1; max-width: 34rem; width: 100%; }
  .sp-hero h1 { font-size: clamp(2rem, calc(1.5rem + 2.8vw), 3rem);
    line-height: 1.04; letter-spacing: -.045em; }
  .sp-eyebrow { font-size: .75rem; }
  .sp-hero-copy > p { font-size: 1rem; line-height: 1.5; max-width: 30rem; }
  .sp-hero .sp-actions { gap: .625rem; align-items: stretch; }
  .sp-hero .sp-button { flex: 1 1 10rem; font-size: .875rem; padding: .875rem 1rem; min-height: 46px; }
  .sp-hero-art { background-size: auto 70%; background-position: 62% bottom; }
  .sp-hero::after { background: linear-gradient(180deg,#160b29 0%,#160b29f5 31%,#160b2980 55%,#160b2905 78%); }
  .sp-meta { grid-column: 1; grid-row: 2; display: grid;
    grid-template-columns: minmax(0,.8fr) minmax(0,1.6fr); gap: 1rem; align-items: start; }
  .sp-meta > div { gap: .5rem; }
  .sp-meta > div:last-child { grid-column: 1 / -1; max-width: none; }
  .sp-meta .sp-icon { width: 1.375rem; height: 1.375rem; }
  .sp-meta small, .sp-meta em { font-size: .75rem; }
  .sp-meta b { font-size: .875rem; }
  .sp-themes { grid-column: 1; grid-row: 3; width: 100%; max-width: none;
    align-self: end; margin-top: 7rem; grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 1rem .5rem; padding: 1rem; }
  .sp-themes span { font-size: .6875rem; letter-spacing: .03em; }
  .sp-themes .sp-icon { width: 1.75rem; height: 1.75rem; }
  .sp-motion { bottom: 11.5rem; right: 6px; width: 32px; height: 32px; }
  .sp-section-heading { margin-bottom: 1.375rem; }
  .sp-section-heading h2 { font-size: 1.875rem; margin-bottom: .625rem; }
  .sp-section-heading p { font-size: .9375rem; line-height: 1.5; }
  .sp-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }
  .sp-feature-card, .sp-feature-content { min-height: 13.75rem; }
  .sp-feature-content { padding: 1rem; }
  .sp-feature-card h3 { font-size: 1rem; }
  .sp-feature-card p { font-size: .875rem; max-width: none; }
  .sp-feature-card:last-child { grid-column: 1 / -1; }
  .sp-feature-card:last-child img { object-position: center 33%; }
  .sp-feature-card:last-child p { max-width: 20rem; }
  .sp-community { display: grid; grid-template-columns: 2rem minmax(0,1fr); gap: .875rem; padding: 1.25rem 1rem; }
  .sp-community > .sp-icon { width: 1.75rem; height: 1.75rem; align-self: start; }
  .sp-community h3 { font-size: 1rem; }
  .sp-community p { font-size: .875rem; }
  .sp-community .sp-button { grid-column: 2; justify-self: start; margin: .25rem 0 0; }
  .sp-footer-brand .sp-brand small { max-width: 9rem; white-space: normal; }
  .sp-footer .sp-brand { font-size: .8125rem; }
  .sp-footer-nav { font-size: .8125rem; gap: .375rem 1rem; line-height: 1.5; }
  .field input, .field select, .field textarea { font-size: 1rem; }
}
@media (max-width: 480px) {
  .sp-hero .sp-actions { flex-direction: column; }
  .sp-hero .sp-button { flex: 0 1 auto; width: 100%; }
}
@media (max-width: 359px) {
  :root { --gutter: 1rem; }
  .sp-card-grid { grid-template-columns: minmax(0,1fr); }
  .sp-feature-card p { max-width: 18rem; }
  .sp-footer-brand { width: 100%; }
}
/* Keep focus/hover motion preferences effective after all responsive rules. */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .sp-feature-card:hover, .sp-button:hover, .btn:hover { transform: none; }
}

