/* Larger reading type, quiet STEAM motifs and softer component edges. */
.fm-ux.fm-polish{
  --body-copy:21px;
  --soft-edge:rgba(33,57,58,.18);
  --line:rgba(33,57,58,.14);
  --soft-shadow:0 6px 22px rgba(33,57,58,.055);
  background-color:var(--cream);
  background-image:url('/assets/steam-background.svg');
  background-position:center 120px;
  background-size:1280px 1180px;
  background-repeat:repeat-y;
}
.fm-ux.fm-polish .header-purpose{font-size:20px;max-width:400px}
.fm-ux.fm-polish .section-nav a{font-size:16px}
.fm-ux.fm-polish .eyebrow{font-size:13px}
.fm-ux.fm-polish .hero-kicker{font-size:13px}
.fm-ux.fm-polish .hero-intro{font-size:21px;line-height:1.8;max-width:540px}
.fm-ux.fm-polish .button,.fm-ux.fm-polish .hero-ctas .button{font-size:17px}
.fm-ux.fm-polish .text-button{font-size:17px;white-space:normal}
.fm-ux.fm-polish .section-heading h2{font-size:clamp(43px,4.82vw,65px)}
.fm-ux.fm-polish .section-heading>p{font-size:20px}
.fm-ux.fm-polish .section-heading.about-heading{grid-template-columns:minmax(0,1fr);gap:17px}
.fm-ux.fm-polish .section-heading.about-heading #explore-intro{grid-column:1/-1;width:100%;max-width:none;min-width:0;margin:0;white-space:nowrap;text-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}
.fm-ux.fm-polish .section-heading.experience-heading #explore-intro{font-size:22px;overflow-x:auto;scrollbar-width:thin}
.fm-ux.fm-polish .catalog-toolbar .approaches-summary{font-size:18px}
.fm-ux.fm-polish .workshop-story p:not(.eyebrow),
.fm-ux.fm-polish .catalog-note,
.fm-ux.fm-polish .about-intro p:not(.eyebrow),
.fm-ux.fm-polish .purpose p:not(.eyebrow),
.fm-ux.fm-polish .skills-opening p:not(.eyebrow),
.fm-ux.fm-polish .skills-observation p,
.fm-ux.fm-polish .skills-observation li,
.fm-ux.fm-polish .skills-next p,
.fm-ux.fm-polish .kits-heading p:not(.eyebrow),
.fm-ux.fm-polish .schools p.school-lead,
.fm-ux.fm-polish .instagram-heading p:not(.eyebrow){font-size:20px;line-height:1.85}
.fm-ux.fm-polish .workshop-modalities .modalities-heading{font-size:24px;line-height:1.45}
.fm-ux.fm-polish .workshop-modalities{grid-template-columns:minmax(0,1fr);min-width:0}
.fm-ux.fm-polish .workshop-modalities .modalities-heading{grid-column:1/-1}
.fm-ux.fm-polish .workshop-modalities h4{font-size:28px}
.fm-ux.fm-polish .approach-grid .card-body p.card-description,
.fm-ux.fm-polish .experience-cover-card .card-body p.card-description,
.fm-ux.fm-polish .skill-card>p:not(.skill-question),
.fm-ux.fm-polish .schools .school-offer p,
.fm-ux.fm-polish .schools .school-contact p{font-size:19px;line-height:1.8}
.fm-ux.fm-polish .skill-card .skill-question{font-size:24px!important}
.fm-ux.fm-polish .impact p{font-size:22px;line-height:1.8}
.fm-ux.fm-polish .value-grid p,
.fm-ux.fm-polish .method-grid p,
.fm-ux.fm-polish .skills-teaser p,
.fm-ux.fm-polish .schools .school-offer p.school-offer-detail,
.fm-ux.fm-polish .schools .school-process p{font-size:18px;line-height:1.8}
.fm-ux.fm-polish .approach-grid .card-body h3,.fm-ux.fm-polish .skill-card h3{font-size:32px}
.fm-ux.fm-polish .approach-examples{font-size:16px}
.fm-ux.fm-polish .approach-tag,.fm-ux.fm-polish .skill-top>span{font-size:13px}
.fm-ux.fm-polish .approach-grid .card-body .card-meta{font-size:12px}
.fm-ux.fm-polish .approach-card .card-bottom .text-button{font-size:16px}
.fm-ux.fm-polish .workshop-facts :is(span,a),
.fm-ux.fm-polish .catalog-footer,
.fm-ux.fm-polish .experience-capacity,
.fm-ux.fm-polish .experience-cover-card .text-button,
.fm-ux.fm-polish .skills-teaser-link,
.fm-ux.fm-polish .kits-controls p{font-size:16px}
.fm-ux.fm-polish .experience-data dd{font-size:19px}
.fm-ux.fm-polish .experience-data dt{font-size:13px}
.fm-ux.fm-polish .instagram-caption h3{font-size:19px;line-height:1.45}
.fm-ux.fm-polish .instagram-footnote{font-size:16px}
.fm-ux.fm-polish footer,.fm-ux.fm-polish .footer-links :is(a,button){font-size:16px}
.fm-ux.fm-polish .footer-email{font-size:17px;overflow-wrap:anywhere}
.fm-ux.fm-polish .form label{font-size:18px}
.fm-ux.fm-polish .form :is(input,textarea,select){font-size:19px}
.fm-ux.fm-polish #dialog-content>p,.fm-ux.fm-polish .summary-box{font-size:19px;line-height:1.8}
.fm-ux.fm-polish .form-note,.fm-ux.fm-polish .notice{font-size:16px}

