@font-face{font-family:Ray;src:url('/assets/ray-medium.woff2') format('woff2');font-weight:400 500;font-display:swap}
@font-face{font-family:Ray;src:url('/assets/ray-bold.woff2') format('woff2');font-weight:600 900;font-display:swap}
:root{
  --cobalt:#203785;--deep:#15276a;--bright:#497bc1;--mist:#e8eef7;
  --paper:#fff;--warm:#f4f5f8;--ink:#142344;--muted:#4b5874;--ice:#dbe7ff;--error:#9a223b;
  --gutter:clamp(20px,5.55vw,96px);--max:1440px;--ease:cubic-bezier(.19,1,.22,1);
  font-family:Ray,Tahoma,sans-serif;color:var(--ink);background:var(--paper);
  font-size:18px;font-weight:500;line-height:1.65;font-synthesis:none;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body,h1,h2,h3,p,figure,ol{margin:0}
img{display:block;max-width:100%;height:auto}
button,input,select{font:inherit}
button,a,select{touch-action:manipulation}
a{color:inherit;text-decoration:none}
svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
:focus-visible{outline:3px solid var(--bright);outline-offset:4px}
body :is(input,select,textarea):focus{outline:none;box-shadow:none;background-color:#e4e7ed}
:is(input,select,textarea){-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
section[id]{scroll-margin-top:32px}
.skip-link{position:absolute;inset-block-start:8px;inset-inline-start:12px;z-index:5;transform:translateY(-160%);background:var(--paper);color:var(--ink);padding:8px 12px}
.skip-link:focus{transform:none}
.site-header{background:var(--paper);color:var(--deep)}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:clamp(12px,2vw,24px);
  min-height:clamp(88px,9vw,110px);
  padding-block:12px;
}
.brand{display:flex;align-items:center;gap:clamp(10px,1.3vw,17px);min-width:0}
.brand img{width:clamp(48px,6vw,65px);flex:none}
.brand-copy h1{font-size:clamp(24px,3.1vw,33px);line-height:1.1;font-weight:800}
.brand-copy p{margin-block-start:6px;font-size:clamp(15px,1.65vw,18px);line-height:1.28}
.text-link:hover{text-decoration:underline;text-underline-offset:5px}
/* Elliptical CMYK shading from the supplied Illustrator poster, converted to sRGB. */
.hero{position:relative;overflow:hidden;color:var(--paper);background:#233e90;
  background-image:linear-gradient(to bottom,transparent 44%,#15276a85 70%,#15276ab8), /* taste-skill-ignore: contrast for white copy over the poster gradient */
    radial-gradient(ellipse 62% 71% at 51% 68%,#5da9dd 0%,#549ad2 13%,#4c8ac6 25%,#467dbc 38%,#3e6fb2 50%,#3564a9 63%,#2c57a1 75%,#264b99 88%,#233e90 100%); /* taste-skill-ignore: requested poster gradient */
}
.hero-inner{
  display:grid;
  grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);
  align-items:center;
  justify-items:center;
  column-gap:clamp(22px,5vw,72px);
  min-block-size:clamp(440px,68svh,720px);
  padding-block:clamp(27px,4.2vh,52px) clamp(35px,5.2vh,66px);
}
.hero-content{grid-area:1/1;display:grid;justify-items:start;width:100%;row-gap:clamp(16px,2.45vh,28px)}
.hero-copy{
  --hero-copy-width:clamp(220px,min(32vw,42svh),380px);
  display:grid;grid-template-columns:minmax(0,1fr);gap:9px;
  width:min(100%,var(--hero-copy-width));text-align:right;
}
.hero-wordmark{width:100%}
.hero-copy p{font-size:clamp(18px,1.6vw,21px);line-height:1.45}
.button{display:inline-flex;justify-content:space-between;align-items:center;gap:24px;width:max-content;min-height:54px;padding:10px 18px;font-weight:700;border:0;border-radius:0;cursor:pointer;line-height:1.3;transition:transform .2s var(--ease),background-color .2s ease;color:var(--paper);background:var(--cobalt)}
.button:active{transform:translateY(2px)}
.button:hover{background:var(--deep)}
.button svg{width:20px;height:20px}
.header-login{
  flex:none;
  min-height:46px;
  padding-inline:clamp(12px,1.45vw,18px);
  gap:clamp(7px,1.1vw,14px);
  white-space:nowrap;
}
.header-login svg{width:17px;height:17px}
.button-light{background:var(--paper);color:var(--deep)}
.button-light:hover{background:var(--ice)}
.hero-actions{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:min(100%,360px)}
.hero-actions .button{width:100%;min-width:0;padding-inline:clamp(11px,3vw,18px);gap:8px;white-space:nowrap}
.hero-actions :focus-visible{outline-color:var(--paper)}
.button-hero-secondary{background:#233e90;color:var(--paper);border:1px solid var(--paper)} /* taste-skill-ignore: secondary action on a variable background */
.button-hero-secondary:hover{background:var(--deep)}
.hero-figure{
  --hero-tile-scale:.9;
  grid-area:1/2;position:relative;display:grid;place-items:center;min-width:0;
  width:min(100%,630px);width:min(100%,630px,max(300px,calc(90svh - 165px)));
}
.hero-tile{width:100%;transform:rotate(-32.5deg) scale(calc(.88 * var(--hero-tile-scale)));transform-origin:center;transition:opacity .2s ease}
.tile-stage{position:absolute;inset:-7% -4% -7%;transform:scale(var(--hero-tile-scale));opacity:0;pointer-events:none;touch-action:pan-y pinch-zoom;user-select:none;transition:opacity .2s ease}
.tile-stage canvas{display:block;width:100%;height:100%;pointer-events:none}
.tile-ready .tile-stage{opacity:1}
.tile-interactive .tile-stage{pointer-events:auto;cursor:grab}
.tile-interactive .tile-stage.is-dragging{cursor:grabbing}
.tile-ready .hero-tile{opacity:0;transition-delay:.08s}
.tile-stage:focus-visible{outline-color:var(--ice);outline-offset:0}
.event-strip{background:var(--mist)}
.event-strip-inner{display:grid;grid-template-columns:1fr 1.12fr;gap:25px;padding-block:28px 31px}
.event-fact{display:flex;gap:15px;align-items:center}
.event-fact svg{width:28px;height:28px;color:var(--cobalt)}
.event-fact p{font-size:clamp(19px,2.3vw,32px);line-height:1.25;color:var(--deep);font-weight:700}
.section{padding-block:clamp(58px,7.5vw,112px)}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:33px}
h2{font-size:clamp(35px,5vw,72px);line-height:1.08;font-weight:800}
.section-heading p{padding-block-end:5px}
.program-list{list-style:none;padding:0}
.program-list li:nth-child(odd){background:var(--warm)}
.program-list a{display:grid;grid-template-columns:minmax(120px,.75fr) minmax(0,2fr) auto;align-items:center;gap:clamp(10px,3vw,42px);padding:16px clamp(14px,2.35vw,36px);min-height:82px;transition:background-color .2s ease}
.program-list a:hover{background:var(--mist)}
.program-list time{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;line-height:1.25}
.program-date{font-size:clamp(21px,2.05vw,29px);color:var(--cobalt);white-space:nowrap;font-weight:700}
.program-weekday{font-size:clamp(18px,1.6vw,23px);color:var(--muted)}
.program-audience{font-size:clamp(19px,2.25vw,32px);font-weight:700;line-height:1.25}
.program-list svg{color:var(--cobalt);transition:transform .2s var(--ease)}
@media(hover:hover) and (pointer:fine){.program-list a:hover svg{transform:translateY(3px)}}
.about{background:var(--mist);overflow:hidden}
.about-inner{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.25fr);align-items:center;gap:clamp(22px,4.7vw,70px);padding-block:clamp(58px,7vw,105px)}
.about-copy p,.registration-copy p{margin-block:24px 18px;max-width:38ch;font-size:clamp(18px,1.7vw,23px)}
.text-link{min-height:44px;display:inline-flex;align-items:center;gap:9px;font-weight:700}
.text-link svg{width:18px;height:18px}
.art-composition{position:relative;isolation:isolate;aspect-ratio:1.48;background:#d3dff1}
.art{position:absolute}
.art-court{width:67%;inset-inline-end:3%;bottom:6%;z-index:2}
.art-mosque{width:43%;inset-inline-start:4%;top:0;z-index:1;transform:rotate(4deg)}
.art-vase{width:24%;inset-inline-start:4%;bottom:4%;z-index:3;transform:rotate(-6deg)}
.registration{background:var(--deep);color:var(--paper)}
.registration-inner{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:clamp(26px,7vw,100px);padding-block:clamp(56px,6.75vw,100px)}
.registration-copy{position:relative}
.registration-copy h2{font-size:clamp(35px,4vw,57px)}
.registration-copy p{color:var(--ice)}
.registration-art{width:clamp(100px,13vw,190px);margin:24px auto 0;transform:rotate(-7deg)}
.form-panel{position:relative;background:var(--paper);color:var(--ink);padding:clamp(22px,3.1vw,48px)}
.registration-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 14px}
.full{grid-column:1/-1}
.form-field label{display:block;font-weight:700;margin-block-end:5px}
.form-field input,.form-field select{width:100%;min-height:50px;background:var(--warm);border:1px solid #aebad0;color:var(--ink);border-radius:0;padding:8px 10px}
.form-field select{padding-inline-end:25px}
.form-field select:disabled{opacity:1;color:var(--muted);background:var(--mist)}
input[type=tel]{direction:ltr;text-align:left}
.form-field [aria-invalid=true]{border-color:var(--error)}
.field-error,.form-error{color:var(--error);font-size:16px}
.field-error{margin-top:4px}
.form-error{padding:12px 14px;background:#f9e9ec}
.form-submit{width:100%;margin-top:2px}
.form-submit:disabled{cursor:wait;opacity:.7}
.form-success{min-height:250px;display:grid;align-content:center;gap:14px}
.form-success h3{font-size:clamp(26px,3vw,40px);line-height:1.1;color:var(--cobalt)}
.form-success .text-link{width:max-content;color:var(--cobalt)}
.trap{position:absolute;width:0;height:0;overflow:hidden;clip-path:inset(50%);pointer-events:none}
.partners{padding-block:clamp(44px,6vw,76px);display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:clamp(25px,6vw,88px)}
.partners h2{font-size:clamp(25px,3vw,42px)}
.partner-grid{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.partner-grid img{width:clamp(33px,4.45vw,62px);height:clamp(33px,4.45vw,62px);object-fit:contain}
.site-footer{background:var(--cobalt);color:var(--paper)}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:22px;padding-block:31px}
.footer-brand{display:flex;align-items:center;gap:12px;font-weight:700;line-height:1.25}
.footer-brand img{width:46px;flex:none}
.footer-top{display:grid;place-items:center;width:48px;height:48px;flex:none;margin-inline-start:auto;border:1px solid #ffffff66}
.footer-top:hover{background:#ffffff18}
.footer-top:focus-visible{outline-color:var(--ice)}
.footer-credit{border-block-start:1px solid #ffffff38}
.footer-credit p{
  display:flex;align-items:baseline;gap:6px;
  padding-block:12px;color:var(--ice);font-size:15px;line-height:1.35;
}
.footer-credit-label{font-size:12px}
@media(max-width:900px){
  .section-heading{align-items:start;flex-direction:column;gap:9px;margin-bottom:24px}
  .program-list time{display:grid;gap:3px}
  .program-list a{min-height:74px}
  .about-inner{gap:24px}
  .registration-inner{gap:28px}
  .partners{grid-template-columns:1fr}
}
@media(max-width:700px){
  :root{font-size:17px}
  .header-inner{padding-inline:clamp(14px,4vw,24px);gap:10px}
  .brand{gap:8px}
  .brand-copy{display:grid;align-content:space-between;height:48px;padding-block:3px;white-space:nowrap}
  .brand-copy h1{font-size:clamp(19px,5.7vw,25px);line-height:1}
  .brand-copy p{margin:0;font-size:clamp(11px,3.35vw,15px);line-height:1}
  .header-login{gap:6px;padding-inline:10px}
  .about-copy p,.registration-copy p{font-size:17px}
  .opening{
    display:grid;
    grid-template-rows:minmax(auto,1fr) auto;
    min-block-size:calc(100vh - var(--header-height,88px));
    min-block-size:calc(100svh - var(--header-height,88px));
  }
  .hero{display:grid}
  .hero-inner{
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:minmax(130px,1fr) auto auto;
    align-items:stretch;
    min-block-size:0;
    gap:10px;
    padding:6px 0 34px;
  }
  .hero-content{display:contents}
  .hero-copy{--hero-copy-width:270px;width:min(calc(100% - 2 * var(--gutter)),var(--hero-copy-width));gap:17px}
  .hero-copy p{font-size:17px;line-height:1.35}
  .hero-figure{--hero-tile-scale:.84;grid-area:auto;width:min(100%,560px);translate:0 14px}
  .hero-tile{position:absolute;inset:0;height:100%;object-fit:contain}
  .tile-stage{inset:0}
  .button{min-height:48px}
  .hero-actions{width:min(calc(100% - 2 * var(--gutter)),420px);margin-block-start:21px}
  .hero-actions .button{min-height:clamp(50px,7.3svh,64px)}
  .event-strip-inner{grid-template-columns:1fr;gap:6px;padding-block:12px 14px}
  .event-fact{gap:10px}
  .event-fact svg{width:22px;height:22px}
  .event-fact p{font-size:18px}
  .program-list a{grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;padding:12px 10px}
  .program-list time{display:flex;align-items:baseline;gap:9px;grid-area:1/1}
  .program-audience{grid-area:2/1/2/-1;font-size:clamp(12.5px,3.85vw,17px)}
  .program-list svg{grid-area:1/2;width:18px;height:18px}
  .program-weekday{font-size:16px}
  .about-inner,.registration-inner{grid-template-columns:1fr;gap:24px}
  .about-copy p,.registration-copy p{margin-block:15px 10px}
  .registration-art{display:none}
  .footer-inner{gap:12px}
  .partners{gap:22px}
  .partner-grid{justify-content:flex-start;gap:10px 14px}
  .partner-grid img{width:clamp(40px,11vw,55px);height:42px}
  #province,#city{padding-inline-end:9px}
}
@media(min-width:701px) and (max-width:900px), (min-width:520px) and (max-width:700px) and (orientation:landscape){
  .hero-actions .button{font-size:clamp(14px,2vw,18px);padding-inline:9px;gap:5px}
  .hero-actions .button svg{width:16px;height:16px}
}
@media(min-width:520px) and (max-width:700px) and (orientation:landscape){
  .hero-inner{
    grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto;
    align-items:center;column-gap:18px;padding:6px var(--gutter);
  }
  .hero-content{display:grid;row-gap:7px}
  .hero-copy{--hero-copy-width:clamp(205px,35vw,240px);width:min(100%,var(--hero-copy-width));gap:5px}
  .hero-copy p{font-size:14px;line-height:1.25}
  .hero-figure{grid-area:1/2;align-self:stretch;translate:none}
  .hero-actions{width:100%;gap:8px;margin-block-start:0}
  .hero-actions .button{min-height:44px}
  .event-strip-inner{grid-template-columns:max-content 1fr;gap:20px}
}
@media(max-width:375px){
  .form-panel{padding:17px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
}

@media(prefers-reduced-motion:no-preference){
  .tile-awaiting-model #tile-viewer:not(.tile-ready) .hero-tile{opacity:0}
  .motion-boot [data-reveal],.motion-ready [data-reveal]{
    opacity:0;transform:var(--from,translateY(18px));
  }
  .motion-ready [data-reveal].in-view{
    opacity:1;transform:var(--to,none);transition:opacity .85s var(--ease),transform .98s var(--ease);
    transition-delay:var(--enter-delay,90ms);
  }
  .motion-ready [data-reveal]:is(:focus-within,.reveal-instant){
    opacity:1;transform:var(--to,none);transition:none;
  }
  .motion-ready .form-panel:has(.choice-trigger[aria-expanded=true]){
    opacity:1;transform:none;transition:none;
  }
  .header-inner [data-reveal]{--from:translateY(-8px)}
  .hero-actions .button{--enter-delay:330ms}
  .hero-actions .button:nth-child(2){--enter-delay:435ms}
  .motion-ready .hero-actions .button.in-view:active{transform:translateY(2px);transition-delay:0s;transition-duration:.12s}
  .hero-figure{--from:translateY(19px) scale(.975);--enter-delay:215ms}
  .hero-copy{--enter-delay:275ms}
  .event-fact{--from:translateY(10px)}
  .event-fact:nth-child(2){--enter-delay:210ms}
  .section-heading p,.about-copy p,.registration-copy p{--enter-delay:210ms}
  .program-list li{--from:translateX(15px)}
  .program-list li:nth-child(2){--enter-delay:205ms}
  .program-list li:nth-child(3){--enter-delay:325ms}
  .program-list li:nth-child(4){--enter-delay:445ms}
  .about-copy .text-link{--enter-delay:320ms}
  .art-composition{--from:scale(.98);--enter-delay:140ms}
  .art-court{--art-from:translate(-19px,14px) rotate(-5deg);--art-to:rotate(0deg);--art-delay:235ms}
  .art-mosque{--art-from:translate(10px,-18px) rotate(12deg);--art-to:rotate(4deg);--art-delay:125ms}
  .art-vase{--art-from:translate(20px,14px) rotate(-14deg);--art-to:rotate(-6deg);--art-delay:365ms}
  .motion-ready .art-composition .art{opacity:0;transform:var(--art-from)}
  .motion-ready .art-composition.in-view .art{opacity:1;transform:var(--art-to);transition:opacity .88s var(--ease),transform 1s var(--ease);transition-delay:var(--art-delay)}
  .motion-ready .art-composition.reveal-instant .art{transition:none}
  .registration-art{--from:rotate(-12deg) scale(.95);--to:rotate(-7deg);--enter-delay:265ms}
  .form-panel{--from:translate(-15px,12px);--enter-delay:285ms}
  .motion-ready .partner-grid img{opacity:0;transform:translateY(10px) scale(.96)}
  .motion-ready .partner-grid.in-view img{opacity:1;transform:none;transition:opacity .8s var(--ease),transform .95s var(--ease);transition-delay:var(--mark-delay,115ms)}
  .motion-ready .partner-grid.reveal-instant img{transition:none}
  .partner-grid img:nth-child(4n+2){--mark-delay:210ms}
  .partner-grid img:nth-child(4n+3){--mark-delay:305ms}
  .partner-grid img:nth-child(4n){--mark-delay:400ms}
  .site-footer [data-reveal]{--from:translateY(8px)}
  .site-footer p{--enter-delay:195ms}
  .site-footer .footer-top{--enter-delay:195ms}
}
