@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display:ital@0;1&display=swap');
:root{--ink:#214c40;--paper:#faf8f0;--cream:#efeddf;--orange:#c85635;--line:#d9dfcf}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--orange);outline-offset:5px}header{max-width:1380px;margin:auto;padding:29px 6%;display:flex;align-items:center;justify-content:space-between;gap:25px}.brand{display:flex;align-items:center;gap:12px;font-size:13px;line-height:1.2;letter-spacing:.01em}.brand strong{font-size:20px}.brand-icon{font-size:49px;line-height:1;color:var(--orange)}nav{display:flex;align-items:center;gap:34px;font-size:14px;font-weight:600}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;background:var(--ink);color:white;border:1px solid var(--ink);border-radius:4px;padding:15px 24px;font:600 15px 'DM Sans',sans-serif;cursor:pointer;transition:background .2s,transform .2s}.button:hover{background:#14392f;transform:translateY(-2px)}.button span{font-size:21px}.button.small{padding:11px 18px;gap:20px}.hero{max-width:1380px;display:grid;grid-template-columns:1.04fr 1fr;margin:25px auto 0;padding:10px 6% 85px;align-items:center;gap:60px}.eyebrow{font-size:11px;letter-spacing:.15em;font-weight:700;margin:0 0 24px}h1,h2,h3{font-family:'DM Serif Display',Georgia,serif;font-weight:400;line-height:1.05;margin:0}h1{font-size:clamp(56px,5.7vw,84px);letter-spacing:-.035em}h1 em{color:var(--orange);font-weight:400}h2{font-size:clamp(35px,3.8vw,53px);letter-spacing:-.025em}h3{font-size:30px;letter-spacing:-.02em}p{margin:20px 0}.hero-copy>p:not(.eyebrow){max-width:490px}.intro{font-size:19px;line-height:1.55}.hero .button{margin-top:13px}.hero-note{display:block;font-size:12px;margin-top:12px;color:#5b6d5e}.hero-art{height:575px;background:#e0e8d5;border-radius:170px 170px 8px 8px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.sun{position:absolute;right:31px;top:20px;font-size:100px;color:#efb66b;line-height:1}.art-caption{position:absolute;top:110px;left:42px;font-size:9px;letter-spacing:.15em;transform:rotate(-12deg)}.illustration{width:105%;margin-top:25px}.art-label{position:absolute;bottom:27px;left:36px;font-size:18px;line-height:1.35;transform:rotate(-5deg)}.belief{background:var(--cream);text-align:center;padding:75px 24px 70px}.belief h2{margin-bottom:26px}.belief>p:not(.eyebrow){max-width:670px;margin:16px auto;font-size:17px}.section{max-width:1380px;margin:auto;padding:88px 6%}.section-head{display:flex;justify-content:space-between;gap:40px;align-items:flex-end;margin-bottom:39px}.section-head>p{font-size:15px;padding-bottom:3px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.card{background:white;border:1px solid var(--line);border-radius:6px;overflow:hidden}.card-art{height:218px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.card-art>span{font-size:160px;line-height:1;transform:rotate(-13deg);font-family:Georgia,serif}.card-art small{position:absolute;bottom:17px;left:23px;font-size:9px;letter-spacing:.12em;font-weight:700}.library{background:#f2c77d;color:#955734}.green{background:#c9d8ba;color:#426940}.music{background:#e7ad96;color:#943e31}.card-body{padding:26px 24px 28px;display:flex;flex-direction:column;min-height:325px}.status{font-size:10px;font-weight:600;letter-spacing:.025em;margin-bottom:15px;color:#63715b}.card-body p{font-size:14px;line-height:1.7;margin:14px 0 22px}.card-body a{font-size:13px;font-weight:700;margin-top:auto;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:15px}.project-note{font-size:12px;max-width:760px;color:#60705c;margin:25px 0 0}.friend-banner{background:var(--ink);color:var(--paper);padding:74px max(6%,calc((100vw - 1215px)/2));display:flex;align-items:center;justify-content:space-between;gap:55px}.friend-banner p:not(.eyebrow){max-width:540px;font-size:16px}.light{background:var(--paper);color:var(--ink);border-color:var(--paper);margin-top:12px}.light:hover{background:#e5e8d5}.friend-stamp{border:1px solid #8ba58a;flex-shrink:0;border-radius:50%;width:270px;height:270px;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(10deg);text-align:center;background:#315c4c}.friend-stamp span{font-size:10px;letter-spacing:.1em;line-height:1.6}.friend-stamp b{font-family:'DM Serif Display',Georgia,serif;font-size:76px;font-weight:400;line-height:1.4;color:#f2c77d}.about{display:grid;grid-template-columns:1fr 1fr;gap:90px}.about p:first-child:not(.eyebrow){margin-top:0}.about p{font-size:15px}.text-link{font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:5px}footer{border-top:1px solid var(--line);max-width:1380px;margin:auto;padding:37px 6%;display:flex;justify-content:space-between;gap:30px;align-items:center}footer p{font-size:12px;color:#65735e}footer>div{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600}.friend-main{max-width:1230px;display:grid;grid-template-columns:1fr 1fr;gap:95px;margin:55px auto 70px;padding:0 6%;align-items:start}.friend-heading{padding-top:25px}.friend-heading h1{font-size:64px}.friend-heading .intro{max-width:440px}.donation{border:1px solid var(--line);border-radius:8px;background:white;padding:32px}.donation h2{font-size:32px;margin-bottom:25px}fieldset{border:0;margin:0 0 23px;padding:0}legend,.field-label{font-size:13px;font-weight:700;margin-bottom:9px;display:block}.frequency{display:flex;gap:10px}.frequency label{flex:1;padding:10px 12px;border:1px solid var(--line);border-radius:4px;font-size:13px;cursor:pointer}.frequency label:has(input:checked){background:#edf1e6;border-color:var(--ink)}input[type=radio]{accent-color:var(--ink)}.hint{font-size:11px;color:#65735e;line-height:1.6;margin:10px 0}.amounts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.amounts label{position:relative;cursor:pointer}.amounts input{position:absolute;opacity:0;width:1px;height:1px}.amounts span{display:block;border:1px solid var(--line);border-radius:4px;text-align:center;padding:13px 3px;font-size:17px;font-weight:700}.amounts input:checked+span{background:var(--ink);color:white;border-color:var(--ink)}.amounts input:focus-visible+span{outline:3px solid var(--orange);outline-offset:2px}#custom-wrap{margin-top:15px}input[type=number],select{font:14px 'DM Sans',sans-serif;padding:12px;border:1px solid #bfcab8;border-radius:4px;background:white;color:var(--ink);width:100%;max-width:100%}.payment-notice{background:#faf2df;border-left:3px solid #d4a650;padding:14px 17px;margin:24px 0;font-size:12px}.payment-notice p{margin:6px 0 0}.selection{display:flex;align-items:center;justify-content:space-between;font-size:13px;padding:0 0 18px}.selection strong{font-size:18px}.donation .button{width:100%}#error{font-size:13px;color:#a22f21}.question{padding-top:30px;padding-bottom:65px;max-width:800px;text-align:center}.question h2{font-size:34px}.question p{font-size:15px}[hidden]{display:none!important}@media(max-width:950px){.hero{gap:30px}.hero-art{height:480px}.hero h1{font-size:62px}.cards{gap:15px}.card-body{padding:22px 19px}.card-body h3{font-size:26px}.friend-main{gap:40px}.friend-heading h1{font-size:54px}.donation{padding:24px}.about{gap:40px}}@media(max-width:680px){header{padding:20px 6%;gap:16px}.brand{font-size:10px;gap:8px}.brand strong{font-size:16px}.brand-icon{font-size:38px}nav{gap:0}nav>a:not(.button){display:none}.button.small{font-size:12px;padding:10px 12px;gap:10px}.hero{grid-template-columns:1fr;margin-top:17px;padding-bottom:45px;gap:36px}.hero h1{font-size:62px}.eyebrow{font-size:9px;letter-spacing:.13em;margin-bottom:20px}.hero .intro{font-size:18px}.hero-copy>p:not(.eyebrow){font-size:15px}.hero-art{height:430px;max-width:440px;width:100%;justify-self:center}.art-caption{top:90px}.illustration{width:93%;margin-top:20px}.sun{font-size:80px}.art-label{font-size:16px;bottom:25px}.belief{padding:51px 6%}.belief>p:not(.eyebrow){font-size:15px}.section{padding:53px 6%}.section-head{display:block;margin-bottom:27px}.section-head>p{font-size:14px;margin-bottom:0}.cards{grid-template-columns:1fr;gap:24px}.card-art{height:210px}.card-body{min-height:0;padding:24px}.card-body h3{font-size:31px}.card-body p{font-size:15px}.friend-banner{padding:50px 6%;flex-direction:column;align-items:flex-start;gap:30px}.friend-banner h2{font-size:39px}.friend-stamp{width:200px;height:200px;align-self:center;margin:12px 0}.friend-stamp b{font-size:56px}.friend-stamp span{font-size:8px}.about{grid-template-columns:1fr;gap:24px}footer{align-items:flex-start;flex-wrap:wrap;padding:30px 6%;gap:20px}footer p{width:100%;order:3;margin:0}footer>div{font-size:11px}.friend-main{grid-template-columns:1fr;margin:25px auto 40px;gap:30px}.friend-heading{padding-top:0}.friend-heading h1{font-size:55px}.friend-heading .intro{font-size:17px}.donation{padding:23px}.donation h2{font-size:31px}.amounts{gap:6px}.amounts span{font-size:16px}.question{padding-top:10px}.question h2{font-size:32px}.frequency label{font-size:12px;padding:10px 8px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}

/* Official school logo, sourced from joopenwillywesterweel.nl; preserve its original colours and proportions. */
.brand{flex-direction:column;align-items:flex-start;gap:9px;flex-shrink:0}.brand-logo{display:block;width:220px;max-width:100%;height:auto}.brand-caption{font-size:11px;line-height:1.35;letter-spacing:.015em}footer .brand-logo{width:190px}footer .brand-caption{font-size:10px}@media(max-width:680px){.brand{gap:7px}.brand-logo{width:164px}.brand-caption{font-size:8px}footer .brand-logo{width:164px}footer .brand-caption{font-size:8px}}@media(max-width:360px){header{gap:10px}.brand-logo{width:140px}.brand-caption{font-size:7px}.button.small{padding:10px;gap:7px}}

.amounts{grid-template-columns:repeat(3,minmax(0,1fr))}.amounts span{height:100%;min-height:100px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.amounts small{font-size:11px;font-weight:500;line-height:1.4}.amounts span{font-size:18px}