/* Keep text dark; soften the separate outlines and offset shadows. */
.fm-ux.fm-polish [class]{border-color:var(--soft-edge)}
.fm-ux.fm-polish :is(.product-card,.workshop-story,.hero-photo-frame,.hero-kicker,
  .skill-card,.purpose,.skills-teaser,.skills-observation,.kit-preview,.schools,
  .school-offer,.school-stamp,.school-contact,.instagram-picture,dialog,
  .art-label,.button,.save-card,.instagram-open,.instagram-type,.experience-capacity){
  border-color:var(--soft-edge);border-width:1px;box-shadow:var(--soft-shadow);
}
.fm-ux.fm-polish .workshop-modalities article,
.fm-ux.fm-polish .value-grid article,
.fm-ux.fm-polish .method-grid article,
.fm-ux.fm-polish .kit-preview>div,
.fm-ux.fm-polish .maker-showcase #maker-kits,
.fm-ux.fm-polish .kits-controls button,
.fm-ux.fm-polish .form :is(input,textarea,select){border-color:var(--soft-edge);border-width:1px;box-shadow:none}
.fm-ux.fm-polish .experience-cover-card.event-card{box-shadow:var(--soft-shadow)}
.fm-ux.fm-polish .button.primary,.fm-ux.fm-polish .button.secondary,
.fm-ux.fm-polish .schools .school-contact .button.light{border-color:var(--soft-edge);box-shadow:var(--soft-shadow)}
.fm-ux.fm-polish .button:is(:hover,:active),
.fm-ux.fm-polish .button.primary:is(:hover,:active),
.fm-ux.fm-polish .product-card:hover,
.fm-ux.fm-polish .hero-photo-frame:hover{box-shadow:0 9px 24px rgba(33,57,58,.11)}
.fm-ux.fm-polish :is(.site-header,.section-nav,.hero-bottom,.workshop-facts,
  .catalog-toolbar,.catalog-footer,.card-bottom,.school-process,.instagram-section,footer){border-color:var(--line)}
