/* OxAIMS visual system: Oxford ink, warm paper and Oxtopus coral. */
:root {
 --bg:#f8f6f1;
 --panel:#f0eee7;
 --panel-alt:#ebe7de;
 --text:#142d3b;
 --muted:#53636a;
 --accent:#a54129;
 --orange:#fa774d;
 --line:#16324026;
 --display:var(--font);
 --gutter:max(5.5%,calc((100% - 1240px)/2));
 --leading:1.75;
 --space:0;
 --word:0;
}
html { scroll-padding-top:104px; }
body { font-size:17px; background:var(--bg); }
h1,h2 { font-family:var(--display); font-weight:500; letter-spacing:-.025em; line-height:1.15; }
h1 { font-size:clamp(44px,5.2vw,68px); }
h2 { font-size:clamp(30px,3.3vw,42px); }
h3 { font-size:24px; line-height:1.35; letter-spacing:-.015em; }
em { font-style:normal; }
.section-shell { padding:90px var(--gutter); }
.section-heading { margin-bottom:42px; gap:48px; }
.section-heading>p { font-size:16px; line-height:1.75; max-width:31ch; }
.eyebrow,.page-folio { font-size:12px; font-weight:500; line-height:1.6; letter-spacing:.14em; text-transform:uppercase; }
.eyebrow { text-transform:none; letter-spacing:.035em; display:flex; align-items:center; gap:10px; margin-bottom:18px; }
.eyebrow::before { content:''; width:19px; height:1px; background:var(--orange); flex-shrink:0; }
.site-header {
 height:88px; padding:0 var(--gutter); background:#f8f6f1f2;
 color:#142d3b; border-bottom:1px solid #1632401c;
 --text:#142d3b; --muted:#53636a; --accent:#a54129; --bg:#f8f6f1; --line:#16324026;
 backdrop-filter:blur(20px);
}
.brand { gap:12px; }
.brand img { width:46px; height:46px; border-radius:10px; }
.brand>span { font-family:var(--font); font-size:28px; font-weight:600; letter-spacing:-.8px; line-height:1.1; }
.brand small { display:block; margin-top:5px; font:10px/1.4 var(--font); letter-spacing:.035em; color:#66747b; }
#navigation { gap:27px; font-size:14px; }
#navigation>a:not(.nav-cta) { position:relative; padding:12px 0; }
#navigation>a:not(.nav-cta)::after { content:''; position:absolute; height:2px; background:var(--orange); left:0; right:100%; bottom:4px; transition:right .2s; }
#navigation>a:hover::after,#navigation>a[aria-current]::after { right:0; }
#navigation>.nav-cta { display:inline-flex; align-items:center; padding:11px 17px; border:1px solid #142d3b; border-radius:6px; background:#142d3b; color:#fff7ed; }
#navigation>.nav-cta:hover { background:#284755; color:#fff; }
.nav-cta>span { margin-left:13px; color:#ffa47e; }
.button { min-height:51px; border-radius:6px; padding:14px 22px; font-size:14px; font-weight:500; gap:28px; transition:background .2s,transform .2s,box-shadow .2s; }
.primary { background:var(--orange); border-color:var(--orange); color:#142d3b; box-shadow:0 3px 0 #071b2a08; }
.primary:hover { background:#ff946e; border-color:#ff946e; transform:translateY(-2px); box-shadow:0 7px 18px #0b283416; }
.text-link { gap:14px; font-size:15px; font-weight:500; padding-bottom:5px; border-bottom:1px solid #a5412940; }
.text-link:hover { border-color:var(--orange); }
.hero {
 --text:#f6f2e8; --muted:#b8c8cd; --accent:#ffa17b;
 grid-template-columns:1.08fr 1fr; gap:5%; align-items:start;
 padding-top:66px; padding-bottom:46px;
 background:radial-gradient(ellipse at 85% 25%,#21414b80,transparent 50%),#0c2534;
 border-bottom:0; position:relative;
}
.hero-copy { padding-top:22px; }
.hero h1 { font-size:clamp(48px,5.5vw,76px); line-height:1.08; letter-spacing:-.035em; margin-bottom:32px; }
.hero .eyebrow { color:#d4dcd8; margin-bottom:30px; }
.hero-description { max-width:30ch; font-size:20px; line-height:1.7; }
.hero .welcome { display:flex; align-items:center; gap:10px; color:#c3d0d0; font-size:14px; margin-top:23px; }
.hero .welcome>span { width:5px; height:5px; border-radius:50%; background:#fa774d; flex-shrink:0; }
.hero-actions { margin-top:36px; gap:27px; }
.hero-actions .text-link { color:#f1e9df; border-color:#f1e9df40; }
.model-scroll-space { --scroll-distance:125px; }
.model-scroll-space.scroll-enabled>.maker-model { top:112px; }
.model-stage { height:440px; border:1px solid #accccf24; border-radius:160px 160px 16px 16px; background:radial-gradient(ellipse at 50% 65%,#38677330,transparent 65%); }
.model-landmark { opacity:.2; color:#b3c8ca; }
.model-halo { opacity:.7; }
.model-caption { display:flex; justify-content:space-between; gap:15px; padding:20px 6px 0; color:#b7c6cb; font-size:12px; letter-spacing:.025em; }
.model-caption>span:last-child { color:#e2a88b; }
.launch-strip { padding:20px var(--gutter); background:#e9e7df; border-top:0; border-bottom:1px solid #17334618; font-size:13px; }
.launch-strip>a { color:#283f4a; font-size:13px; }
.page-hero {
 position:relative; overflow:hidden; padding-top:60px; padding-bottom:70px;
 background:radial-gradient(ellipse at 84% 55%,#f4d6c55c,transparent 44%),#f3f0e9;
 border-bottom:1px solid #17334618;
}
.page-folio { color:#788486; font-size:10px; margin-bottom:40px; }
.page-hero>p.page-folio,.oxford-page-hero>div>p.page-folio { font-size:10px; line-height:1.6; letter-spacing:.14em; }
.page-hero .eyebrow { margin-bottom:19px; }
.page-hero h1 { margin-bottom:27px; font-size:clamp(44px,5.2vw,68px); max-width:22ch; }
.page-hero>p:not(.eyebrow):not(.page-folio),.oxford-page-hero>div>p:not(.eyebrow):not(.page-folio) { font-size:18px; line-height:1.75; max-width:45ch; }
.oxford-page-hero { grid-template-columns:1.25fr .75fr; gap:6%; border-bottom:1px solid #17334618; }
.page-landmark { width:105%; margin-left:0; max-height:310px; opacity:.9; color:#53717a; }
.projects { background:#f8f6f1; }
.project-branches { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.project-card { padding:0; border:1px solid #16324020; border-radius:14px; overflow:hidden; background:#fffdf8; box-shadow:0 8px 24px #1f384305; display:flex; flex-direction:column; }
.branch-art { background:#102b3a; overflow:hidden; }
.branch-art img { display:block; width:100%; height:205px; object-fit:contain; }
.branch-body { padding:27px 30px 28px; display:flex; flex-direction:column; flex:1; }
.branch-meta { display:flex; justify-content:space-between; align-items:center; gap:15px; margin-bottom:21px; color:#6b7678; font-size:11px; text-transform:uppercase; letter-spacing:.09em; }
.branch-meta>span:first-child { color:#b45135; font-size:12px; letter-spacing:0; }
.project-card h3 { font-size:23px; font-weight:500; line-height:1.35; min-height:63px; margin-bottom:12px; letter-spacing:-.02em; }
.project-card p { font-size:16px; line-height:1.75; max-width:44ch; margin:0 0 27px; }
.branch-link { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-top:auto; padding-top:20px; border-top:1px solid #16324018; font-size:13px; font-weight:500; color:#8e3b27; }
.branch-link>span { display:flex; align-items:center; justify-content:center; width:28px; height:28px; background:#f5e6da; border-radius:50%; color:#a94329; transition:background .2s,transform .2s; }
.branch-link:hover>span { background:#ffc6aa; transform:translate(2px,-2px); }
.programme { background:#f8f6f1; }
.event-cards { gap:22px; counter-reset:events; }
.event-card { position:relative; padding:35px 34px 32px; background:#f1eee6; border:1px solid #16324013; border-radius:12px; }
.event-card .event-timing { font-size:11px; letter-spacing:.06em; color:#7f4a37; padding-right:44px; margin-bottom:27px; }
.event-number { position:absolute; top:28px; right:27px; font:500 24px/1 var(--display); color:#a380694f; }
.event-card h3 { font-size:24px; font-weight:500; margin-bottom:14px; }
.event-card p { font-size:16px; line-height:1.8; max-width:45ch; }
.event-list { background:var(--bg); padding-top:75px; }
.sponsor-teaser { background:#112d3c; color:#f8f2e9; --text:#f8f2e9; --muted:#b6c7cd; --accent:#ffad86; --line:#b6c7cd30; }
.sponsor-teaser h2 { font-size:clamp(32px,3.5vw,44px); max-width:12ch; }
.sponsor-teaser .text-link { display:inline-flex; color:#ffd0b5; margin-top:28px; border-color:#ffd0b540; }
.funding-list { border:0; font-size:16px; }
.funding-list li { padding:20px 0 20px 28px; }
.funding-list li:before { font-size:18px; }
.first-build { background:#eee9df; border-top:0; }
.build-picker { border:1px solid #16324026; border-radius:14px; overflow:hidden; grid-template-columns:.85fr 1.15fr; box-shadow:0 12px 35px #142d3b06; }
.build-picker-controls { background:#f5f1e9; padding:38px; }
.build-picker-controls label { font-size:16px; font-weight:500; margin-bottom:20px; }
.build-picker-controls select { min-height:53px; background:#fffcf7; border:1px solid #52656b50; border-radius:6px; font-size:15px; }
.build-picker-controls .idea-next { border-color:#c7afa0; background:#fffaf2; font-size:13px; margin-top:22px; }
.build-picker-controls>p { margin-top:28px; color:#647177; font-size:12px; }
.build-idea { padding:38px; background:#fffdf8; }
.build-idea .idea-label { font-size:11px; letter-spacing:.04em; margin-bottom:23px; }
.build-idea h3 { font-family:var(--display); font-size:28px; font-weight:500; line-height:1.2; margin-bottom:20px; }
.build-idea>p:not(.idea-label) { font-size:16px; }
.build-idea .idea-test { margin:25px 0; padding-top:22px; }
.idea-test strong { font-size:11px; letter-spacing:.07em; text-transform:uppercase; margin-bottom:11px; }
.faq { background:#f8f6f1; }
.faq h2 { max-width:12ch; }
.faq details,.support-accordion details { padding:25px 0; }
.faq details>summary,.support-accordion details>summary { font-size:17px; font-weight:400; }
.faq details p,.support-accordion details p { font-size:16px; }
.closing { position:relative; padding-top:65px; padding-bottom:65px; background:#eee5d9; border-top:1px solid #c2a78d30; }
.closing h2 { font-size:clamp(30px,3.3vw,42px); }
.closing p { font-size:16px; margin-top:15px; }
.closing .button { background:#142d3b; border-color:#142d3b; color:#fff5e8; }
.closing .button:hover { background:#284755; }
.oxford-band { height:230px; background:#102b3a; border-top:0; }
.oxford-band>.oxford-art { opacity:.7; color:#a2b8ba; height:calc(100% - 14px); }
.oxford-band>span { bottom:18px; left:var(--gutter); font-size:11px; letter-spacing:.06em; background:#102b3ae8; color:#b3c6cb; }
.site-footer { flex-wrap:wrap; padding:46px var(--gutter); background:#0c2534; --text:#f2ece1; --muted:#b6c7cd; --accent:#ffa17b; border-top:1px solid #b6c7cd20; }
.footer-brand { font-family:var(--font); font-size:30px; font-weight:600; letter-spacing:-.025em; }
.footer-brand>span { font-size:12px; max-width:24ch; }
.footer-identity { display:flex; flex-direction:column; align-items:flex-start; gap:18px; }
.footer-socials { display:flex; flex:0 0 100%; justify-content:center; align-items:center; gap:16px; }
@media(max-width:760px) { .footer-socials { margin-top:32px; } }
.footer-socials a { display:inline-flex; align-items:center; justify-content:center; width:56px; height:56px; color:#fff; border-radius:6px; }
.footer-socials a:hover { color:var(--accent); background:#ffffff08; }
.footer-socials a:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.footer-socials svg { display:block; width:44px; height:44px; stroke-width:2; }

.site-footer nav { gap:13px 38px; font-size:13px; }
.site-footer>p { font-size:11px; line-height:1.9; }
.tinted { background:#f0ede6; }
.benefit-list { gap:32px; }
.benefit-list article { padding:28px 0; border-top:1px solid var(--line); }
.benefit-list h3 { font-size:23px; font-weight:500; }
.benefit-list article>span { font:500 24px/1.2 var(--display); color:#b36d4e; }
.benefit-list p { font-size:16px; }
.compact-copy { max-width:none; background:#fbf9f4; }
.compact-copy h2 { max-width:18ch; }
.compact-copy>p { max-width:70ch; font-size:17px; }
.maker-pathway { background:#ede8dd; }
.pathway-heading h2 { font-size:34px; }
.pathway-heading p:last-child { font-size:16px; }
.pathway-steps { gap:36px; }
.pathway-steps li { border-top:1px solid #ac806560; padding-top:25px; }
.pathway-steps h3 { font-size:23px; font-weight:500; }
.pathway-steps li>span { font-size:11px; letter-spacing:.09em; }
.pathway-note { border-color:#16324020; font-size:13px; }
.team-overview { grid-template-columns:1.4fr .6fr; align-items:stretch; gap:30px; }
.announcement { padding:42px; border:1px solid #16324020; border-radius:12px; background:#fffdf8; }
.announcement h3 { font-family:var(--display); font-size:30px; font-weight:500; line-height:1.2; margin-bottom:20px; }
.announcement p:not(.eyebrow) { font-size:16px; max-width:45ch; }
.team-mascot { padding:28px; border:1px solid #dcbba64d; border-radius:12px; background:radial-gradient(ellipse at 50% 20%,#ffddc2,#f0e5d7 80%); }
.team-mascot img { width:185px; margin-bottom:14px; filter:drop-shadow(0 10px 9px #a8663820); }
.team-mascot h3 { font-family:var(--display); font-size:27px; font-weight:500; }
.team-mascot p { font-size:12px; letter-spacing:.04em; }
.involvement-list { gap:36px; }
.involvement-list h3 { font-size:22px; font-weight:500; }
.involvement-list p { font-size:16px; }
.join-layout { gap:10%; }
.join-intro h2 { font-family:var(--display); font-size:42px; max-width:18ch; }
.join-intro p { font-size:16px; }
.join-intro .small-copy { font-size:13px; }
.join-steps>span { font-size:13px; padding:18px 0; }
.signup-panel { border:1px solid #16324028; border-radius:14px; background:#fffdf8; box-shadow:0 14px 45px #142d3b08; padding:38px; }
.form-field label,.interest-options legend { font-size:14px; }
.form-field label>span,.interest-options legend>span { font-size:12px; }
.form-field input { border:1px solid #53666e59; border-radius:5px; padding:13px 14px; font-size:16px; background:#fffefa; }
.form-field { margin-bottom:25px; }
.interest-options label { font-size:14px; }
.interest-options input,.consent input { accent-color:#ac472d; }
.consent { font-size:13px; }
.form-privacy { font-size:12px; }
.signup-panel .button { width:100%; }
.signup-success h2 { font-family:var(--display); font-size:38px; }
.contact-grid { gap:10%; }
.contact-grid article { padding:36px; border:1px solid #16324020; border-radius:12px; background:#fffdf8; min-width:0; }
.contact-grid h2 { font-family:var(--display); font-size:30px; }
.contact-email { font-size:clamp(16px,1.65vw,22px); letter-spacing:-.02em; }
.contact-grid p { font-size:15px; }
@media(min-width:1200px) {
 .index-page .project-branches { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
 .index-page .branch-art img { height:150px; }
 .index-page .branch-body { padding:23px 23px 24px; }
 .index-page .project-card h3 { font-size:23px; min-height:63px; }
 .index-page .project-card p { font-size:15px; }
 .index-page .branch-meta>span:last-child { font-size:9px; letter-spacing:.04em; }
}
@media(max-width:1100px) {
 #navigation { gap:18px; }
 .brand small { display:none; }
 .hero h1 { font-size:58px; }
 .model-stage { height:390px; }
 .hero { gap:4%; }
 .branch-art img { height:180px; }
}
@media(max-width:1000px) {
 :root { --gutter:6%; }
 .site-header { height:78px; gap:15px; }
 .menu-toggle { color:#142d3b; border-color:#142d3b30; border-radius:6px; font-size:13px; gap:16px; }
 #navigation { top:77px; background:#f8f6f1; padding:15px 6% 23px; box-shadow:0 18px 25px #142d3b0d; }
 #navigation>a:not(.nav-cta) { padding:15px 0; font-size:16px; border-bottom:1px solid #16324013; }
 #navigation>a:not(.nav-cta)::after { display:none; }
 #navigation>.nav-cta { justify-content:space-between; padding:13px 17px; margin-top:16px; }
 .section-shell { padding-top:70px; padding-bottom:70px; }
 .hero { padding-top:48px; padding-bottom:32px; }
 .hero h1 { font-size:52px; }
 .hero-description { font-size:18px; }
 .hero-copy { padding-top:12px; }
 .model-stage { height:360px; }
 .model-scroll-space { --scroll-distance:95px; }
 .page-hero { padding-top:48px; padding-bottom:56px; }
 .page-hero h1 { font-size:54px; }
 .page-folio { margin-bottom:32px; }
 .section-heading { gap:30px; }
 .branch-body { padding:24px; }
 .project-branches { grid-template-columns:1fr; max-width:670px; margin-inline:auto; }
 .project-card h3 { min-height:0; }
 .event-card { padding:30px 27px; }
 .contact-grid { gap:24px; }
 .contact-grid article { padding:28px; }
}
@media(max-width:760px) {
 .hero { grid-template-columns:1fr; gap:38px; }
 .hero h1 { font-size:clamp(46px,7.5vw,60px); }
 .hero-description { max-width:39ch; }
 .hero-copy { max-width:none; }
 .hero-actions { margin-top:30px; }
 .model-scroll-space { width:100%; max-width:560px; margin:auto; --scroll-distance:65px; }
 .model-stage { height:350px; border-radius:120px 120px 12px 12px; }
 .model-caption { padding-top:14px; font-size:11px; }
 .oxford-page-hero { grid-template-columns:1fr; }
 .page-landmark { display:none; }
 .page-hero h1 { font-size:50px; }
 .page-hero>p:not(.eyebrow):not(.page-folio),.oxford-page-hero>div>p:not(.eyebrow):not(.page-folio) { font-size:18px; }
 .section-heading { align-items:start; }
 .section-heading>p { font-size:14px; }
 .project-card h3 { font-size:21px; }
 .branch-art img { height:160px; }
 .branch-body { padding:22px; }
 .project-card p { font-size:15px; }
 .branch-meta>span:last-child { font-size:9px; letter-spacing:.04em; }
 .team-overview { grid-template-columns:1.25fr .75fr; gap:20px; }
 .announcement { padding:30px; }
 .announcement h3 { font-size:28px; }
 .team-mascot { padding:24px 16px; }
 .signup-panel { padding:30px; }
 .join-intro h2 { font-size:39px; }
 .contact-grid article+article { border-top:1px solid #16324020; padding-top:28px; }
 .oxford-band { height:165px; }
 .site-footer { padding-top:38px; padding-bottom:38px; }
}
@media(max-width:600px) {
 .section-shell { padding-top:56px; padding-bottom:56px; }
 h2 { font-size:32px; }
 .site-header { height:76px; }
 .brand { gap:10px; }
 .brand img { width:41px; height:41px; border-radius:9px; }
 .brand>span { font-size:28px; }
 .menu-toggle { padding:9px 12px; }
 #navigation { top:75px; }
 .eyebrow { font-size:11px; letter-spacing:.035em; margin-bottom:17px; }
 .hero { padding-top:44px; padding-bottom:32px; gap:34px; }
 .hero h1 { font-size:clamp(42px,10.8vw,58px); margin-bottom:26px; }
 .hero .eyebrow { margin-bottom:26px; }
 .hero-description { font-size:18px; }
 .hero .welcome { font-size:12px; gap:8px; margin-top:20px; }
 .hero-actions { gap:22px; }
 .hero-actions .button { font-size:13px; padding:14px 17px; }
 .hero-actions .text-link { font-size:13px; }
 .model-stage { height:315px; }
 .model-scroll-space { --scroll-distance:50px; }
 .model-orbit { scale:.84; }
 .model-landmark { width:300px; height:325px; }
 .model-caption { font-size:10px; }
 .launch-strip { flex-wrap:wrap; gap:10px; padding-top:17px; padding-bottom:17px; font-size:12px; }
 .launch-strip p { flex:1; }
 .launch-strip>a { margin-left:15px; font-size:12px; }
 .page-hero { padding-top:35px; padding-bottom:45px; }
 .page-folio { font-size:9px; margin-bottom:30px; }
 .page-hero h1 { font-size:clamp(40px,10vw,54px); margin-bottom:24px; }
 .page-hero>p:not(.eyebrow):not(.page-folio),.oxford-page-hero>div>p:not(.eyebrow):not(.page-folio) { font-size:17px; }
 .section-heading { flex-direction:column; gap:19px; margin-bottom:30px; }
 .section-heading>p { max-width:40ch; }
 .project-branches,.event-cards { grid-template-columns:1fr; gap:20px; }
 .branch-art img { height:180px; }
 .branch-body { padding:25px; }
 .branch-meta { margin-bottom:20px; }
 .branch-meta>span:last-child { font-size:10px; }
 .project-card h3 { font-size:23px; }
 .project-card p { font-size:16px; }
 .event-card { padding:30px 26px; }
 .event-card h3 { font-size:24px; }
 .event-card .event-timing { font-size:10px; margin-bottom:24px; }
 .event-card p { font-size:16px; }
 .event-number { right:24px; }
 .sponsor-teaser { gap:38px; }
 .sponsor-teaser h2 { font-size:34px; }
 .funding-list { font-size:15px; }
 .build-picker { grid-template-columns:1fr; }
 .build-picker-controls,.build-idea { padding:27px; }
 .build-picker-controls { border-bottom:1px solid #16324020; }
 .build-picker-controls label { font-size:15px; }
 .build-picker-controls select { font-size:16px; }
 .build-idea h3 { font-size:30px; }
 .faq { gap:28px; }
 .faq h2 { max-width:18ch; }
 .faq details>summary,.support-accordion details>summary { font-size:16px; }
 .closing { align-items:flex-start; padding-top:45px; padding-bottom:45px; gap:27px; }
 .closing h2 { font-size:32px; }
 .closing p { font-size:15px; }
 .oxford-band { height:150px; }
 .oxford-band>span { font-size:9px; }
 .footer-brand { font-size:30px; }
 .site-footer { gap:30px; }
 .site-footer nav { font-size:13px; gap:16px 30px; }
 .site-footer>p { margin-top:5px; font-size:11px; }
 .team-overview { grid-template-columns:1fr; }
 .announcement { padding:29px; }
 .announcement h3 { font-size:28px; }
 .team-mascot { flex-direction:row; text-align:left; justify-content:flex-start; gap:24px; padding:24px; }
 .team-mascot img { width:125px; max-width:45%; margin:0; }
 .team-mascot h3 { font-size:29px; }
 .team-mascot p { font-size:12px; }
 .pathway-heading h2 { font-size:34px; }
 .pathway-steps { grid-template-columns:1fr; gap:28px; }
 .pathway-steps h3 { font-size:23px; }
 .signup-panel { padding:28px 24px; box-shadow:0 12px 35px #142d3b06; }
 .join-intro h2 { font-size:37px; }
 .contact-grid article { padding:29px 25px; }
 .contact-grid h2 { font-size:28px; }
 .contact-email { font-size:clamp(16px,4.8vw,22px); }
 .benefit-list article { padding:27px 0; }
}
@media(prefers-reduced-motion:reduce) { .button,.branch-link>span,#navigation>a::after { transition:none; } }
@media print { .branch-art { display:none; } .site-header,.model-caption { display:none; } .section-shell { padding:24pt 0; } }

/* Activity and partnership illustrations share the Projects visual vocabulary. */
:is(.index-page,.events-page) .event-card { display:flex; flex-direction:column; padding:0; overflow:hidden; background:#fffdf8; border:1px solid #16324020; border-radius:14px; box-shadow:0 8px 24px #1f384305; }
.event-illustration,.partner-illustration { background:#102b3a; overflow:hidden; }
.event-illustration img,.partner-illustration img { display:block; width:100%; height:205px; object-fit:contain; }
.event-body { position:relative; padding:31px 32px 32px; flex:1; }
:is(.index-page,.events-page) .event-number { top:27px; right:28px; color:#a3806966; }
:is(.index-page,.events-page) .event-card .event-timing { margin-bottom:24px; }
:is(.index-page,.events-page) .event-card h3 { font-size:24px; }
:is(.index-page,.events-page) .event-card p:not(.event-timing) { font-size:16px; }
.partnership-hero { display:grid; grid-template-columns:1.1fr .9fr; gap:6%; align-items:center; }
.partnership-hero-copy { min-width:0; }
.partnership-hero .page-folio { font-size:10px; line-height:1.6; letter-spacing:.14em; }
.partnership-hero h1 { font-size:clamp(44px,4.6vw,64px); }
.partnership-hero-copy>p:not(.eyebrow):not(.page-folio) { font-size:18px; line-height:1.75; max-width:39ch; }
.partnership-hero-art { min-width:0; padding-top:12px; }
.partnership-hero-art img { display:block; width:100%; height:auto; border-radius:150px 150px 14px 14px; border:1px solid #16324018; background:#102b3a; box-shadow:0 12px 35px #142d3b0a; }
.partnership-hero-art figcaption { margin-top:17px; font-size:11px; letter-spacing:.04em; color:#68777b; text-align:center; }
.sponsorship-page .benefit-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; max-width:none; border:0; }
.sponsorship-page .benefit-list article { display:flex; flex-direction:column; gap:0; padding:0; min-width:0; border:1px solid #16324020; border-radius:14px; background:#fffdf8; overflow:hidden; box-shadow:0 8px 24px #1f384305; }
.partner-illustration img { height:165px; }
.partner-body { padding:27px 28px 30px; flex:1; }
.benefit-index { display:block; font-size:12px; color:#b45135; margin-bottom:20px; }
.sponsorship-page .benefit-list h3 { font-size:23px; min-height:63px; margin-bottom:15px; }
.sponsorship-page .benefit-list p { font-size:16px; line-height:1.75; }
@media(max-width:1100px) {
 .event-illustration img { height:185px; }
 .partnership-hero { gap:5%; grid-template-columns:1.15fr .85fr; }
 .partnership-hero h1 { font-size:52px; }
 .partner-body { padding:25px 23px; }
 .sponsorship-page .benefit-list h3 { font-size:21px; }
}
@media(max-width:900px) {
 .partnership-hero { grid-template-columns:1fr; gap:38px; }
 .partnership-hero h1 { font-size:54px; }
 .partnership-hero-copy>p:not(.eyebrow):not(.page-folio) { max-width:47ch; }
 .partnership-hero-art { max-width:480px; width:100%; margin-inline:auto; padding-top:0; }
 .sponsorship-page .benefit-list { grid-template-columns:1fr; max-width:670px; margin-inline:auto; }
 .partner-illustration img { height:190px; }
 .sponsorship-page .benefit-list h3 { min-height:0; font-size:24px; }
 .partner-body { padding:28px 30px 31px; }
}
@media(max-width:600px) {
 .event-illustration img { height:180px; }
 .event-body { padding:28px 26px 30px; }
 :is(.index-page,.events-page) .event-number { top:25px; right:24px; }
 :is(.index-page,.events-page) .event-card .event-timing { margin-bottom:24px; }
 .partnership-hero { gap:32px; }
 .partnership-hero h1 { font-size:clamp(40px,10vw,54px); }
 .partnership-hero-copy>p:not(.eyebrow):not(.page-folio) { font-size:17px; }
 .partnership-hero-art { max-width:390px; }
 .partnership-hero-art img { border-radius:100px 100px 12px 12px; }
 .partnership-hero-art figcaption { font-size:10px; margin-top:13px; }
 .partner-illustration img { height:170px; }
 .partner-body { padding:25px 26px 29px; }
 .sponsorship-page .benefit-list h3 { font-size:23px; }
 .benefit-index { margin-bottom:17px; }
}
@media print { .event-illustration,.partner-illustration,.partnership-hero-art { display:none; } .partnership-hero { display:block; } }

/* Architectural Renaissance: honed stone, inset edges and quiet proportions. */
:root { --bg:#f7f5f0; --panel:#eeebe3; --line:#b8b1a04d; }
.site-header { background:#f7f5f0f5; border-bottom-color:#b8b1a04d; }
.hero {
 --text:#142d3b; --muted:#53636a; --accent:#a54129;
 background:#f1eee7; grid-template-columns:1.06fr 1fr; align-items:center;
 gap:7%; padding-top:48px; padding-bottom:38px; overflow:hidden;
}
.hero-copy { padding-top:0; padding-bottom:35px; }
.hero .eyebrow { color:#64716e; font-size:12px; letter-spacing:.06em; margin-bottom:38px; }
.hero h1 { font-size:clamp(48px,5.35vw,76px); line-height:1.07; letter-spacing:-.045em; font-weight:400; margin-bottom:30px; }
.hero-stop { color:#bf684b; }
.hero-description { font-size:19px; line-height:1.75; max-width:36ch; color:#53636a; }
.hero .welcome { color:#53636a; margin-top:22px; font-size:13px; }
.hero-actions { gap:26px; margin-top:35px; }
.hero-actions .primary { background:#173342; border-color:#173342; color:#fffaf0; }
.hero-actions .primary>span { color:#ffa47e; }
.hero-actions .primary:hover { background:#294956; }
.hero-actions .text-link { color:#283e47; border-color:#a99e8b6b; font-size:13px; }
/* The original interactive maker model, framed in the new stone and ink palette. */
.hero { align-items:start; }
.hero-copy { padding-top:44px; }
.model-scroll-space { --scroll-distance:125px; padding-top:3px; }
.model-stage {
 height:490px; border-radius:220px 220px 4px 4px;
 border:1px solid #897e6870;
 background:radial-gradient(ellipse at 50% 65%,#2c4d574d,transparent 70%),#102b3a;
 box-shadow:0 12px 30px -24px #554e40,inset 0 0 0 7px #e8e2d61a;
}
.model-landmark { color:#d8d0bb; opacity:.2; }
.model-halo { opacity:.6; }
.model-caption { color:#6c716c; font-size:11px; letter-spacing:.025em; padding:16px 4px 0; }
.model-caption>span:last-child { color:#a5573b; }
.model-stage:focus-visible { outline:2px solid #c26b4b; outline-offset:5px; }
/* Cream ceramic, navy circuitry and coral-orange accents. */
.maker-model .layer-base { --side:#bcb39e; }
.maker-model .layer-base .surface {
 background:linear-gradient(140deg,#fffaf0,#e9e2d2 58%,#cfc5b0);
 border-color:#fff8e6;
 box-shadow:inset 0 0 0 5px #fffaf033,0 18px 35px #071b2a45;
}
.maker-model .base-slot { border-color:#aa9c82; box-shadow:inset 0 0 22px #66583d24; }
.maker-model .edge { border-color:#e4d9c36b; }
.maker-model .bolt { background:#efe6d3; box-shadow:0 0 0 3px #142d3b55; }
.maker-model .layer-board { --side:#102b3a; }
.maker-model .circuit-surface {
 background:linear-gradient(140deg,#233f4d,#122d3c 70%);
 color:#f39a70; border-color:#e8deca;
 box-shadow:inset 0 0 0 5px #f5ecd910,0 18px 35px #071b2a45;
}
.maker-model .circuit-surface svg { opacity:.9; }
.maker-model .layer-chip { --side:#b85d3d; }
.maker-model .layer-chip .surface {
 background:linear-gradient(135deg,#fff9ea,#e9dfca);
 border-color:#fff2d8;
 box-shadow:0 0 0 6px #f58255,0 0 0 9px #142d3b,0 0 24px #fa774d25;
}
.maker-model .chip-symbol { color:#183544; }
.maker-model .chip-line { background:#cc6944; }
.maker-model .layer-lid { --side:#e7deca80; }
.maker-model .layer-lid .surface {
 background:linear-gradient(130deg,#fff9e540,#e9dfc71c 55%,#f9edcf30);
 border-color:#eee3cbbf;
 box-shadow:inset 0 0 0 5px #fff8e50c,0 18px 35px #071b2a33;
}
.maker-model .lid-frame { border-color:#f5e6c77a; }
.maker-model .layer-lid img { mix-blend-mode:normal; opacity:.95; }
.model-halo {
 border-color:#e9dfc222; box-shadow:0 0 0 35px #eee3c207,0 0 0 70px #eee3c205;
 background:radial-gradient(ellipse,#e5d9b917,transparent 70%);
}
.model-axis { background:linear-gradient(transparent,#f18b5c40,transparent); }

.launch-strip { background:#e8e4da; border-top:1px solid #b8b1a04d; border-bottom:1px solid #b8b1a04d; }
.page-hero { background:linear-gradient(110deg,#f6f4ef 30%,#ece7dd); }
.page-landmark { padding:26px 18px 12px; border:1px solid #b9b0a153; border-bottom:3px double #b9b0a166; border-radius:180px 180px 0 0; background:linear-gradient(130deg,#fff8,#e3ded04d); color:#667971; }
.page-folio { color:#6e766e; }
:is(.index-page .programme,.events-page .event-list,.projects,.sponsorship-page section[aria-labelledby="value-title"],.glass-section) { background:#f7f5f0; }
:is(.event-card,.project-card,.sponsorship-page .benefit-list article,.glass-panel) {
 position:relative; isolation:isolate; border:1px solid #c6bead99; border-radius:4px;
 background:linear-gradient(125deg,#fffdf8,#f2eee5);
 box-shadow:0 9px 20px -17px #50493770,inset 0 0 0 3px #fff8;
}
:is(.event-card,.project-card,.sponsorship-page .benefit-list article,.glass-panel)::after {
 content:''; position:absolute; inset:3px; z-index:3; pointer-events:none;
 border:1px solid #c8c0af33; border-radius:1px;
}
:is(.event-illustration,.branch-art,.partner-illustration) { position:relative; margin:9px 9px 0; border-radius:2px; background:#15303c; }
:is(.event-illustration,.branch-art,.partner-illustration) img { position:relative; }
:is(.event-body,.branch-body,.partner-body) { position:relative; margin-top:0; z-index:2; background:transparent; border-radius:0; }
:is(.index-page,.events-page) .event-body { padding:30px 32px 32px; }
:is(.index-page,.events-page) .event-number { top:26px; right:27px; font:400 17px/1 var(--font); color:#a56b4e; }
:is(.index-page,.events-page) .event-card .event-timing { padding-right:40px; }
.branch-link>span { border-radius:2px; background:#eae3d6; }
.glass-panel { overflow:hidden; }
.glass-panel> :is(p,h2,h3,a,div,img) { position:relative; z-index:1; }
.team-mascot.glass-panel { background:radial-gradient(ellipse at 50% 40%,#f2d4ba,#eee7da 80%); }
.team-mascot.glass-panel img { filter:drop-shadow(0 12px 12px #9c603426); }
.involvement-list { border-top:0; padding-top:0; gap:24px; }
.involvement-list>.glass-panel { padding:29px 28px 27px; }
.involvement-list>.glass-panel p { margin-bottom:0; }
.contact-grid.glass-section { gap:28px; }
.contact-grid>.glass-panel { padding:38px; }
.contact-grid>.glass-panel .eyebrow { margin-top:0; }
:is(.build-picker,.signup-panel,.announcement) { border-radius:4px; border-color:#c6bead99; }
.build-picker-controls { background:#ede8dc; }
.first-build,.maker-pathway,.tinted { background:#eeeae1; }
.closing { background:linear-gradient(110deg,#ece7dc,#f5f2ea); border-block:1px solid #b8b1a04d; }
.oxford-band { border-top:4px double #90a5a336; }
@media(max-width:1100px) {
 .hero { gap:5%; }
 .hero h1 { font-size:clamp(44px,5.5vw,62px); }
 .model-stage { height:440px; }
 .hero-description { font-size:17px; }
 .hero-actions { gap:18px; }
}
@media(max-width:760px) {
 .hero { grid-template-columns:1fr; gap:32px; padding-top:44px; padding-bottom:30px; }
 .hero-copy { padding-bottom:0; }
 .hero .eyebrow { margin-bottom:26px; }
 .hero h1 { font-size:clamp(44px,9vw,64px); margin-bottom:25px; }
 .hero-description { max-width:43ch; font-size:17px; }
 .hero-actions { margin-top:28px; }
 .model-stage { height:390px; border-radius:160px 160px 4px 4px; }
 .model-scroll-space { --scroll-distance:65px; }
 .model-caption { font-size:10px; }
 .page-landmark { padding:15px 10px 8px; }
}
@media(max-width:600px) {
 :is(.index-page,.events-page) .event-body { padding:28px 24px 29px; }
 :is(.index-page,.events-page) .event-number { right:24px; }
 .involvement-list { gap:18px; }
 .involvement-list>.glass-panel { padding:26px; }
 .contact-grid.glass-section { gap:22px; }
 .contact-grid>.glass-panel { padding:29px 25px; }
 .team-mascot.glass-panel { gap:20px; }
 .model-stage { height:350px; }
}
@media(forced-colors:active) {
 :is(.event-card,.project-card,.sponsorship-page .benefit-list article,.glass-panel) { border:1px solid CanvasText; }
}
@media print { .model-scroll-space { display:none; } .hero { display:block; } }

/* A family of dimensional objects: original geometry in the society colours. */
.sculpture-scene {
 position:relative; height:235px; overflow:hidden; isolation:isolate;
 background:radial-gradient(ellipse at 48% 35%,#36535c66,transparent 70%),#102b3a;
 perspective:850px;
}
.sculpture-ground {
 position:absolute; width:230px; height:90px; left:50%; top:65%;
 transform:translate(-50%,-50%) rotate(-8deg); border-radius:50%;
 background:#04172380; filter:blur(18px); opacity:.6;
}
.sculpture-view { position:absolute; inset:0; transform-style:preserve-3d; transform:rotateX(var(--look-y,0deg)) rotateY(var(--look-x,0deg)); transition:transform .65s ease-out; }
.sculpture-stage {
 position:absolute; left:50%; top:61%; width:220px; height:150px;
 margin-left:-110px; margin-top:-75px; transform-style:preserve-3d;
 scale:.84; transform:rotateX(57deg) rotateZ(-32deg); animation:sculpture-drift 11s ease-in-out infinite;
 animation-play-state:paused;
}
.sculpture-scene.is-visible .sculpture-stage { animation-play-state:running; }
.sculpture-block {
 --top:#f5efdf; --front:#d0c5ae; --right:#b8ab91;
 position:absolute; left:0; top:0; width:var(--w); height:var(--d);
 transform:translate3d(var(--x),var(--y),var(--z)); transform-style:preserve-3d;
}
.sculpture-block i { position:absolute; display:block; box-sizing:border-box; backface-visibility:hidden; }
.block-top { inset:0; background:linear-gradient(135deg,#ffffff17,transparent 80%),var(--top); transform:translateZ(var(--h)); border:1px solid #fff8e633; box-shadow:inset 0 0 0 1px #fff8e60d; }
.block-front { left:0; top:100%; width:100%; height:var(--h); transform-origin:top; transform:translateZ(var(--h)) rotateX(-90deg); background:var(--front); border-top:1px solid #fff8e61f; }
.block-left { left:0; top:0; width:var(--h); height:100%; transform-origin:left; transform:rotateY(-90deg); background:var(--right); border-top:1px solid #fff8e61f; }
.tone-stone { --top:#dfd6c3; --front:#aba28f; --right:#8c8372; }
.tone-navy { --top:#294957; --front:#193542; --right:#0e2938; }
.tone-orange { --top:#fa946a; --front:#db714a; --right:#b55335; }
.sculpture-rule { position:absolute; left:18px; bottom:17px; width:27px; border-top:1px solid #e4d9c366; }
.sculpture-rule::after { content:''; position:absolute; left:0; top:-3px; width:5px; height:5px; border-radius:50%; background:#fa946a; }
.sculpture-research .sculpture-stage { animation-delay:-3s; }
.sculpture-showcase .sculpture-stage,.sculpture-ideas .sculpture-stage { scale:.8; top:61%; }
.sculpture-community .sculpture-stage,.sculpture-people .sculpture-stage { animation-delay:-6s; }
.sculpture-showcase .sculpture-stage,.sculpture-ideas .sculpture-stage { animation-delay:-8s; }
.branch-art,.event-illustration,.partner-illustration { perspective:850px; }
.index-page .branch-art .sculpture-scene { height:210px; }
.partner-illustration .sculpture-scene { height:215px; }
.partnership-hero-art .sculpture-scene { height:385px; border-radius:180px 180px 4px 4px; border:1px solid #a79a7c66; box-shadow:inset 0 0 0 7px #e8e2d612; }
.partnership-hero-art .sculpture-stage { scale:1.25; top:61%; }
.partnership-hero-art .sculpture-ground { width:320px; top:72%; }
@keyframes sculpture-drift {
 0%,100% { transform:translateY(3px) rotateX(57deg) rotateZ(-32deg); }
 50% { transform:translateY(-5px) rotateX(53deg) rotateZ(-27deg); }
}
@media(max-width:600px) {
 .sculpture-scene,.index-page .branch-art .sculpture-scene,.partner-illustration .sculpture-scene { height:225px; }
 .partnership-hero-art .sculpture-scene { height:320px; }
 .partnership-hero-art .sculpture-stage { scale:1.08; }
}
@media(prefers-reduced-motion:reduce) {
 .sculpture-scene .sculpture-stage { animation:none; }
 .sculpture-scene .sculpture-view { transform:none; transition:none; }
}
@media print { .sculpture-scene { display:none; } }

/* Real studio lighting renders above these backgrounds in one shared canvas. */
.sculpture-studio-canvas { position:fixed; inset:0; width:100%; height:100%; pointer-events:none; z-index:4; }
.sculpture-scene {
 background:radial-gradient(ellipse at 35% 14%,#44616b6b,transparent 62%),linear-gradient(155deg,#1e3d4b,#102936 75%);
}
.sculpture-scene.studio-ready .sculpture-view,.sculpture-scene.studio-ready .sculpture-ground { visibility:hidden; }
.sculpture-scene.studio-ready .sculpture-stage { animation:none; }
@media print { .sculpture-studio-canvas { display:none; } }

/* Native scene canvases stay attached to their cards during scroll. */
.scene-studio-output { position:absolute; inset:0; width:100%; height:100%; z-index:2; pointer-events:none; visibility:hidden; }
.studio-ready>.scene-studio-output { visibility:visible; }
.model-stage.studio-ready>:is(.model-orbit,.model-halo,.model-landmark) { visibility:hidden; }
.hero { overflow:visible; }
.hero .model-scroll-space { --scroll-distance:320px; }
.hero-branch-controls { display:flex; gap:4px; padding:4px; margin-bottom:14px; border:1px solid #b8b1a060; background:#e9e4da; border-radius:7px; }
.hero-branch-controls button { flex:1; padding:10px 7px; border:1px solid transparent; border-radius:4px; font:500 12px/1.3 var(--font); color:#53636a; background:transparent; cursor:pointer; }
.hero-branch-controls button[aria-pressed=true] { background:#173342; color:#fff8e8; box-shadow:0 2px 5px #102b3a18; }
.hero-branch-controls button:focus-visible { outline:2px solid #be603c; outline-offset:2px; }
.maker-model .hero-prototype-caption { display:grid; grid-template-columns:1fr auto; gap:5px 15px; align-items:center; margin:17px 2px 0; color:#253f4b; font-size:14px; }
.prototype-label { grid-column:1/-1; font-size:10px; color:#6e766e; letter-spacing:.065em; }
.hero-prototype-caption a { font-size:11px; color:#9b4a30; }
.hero-model-hint { margin:12px 2px 0; font-size:10px; color:#65726f; }
@media(max-width:760px) {
 .hero .model-scroll-space { --scroll-distance:220px; }
 .model-scroll-space.scroll-enabled>.maker-model { top:94px; }
 .hero-branch-controls button { font-size:11px; padding:10px 5px; }
 .maker-model .hero-prototype-caption { font-size:13px; }
 .hero-prototype-caption a { font-size:10px; }
}
@media(prefers-reduced-motion:reduce) { .hero-model-hint { font-size:0; } .hero-model-hint::after { content:'Drag or use arrow keys to rotate'; font-size:10px; } }
@media print { .scene-studio-output { display:none; } }

/* Project prototypes share the homepage material palette; events retain their illustrations. */
.sculpture-scene>.studio-fallback { display:block; width:100%; height:100%; object-fit:contain; }
.sculpture-scene.studio-ready>.studio-fallback { visibility:hidden; }
