/* AI Awareness Day 2027 palette, typography and brand identity.
   Composition geometry is shared in customize.css. */
.theme-aiad27-safe { --a27-color:#00BEDD; --a27-deep:#006A7D; --a27-name:'Safe'; }
.theme-aiad27-smart { --a27-color:#FF7038; --a27-deep:#A7350B; --a27-name:'Smart'; }
.theme-aiad27-creative { --a27-color:#AC91FF; --a27-deep:#6441B8; --a27-name:'Creative'; }
.theme-aiad27-responsible { --a27-color:#63DF93; --a27-deep:#176E3B; --a27-name:'Responsible'; }
.theme-aiad27-future { --a27-color:#FA83EB; --a27-deep:#983488; --a27-name:'Future'; }
[class*='theme-aiad27-'] {
  --s-font:'AIAD Sans',Arial,sans-serif;
  --s-bg:#F6F4ED; --s-fg:#231F20; --s-dim:#54504E;
  --s-accent:var(--a27-deep); --s-accent-2:#231F20;
  --s-rule:#C9C6BE; --s-card:#EAE7DF; --s-scrim:#f6f4eddd;
  background:var(--s-bg); color:var(--s-fg); font-family:var(--s-font);
}

/* The campaign chooses a palette and layout defaults; the engine owns geometry. */
@font-face { font-family:'AIAD Sans'; src:url('../../fonts/aiad27/UncutSans-Regular.woff2') format('woff2'); font-weight:400; font-display:swap; }
@font-face { font-family:'AIAD Sans'; src:url('../../fonts/aiad27/UncutSans-Semibold.woff2') format('woff2'); font-weight:600; font-display:swap; }
@font-face { font-family:'AIAD Sans'; src:url('../../fonts/aiad27/UncutSans-Bold.woff2') format('woff2'); font-weight:700 900; font-display:swap; }
/* Private campaign scale, connected to shared composition roles. Intermediate
   sizes retain shared defaults; changing a role never changes deck content. */
[class*='theme-aiad27-'] {
  --a27-xs:18px; --a27-sm:22px; --a27-base:24px; --a27-lg:28px;
  --a27-xl:33px; --a27-2xl:48px; --a27-3xl:52px;
  --a27-4xl:62px; --a27-5xl:68px;
  /* 88 is the campaign's own cover size, and the reason the ramp does not get
     to choose it. The shared ramp reaches for 112 on a short headline, which
     is 27% larger than this design was drawn at — enough to push three of the
     five covers onto an extra line. The steps below it still catch long copy;
     the top of the ramp is simply the size the campaign uses. */
  --a27-display-short:88px; --a27-display-medium:86px;
  --a27-display-long:72px; --a27-display-longest:60px;
  --composition-caption:var(--a27-xs); --composition-context:var(--a27-sm);
  --composition-body:var(--a27-base); --composition-supporting:var(--a27-lg);
  --composition-rule-heading:var(--a27-xl); --composition-ballot-heading:var(--a27-2xl);
  --composition-heading:var(--a27-3xl);
  --cp-voice-size:var(--a27-4xl); --cp-question-size:var(--a27-5xl);
  --composition-display-short:var(--a27-display-short);
  --composition-display-medium:var(--a27-display-medium);
  --composition-display-long:var(--a27-display-long);
  --composition-display-longest:var(--a27-display-longest);
}
[class*='theme-aiad27-']:is(.layout-title,.layout-statement,.layout-keyfact) { --s-bg:var(--a27-color); background:var(--s-bg); }
/* The mark is an SVG with the strand colour baked in, and these three layouts
   put that same colour on the ground — pink on pink, mint on mint. A
   background-image cannot be recoloured by CSS, so it is driven to the ink the
   strand name beside it already uses. Flip this to a mask if the icon set is
   ever redrawn; then it would follow currentColor everywhere for free. */
[class*='theme-aiad27-']:is(.layout-title,.layout-statement,.layout-keyfact) .cp-header::before { filter:brightness(0); }
/* The closing rule follows its ground rather than one shared grey: ink on a
   strand colour, where a warm grey washes out; the theme's own rule on the
   dark slides, which is already a readable grey; unchanged on paper. */
[class*='theme-aiad27-']:is(.layout-title,.layout-statement,.layout-keyfact) { --cp-rule:var(--s-fg); }
/* On the dark grounds the strand colour is the accent and reads at 7:1 or
   better, so the eyebrow takes it — the label is the campaign's voice, the
   sentence under it is the room's. On a strand-coloured ground the same move
   would be the colour on itself, so there it stays ink. */
[class*='theme-aiad27-']:is(.layout-quote,.layout-journey) .cp-eyebrow { color:var(--s-accent); }
/* Drawn 1:1, so it needs room to render at its own size rather than being
   clamped to the 180px default and scaled down with its type. Hung flush with
   the top of the header — the same 32px the pad uses — so the lockup's first
   line shares a baseline with the strand name opposite it; its subline hangs
   below the band on purpose. The header reserves 330px, so it clears the beat. */
/* .slide.cp in css/customize.css caps the mark at 42px and loads after this
   file. Matching its .cp as well as the theme puts these one class ahead, so
   they win on specificity rather than tying and losing on order. */
.slide.cp[class*='theme-aiad27-'] .slide-logo,
.slide.cp[class*='theme-aiad27-'] .slide-logo img { max-width:300px; max-height:56px; }
.slide.cp[class*='theme-aiad27-'] .slide-logo { top:32px; }
/* The labels on the strand-coloured grounds — the cover and the discussion
   slide — are set white and bold by choice. These are the only places in the
   theme where type is lighter than its ground, and the accents are bright:
   2.21:1 on pink, 1.68:1 on mint. Full opacity, 700, and a larger size are
   as much as the combination can be given. */
[class*='theme-aiad27-']:is(.layout-title,.layout-statement,.layout-keyfact) .cp-eyebrow {
  color:#FFFFFF; font-weight:700; opacity:1; font-size:var(--a27-base); }
/* The cover's label sits above a 112px headline, so it wants to be the
   smallest thing on the slide rather than compete — the other two accent
   grounds carry a question with nothing else on them and can take more. */
[class*='theme-aiad27-'].layout-title .cp-eyebrow { font-size:var(--a27-xs); }
[class*='theme-aiad27-']:is(.layout-quote,.layout-journey) { --s-bg:#231F20; --s-fg:#F6F4ED; --s-dim:#D5D0CC; --s-accent:var(--a27-color); --s-rule:#686366; background:var(--s-bg); }
[class*='theme-aiad27-'] .cp-letter { background:var(--a27-color); color:#231F20; }
[class*='theme-aiad27-'] .cp-compare-head h3:first-of-type { background:var(--a27-color); color:#231F20; }
[class*='theme-aiad27-']:not(.cp) h2 { font-size:var(--a27-content-heading,46px); }
@media print { [class*='theme-aiad27-'] { --s-bg:#fff !important; --s-fg:#231F20 !important; --s-dim:#54504E !important; --s-accent:var(--a27-deep) !important; background:#fff !important; } }

[class*='theme-aiad27-'] .cp-header::before { content:var(--a27-name); font-weight:700; padding-left:32px; background:var(--a27-icon) left center / 22px 22px no-repeat; }
.theme-aiad27-safe { --a27-icon:url('../../brand/aiad27/icon-safe.svg'); }
.theme-aiad27-smart { --a27-icon:url('../../brand/aiad27/icon-smart.svg'); }
.theme-aiad27-creative { --a27-icon:url('../../brand/aiad27/icon-creative.svg'); }
.theme-aiad27-responsible { --a27-icon:url('../../brand/aiad27/icon-responsible.svg'); }
.theme-aiad27-future { --a27-icon:url('../../brand/aiad27/icon-future.svg'); }

/* The handout deliberately uses white paper even for dark campaign slides.
   Preserve an explicit reverse-logo choice; automatic reversal follows paper. */
@media print {
  .slide[class*='theme-aiad27-']:not(.logo-reverse) .slide-logo img { filter:none; }
}
