@font-face{font-family:'Cinzel Decorative';src:url('assets/cinzel.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Open Sans';src:url('assets/open-sans.woff2') format('woff2');font-display:swap}
:root{--ink:#352342;--purple:#3d1c50;--gold:#ad8650;--paper:#faf8f4;--muted:#756b7a;--line:#e2d9e5}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.75 'Open Sans',Arial,sans-serif}header{max-width:1180px;margin:auto;padding:28px 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}header a{font-size:9px;letter-spacing:2px;text-decoration:none;color:inherit;line-height:1.5}header strong{font-size:12px}.mark{float:left;font-size:36px;line-height:1;margin-right:13px;color:var(--gold)}.edition,.eyebrow{font-size:10px;letter-spacing:2.5px;font-weight:600}.edition{color:var(--muted)}main{max-width:1116px;margin:auto;padding:0 32px}.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:50px;align-items:center;padding:68px 0 55px}h1,h2,h3{font-family:'Cinzel Decorative',Georgia,serif;font-weight:400;line-height:1.25}h1{font-size:clamp(40px,5.2vw,67px);margin:18px 0 24px;letter-spacing:-1px}h1 em{font-style:normal;color:var(--gold)}.lead{font-size:20px;line-height:1.6}.sub{max-width:470px;color:var(--muted);margin:22px 0 30px}button{font:600 13px 'Open Sans',Arial,sans-serif;border:1px solid var(--purple);border-radius:3px;background:var(--purple);color:white;padding:17px 24px;cursor:pointer;line-height:1.4;transition:background .2s}button:hover{background:#573368}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:4px}button span{margin-left:35px}.micro{font-size:11px;color:var(--muted);line-height:1.7;margin-top:16px}.compass{position:relative;aspect-ratio:1;max-width:410px;width:100%;border:1px solid #d9c8b0;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#eee6ed,transparent 66%);color:var(--gold)}.compass:before,.compass:after{content:'';position:absolute;inset:38px;border:1px solid #ddccba;border-radius:50%}.compass:after{inset:75px}.ring{position:relative;display:grid;place-items:center;width:50%;height:50%}.ring i{font-style:normal;font-size:50px;z-index:1;background:var(--paper);border-radius:50%;width:70px;text-align:center}.needle{position:absolute;width:170px;height:170px;background:linear-gradient(45deg,#baa078 50%,#543160 50%);clip-path:polygon(50% 0,59% 40%,100% 50%,59% 59%,50% 100%,40% 59%,0 50%,40% 40%);transform:rotate(24deg)}.compass span{position:absolute;font-size:8px;letter-spacing:2px}.north{top:16px}.south{bottom:18px}.east{right:-24px;transform:rotate(90deg)}.west{left:-16px;transform:rotate(-90deg)}.compass small{position:absolute;bottom:91px;font-size:6px;letter-spacing:1.5px}.invitation{border-top:1px solid var(--line);padding:28px 0;display:grid;grid-template-columns:120px 1fr 130px 1fr;gap:20px;align-items:start}.invitation span{font-size:9px;letter-spacing:1.5px;color:var(--gold);padding-top:4px}.invitation p{font-size:12px;margin:0;color:var(--muted)}.community{width:100%;display:block;margin-top:14px;border-radius:4px}.caption{font-family:Georgia,serif;font-style:italic;text-align:center;color:var(--muted)}footer{padding:35px 25px;text-align:center;border-top:1px solid var(--line);margin-top:55px;font-size:10px;color:var(--muted)}footer strong{display:block;font:22px Georgia,serif;color:var(--ink);margin-bottom:8px}#quiz{max-width:720px;margin:55px auto 80px;min-height:550px}.quiz-top{display:flex;justify-content:space-between;font-size:10px;letter-spacing:1px}progress{width:100%;height:4px;accent-color:var(--gold);margin:12px 0 28px}h2{font-size:28px;margin:15px 0 28px}fieldset{border:0;padding:0;margin:0}.option{display:flex;align-items:center;gap:15px;border:1px solid var(--line);background:white;padding:16px 20px;margin:10px 0;cursor:pointer;border-radius:4px;font-size:13px;line-height:1.65}.option:has(input:checked){background:#eee7f0;border-color:var(--purple)}.option input{accent-color:var(--purple);width:17px;height:17px;flex-shrink:0}.letter{font-family:Georgia,serif;color:var(--gold);font-size:19px}.nav{display:flex;justify-content:space-between;margin-top:28px}.secondary{background:transparent;color:var(--purple);border-color:var(--line)}.secondary:hover{background:#eee7f0}textarea{width:100%;min-height:160px;padding:18px;border:1px solid var(--line);font:15px/1.7 inherit;border-radius:4px}#error{color:#9a3131;font-size:12px;min-height:20px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}#result{max-width:820px;margin:55px auto}#result h1{font-size:42px}#scores{margin:30px 0 45px;display:grid;gap:12px}.score{display:grid;grid-template-columns:185px 1fr 20px;align-items:center;gap:15px;font-size:12px}.track{height:5px;background:#e7e0e8}.bar{height:5px;background:#b8a5c1}.score.winner{font-weight:600}.winner .bar{background:var(--gold)}.reading{background:white;border:1px solid var(--line);padding:35px;margin:20px 0 35px;border-radius:5px}.reading h2{margin-top:10px}.reading li{padding:9px 0;font-size:14px}.reading ul{padding-left:20px}.medicine{background:#f4eef5;border-left:2px solid var(--gold);padding:18px;font-size:12px;letter-spacing:1px}.reading blockquote{font:italic 21px/1.6 Georgia,serif;color:#846740;margin:26px 0 0}.closing{padding:24px 0;border-top:1px solid var(--line)}.save{background:#eee7f0;padding:28px;margin:25px 0}.save h3{font-size:23px;margin-top:0}.save button{margin:5px 6px 5px 0}#review,#restart{margin:8px 6px 0 0}[hidden]{display:none!important}@media(max-width:700px){header{padding:20px}.edition{display:none}main{padding:0 22px}.hero{grid-template-columns:1fr;padding:38px 0;gap:35px}.compass{width:230px;margin:10px auto}.compass small{bottom:44px;font-size:5px}.needle{width:120px;height:120px}.compass:before{inset:25px}.compass:after{inset:45px}.invitation{grid-template-columns:1fr;gap:10px}.invitation p{margin-bottom:13px}h2{font-size:23px}.reading{padding:24px}.score{grid-template-columns:135px 1fr 15px;gap:10px;font-size:10px}#result h1{font-size:34px}.community{margin-top:12px}.option{padding:14px;gap:10px}.save{padding:22px}}@media print{header,.save,footer,#review,#restart{display:none}body{background:white}main{max-width:none}.reading{break-inside:avoid}#scores{break-inside:avoid}}

:root{--ink:#410086;--purple:#410086;--gold:#b5855a;--paper:#fdf8ed;--muted:#625f6a;--line:#ded3c6}
.brand-logo{display:block;width:174px;height:auto}
header{padding:20px 32px;border-color:#e6dbcb}
.hero{position:relative;isolation:isolate;min-height:640px;grid-template-columns:1.04fr 1fr;padding:65px 46px;gap:0;margin:24px -32px 0;background:#410086 url('assets/hero-background.webp') center center/cover no-repeat;color:#fdf8ed;border-radius:8px}
.hero:before{content:'';position:absolute;inset:0;z-index:-1;border-radius:inherit;background:linear-gradient(90deg,rgba(47,0,99,.82),rgba(65,0,134,.5) 43%,transparent 62%)}
.hero h1{font-size:clamp(36px,4.5vw,57px);line-height:1.3}
.hero h1 em{color:#ecaf76}
.hero .eyebrow{color:#ecaf76}
.hero .lead{font-size:21px}
.hero .sub{color:#fdf8ed;max-width:400px}
.hero .micro{color:#fdf8ed;max-width:370px}
.hero button{background:#ecaf76;border-color:#ecaf76;color:#410086;border-radius:30px;padding:18px 27px}
.hero button:hover{background:#f6cda8}
.hero-portrait{height:100%;min-height:400px}
.invitation{margin-top:32px;padding:30px 0;border-color:#d8c3ad}
.community{border-radius:7px}
button{border-radius:26px}
.option{background:#fefcf7;border-color:#c8c2bc;border-radius:9px}
.option:has(input:checked){background:#f0e6f6;border-color:#410086}
.reading{background:#fefcf7;border-color:#e0d5c9;border-top:3px solid #ecaf76;border-radius:9px}
.reading h2{color:#410086}
.medicine{background:#fdf8ed;border-color:#b5855a;color:#410086}
.reading blockquote{color:#93643c}
.save{background:#f1e8db;border-radius:9px}
footer{background:#f1e8db}
@media(max-width:700px){header{padding:17px 22px}.brand-logo{width:145px}.hero{margin:16px -22px 0;padding:34px 24px 0;display:flex;flex-direction:column;align-items:stretch;background:#410086;overflow:hidden;min-height:0;border-radius:0}.hero:before{display:none}.hero h1{font-size:39px}.hero .sub{max-width:none}.hero-portrait{min-height:300px;margin:22px -24px 0;background:url('assets/hero-background.webp') 76% center/auto 330px no-repeat}.hero .lead{font-size:19px}.hero .micro{font-size:10px}.invitation{margin-top:14px}.reading h2{font-size:23px}}
@media print{.reading{border:1px solid #ccc}body{color:#222}}

/* Light composition with the community banner above the welcome. */
#welcome>.community{margin:26px 0 0;width:100%;border-radius:5px}
.hero{background:none;color:var(--ink);margin:0;min-height:0;padding:54px 0;gap:48px;grid-template-columns:1.2fr 1fr;display:grid;border-radius:0}
.hero:before{display:none}
.hero h1{font-size:clamp(40px,5.2vw,67px);line-height:1.25}
.hero h1 em{color:#b5855a}
.hero .eyebrow{color:#625f6a}
.hero .lead{font-size:20px}
.hero .sub{color:#625f6a;max-width:470px}
.hero .micro{color:#625f6a;max-width:none}
.hero button{background:#410086;border-color:#410086;color:#fdf8ed}
.hero button:hover{background:#59209a}
.compass{background:radial-gradient(circle,#efe7ed,transparent 66%);color:#b5855a}
.invitation{margin-top:0;border-color:#e2d9d0}
footer{background:transparent;display:flex;align-items:center;flex-direction:column;gap:15px}
.footer-logo{width:200px;height:auto}
@media(max-width:700px){#welcome>.community{margin-top:18px;border-radius:3px}.hero{margin:0;padding:32px 0;display:grid;grid-template-columns:1fr;gap:25px;background:none;overflow:visible}.hero h1{font-size:40px}.hero .lead{font-size:19px}.hero .micro{font-size:11px}.compass{display:grid;width:230px}.footer-logo{width:175px}}
@media print{footer{display:none}}

#welcome>.community{margin-top:30px}
#welcome>.caption{margin:14px 0 0;font-size:17px;color:#827086}
.hero{padding-top:42px}
.spiral-art{width:100%;max-width:430px;justify-self:center;align-self:center}
.spiral-art img{display:block;width:100%;height:auto}
.spiral-art p{text-align:center;font:italic 17px/1.6 Georgia,serif;color:#947454;margin:-8px 0 0}
.footer-logo{width:155px}
footer{gap:12px;padding:36px 24px 30px}
.school-name{font-family:'Cinzel Decorative',Georgia,serif;font-size:16px;color:#410086;line-height:1.55;letter-spacing:.5px}
.footer-community{font-size:10px;letter-spacing:1.5px;color:#756b7a;margin-top:6px}
@media(max-width:700px){#welcome>.community{margin-top:20px}#welcome>.caption{font-size:15px;margin-top:12px}.hero{padding-top:28px}.spiral-art{max-width:300px}.spiral-art p{font-size:15px}.school-name{font-size:15px}.footer-logo{width:140px}}

.hero{grid-template-columns:1.22fr 1fr;gap:38px}
.hero .sub{margin-bottom:22px}
.invitation{display:grid;grid-template-columns:1fr;gap:18px;padding:22px 24px;margin:0 0 26px;border:1px solid #e3d6c6;border-left:2px solid #b5855a;border-radius:5px;background:#fefcf7}
.invitation h3{font-family:'Open Sans',Arial,sans-serif;font-size:12px;font-weight:600;letter-spacing:1.6px;line-height:1.5;color:#410086;margin:0 0 7px}
.invitation p{font-size:14px;line-height:1.75;color:#625f6a;margin:0}
@media(max-width:700px){.hero{grid-template-columns:1fr}.invitation{padding:20px;gap:20px}.invitation p{font-size:14px}.invitation h3{font-size:12px}}

.contact-fields{margin-top:26px;padding-top:20px;border-top:1px solid #e3d6c6}
.contact-fields h3{font-size:22px}.contact-fields p{font-size:13px}
.contact-fields>label:not(.consent){display:block;font-size:13px;margin-top:16px}
.contact-fields>input{display:block;width:100%;padding:13px;border:1px solid #c8c2bc;border-radius:4px;background:#fefcf7;font:15px 'Open Sans',Arial,sans-serif}
.consent{display:flex;gap:12px;font-size:12px;line-height:1.6;margin:18px 0;align-items:flex-start}
.consent input{margin-top:4px;flex-shrink:0;accent-color:#410086}
.collection-receipt{padding:15px;background:#f0e8f1;font-size:13px}
button:disabled{opacity:.65;cursor:wait}

#contact{max-width:720px;margin:55px auto 80px;min-height:550px}#contact .contact-fields{margin-top:0;border-top:0;padding-top:0}#contact .contact-fields h3,#contact .contact-fields>p{display:none}