.fm-ux.fm-polish #calendar-panel{border-top:1px solid var(--soft-edge)}
.fm-ux.fm-polish .creative-ribbon.key-messages-ribbon{border-color:var(--soft-edge);border-width:1px}
.fm-ux.fm-polish .section-nav a[aria-current=page]{border-color:transparent}
@media(max-width:1100px){
  .fm-ux.fm-polish .workshop-story{grid-template-columns:1fr;gap:28px}
  .fm-ux.fm-polish .workshop-modalities{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fm-ux.fm-polish .section-nav a{font-size:15px}
  .fm-ux.fm-polish .header-purpose{font-size:19px}
}
@media(max-width:760px){
  .fm-ux.fm-polish .impact p{font-size:20px}
  .fm-ux.fm-polish .workshop-modalities{grid-template-columns:minmax(0,1fr)}
  .fm-ux.fm-polish{--body-copy:20px;background-size:640px 590px}
  .fm-ux.fm-polish .header-purpose{font-size:17px}
  .fm-ux.fm-polish .section-nav a{font-size:15px;min-height:46px}
  .fm-ux.fm-polish .hero-intro{font-size:20px}
  .fm-ux.fm-polish .hero-ctas .button{font-size:17px}
  .fm-ux.fm-polish .section-heading h2{font-size:43px}
  .fm-ux.fm-polish .section-heading.experience-heading #explore-intro{font-size:19px}
  .fm-ux.fm-polish .catalog-toolbar .approaches-summary{font-size:17px}
  .fm-ux.fm-polish .workshop-story p:not(.eyebrow),
  .fm-ux.fm-polish .catalog-note,.fm-ux.fm-polish .about-intro p:not(.eyebrow),
  .fm-ux.fm-polish .purpose p:not(.eyebrow),.fm-ux.fm-polish .skills-opening p:not(.eyebrow),
  .fm-ux.fm-polish .skills-observation p,.fm-ux.fm-polish .skills-observation li,
  .fm-ux.fm-polish .skills-next p,.fm-ux.fm-polish .kits-heading p:not(.eyebrow),
  .fm-ux.fm-polish .schools p.school-lead,.fm-ux.fm-polish .instagram-heading p:not(.eyebrow){font-size:19px}
  .fm-ux.fm-polish .workshop-modalities .modalities-heading{font-size:22px}
  .fm-ux.fm-polish .eyebrow,.fm-ux.fm-polish .hero-kicker{font-size:12px}
  .fm-ux.fm-polish footer,.fm-ux.fm-polish .footer-links :is(a,button){font-size:15px}
}

/* Gentle, distinct motion for the yellow and turquoise brand characters. */
@media(prefers-reduced-motion:no-preference){
 .fm-ux.fm-polish img[src="/assets/imagina.svg"]{animation:imagina-sway 6s ease-in-out infinite;transform-origin:50% 85%}
 .fm-ux.fm-polish img[src="/assets/crea.svg"]{animation:crea-bob 5.4s ease-in-out infinite;transform-origin:50% 85%}
}
@keyframes imagina-sway{
 0%,100%{transform:translateY(0) rotate(-3deg)}
 50%{transform:translateY(-7px) rotate(4deg)}
}
@keyframes crea-bob{
 0%,100%{transform:translateY(0) rotate(2deg)}
 50%{transform:translateY(-8px) rotate(-3deg)}
}

/* A larger animated brand character and generous room for reading. */
.fm-ux.fm-polish #events-footer .text-button{font-size:20px;font-weight:700;line-height:1.5;min-height:48px;max-width:100%}
.fm-ux.fm-polish .hero-art .maker-character{width:150px;height:auto;right:-8px;bottom:0}
.fm-ux.fm-polish .hero-art.hero-photography{padding-bottom:120px}
.fm-ux.fm-polish .workshop-story h3{font-size:36px}
.fm-ux.fm-polish .school-offer h3{font-size:34px}
.fm-ux.fm-polish .kits-heading h3{font-size:38px}
.fm-ux.fm-polish .about-intro h3{font-size:clamp(38px,3.8vw,51px)}
.fm-ux.fm-polish .purpose h3{font-size:38px}
.fm-ux.fm-polish .method-heading h3,.fm-ux.fm-polish .skills-section-heading h3{font-size:40px}
.fm-ux.fm-polish .skills-opening h3{font-size:44px}
@media(max-width:760px){
 .fm-ux.fm-polish .header-purpose{font-size:16px}
 .fm-ux.fm-polish .section-nav a{font-size:14px;padding-inline:2px}
 .fm-ux.fm-polish .hero-art .maker-character{width:110px;right:-4px;bottom:0}
 .fm-ux.fm-polish .hero-art.hero-photography{padding-bottom:100px}
 .fm-ux.fm-polish .workshop-story h3,.fm-ux.fm-polish .school-offer h3{font-size:32px}
 .fm-ux.fm-polish .kits-heading h3,.fm-ux.fm-polish .purpose h3{font-size:34px}
 .fm-ux.fm-polish .about-intro h3,.fm-ux.fm-polish .skills-opening h3{font-size:36px}
 .fm-ux.fm-polish .method-heading h3,.fm-ux.fm-polish .skills-section-heading h3{font-size:34px}
 .fm-ux.fm-polish .skill-card h3{font-size:30px;overflow-wrap:anywhere}
}

/* About: comfortable reading and complete cards on small screens. */
@media(max-width:760px){
 html:has(body.fm-ux.fm-polish .about-heading){scroll-padding-top:16px}
 .fm-ux.fm-polish:has(.about-heading) .site-header{position:static}
 .fm-ux.fm-polish .section-heading.about-heading{gap:18px;margin-bottom:28px}
 .fm-ux.fm-polish .section-heading.about-heading h2{font-size:clamp(34px,9vw,40px);line-height:1.15}
 .fm-ux.fm-polish .section-heading.about-heading #explore-intro{white-space:normal;text-wrap:pretty;overflow:visible;font-size:20px;line-height:1.6}
 .fm-ux.fm-polish .about-heading .eyebrow,
 .fm-ux.fm-polish #about-panel .eyebrow{white-space:normal;font-size:12px;line-height:1.6;letter-spacing:.08em}
 .fm-ux.fm-polish #about-panel :is(div,article,figure,li){min-width:0}
 .fm-ux.fm-polish .about-intro{margin:0 0 36px;gap:24px}
 .fm-ux.fm-polish .about-intro h3,
 .fm-ux.fm-polish .skills-opening h3,
 .fm-ux.fm-polish .method-heading h3,
 .fm-ux.fm-polish .skills-section-heading h3{font-size:clamp(30px,8.2vw,36px);line-height:1.2;letter-spacing:-.8px}
 .fm-ux.fm-polish .about-intro p:not(.eyebrow),
 .fm-ux.fm-polish .purpose p:not(.eyebrow),
 .fm-ux.fm-polish .skills-opening p:not(.eyebrow),
 .fm-ux.fm-polish .skills-observation p,
 .fm-ux.fm-polish .skills-observation li,
 .fm-ux.fm-polish .skills-next p{line-height:1.7}
 .fm-ux.fm-polish #about-panel .text-button{font-size:17px;line-height:1.5;min-height:48px;padding-block:10px;max-width:100%;white-space:normal}
 .fm-ux.fm-polish .about-intro figure{max-width:none}
 .fm-ux.fm-polish .about-intro figure img{transform:none;height:clamp(240px,82vw,340px);border-radius:20px}
 .fm-ux.fm-polish .about-intro figcaption{font-size:14px;line-height:1.6;margin-top:12px}
 .fm-ux.fm-polish .purpose{display:block;position:relative;padding:24px 22px;margin-bottom:28px}
 .fm-ux.fm-polish .purpose>span{position:absolute;right:18px;top:20px;font-size:32px}
 .fm-ux.fm-polish .purpose .eyebrow{padding-right:36px}
 .fm-ux.fm-polish .purpose h3{font-size:clamp(26px,7.2vw,32px);line-height:1.2;overflow-wrap:break-word}
 .fm-ux.fm-polish .value-grid{grid-template-columns:minmax(0,1fr);gap:14px;margin-bottom:36px}
 .fm-ux.fm-polish .value-grid article{padding:22px}
 .fm-ux.fm-polish .value-grid h4{font-size:24px;margin-top:14px}
 .fm-ux.fm-polish .value-grid p{font-size:18px;line-height:1.7}
 .fm-ux.fm-polish .method-grid{grid-template-columns:minmax(0,1fr);gap:14px;margin-bottom:32px}
 .fm-ux.fm-polish .method-grid li{display:grid;grid-template-columns:56px minmax(0,1fr);gap:8px 14px;text-align:left;padding:20px;border-color:var(--soft-edge);border-width:1px;box-shadow:var(--soft-shadow)}
 .fm-ux.fm-polish .method-grid li:last-child{grid-column:auto;width:auto;justify-self:stretch}
 .fm-ux.fm-polish .method-grid img{grid-row:1/3;align-self:center;width:56px;height:74px;margin:0}
 .fm-ux.fm-polish .method-grid h4{font-size:21px;line-height:1.3;margin:0;align-self:end;overflow-wrap:break-word}
 .fm-ux.fm-polish .method-grid p{font-size:18px;line-height:1.65}
 .fm-ux.fm-polish .impact{padding:24px 22px;gap:24px}
 .fm-ux.fm-polish .impact p{font-size:20px;line-height:1.7}
 .fm-ux.fm-polish .skills-manifesto{transform:none;max-width:100%;padding:24px 20px;border-radius:24px}
 .fm-ux.fm-polish .skills-manifesto>span{font-size:12px;line-height:1.6;white-space:normal}
 .fm-ux.fm-polish .skills-opening .skills-manifesto p{font-size:22px;line-height:1.5}
 .fm-ux.fm-polish .skills-grid{grid-template-columns:minmax(0,1fr);gap:20px}
 .fm-ux.fm-polish .skill-card{padding:24px 22px}
 .fm-ux.fm-polish .skill-card>p:not(.skill-question){line-height:1.7;min-height:0}
 .fm-ux.fm-polish .skill-top>span{font-size:12px;line-height:1.6}
 .fm-ux.fm-polish .skills-observation{padding:26px 22px;gap:24px}
 .fm-ux.fm-polish .skills-next{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;padding:24px 22px}
 .fm-ux.fm-polish .skills-next img{width:64px;height:78px}
 .fm-ux.fm-polish .skills-next>div{min-width:0}
 .fm-ux.fm-polish .skills-next h3{font-size:28px;line-height:1.2}
 .fm-ux.fm-polish .skills-next .button{margin:0;width:100%;max-width:100%;min-width:0;min-height:48px;padding:14px 16px;gap:12px;white-space:normal;justify-content:space-between;line-height:1.5}
}
