:root{font-family:Arial,Helvetica,sans-serif;color:#162638;background:#f7f5ee;font-synthesis:none}*{box-sizing:border-box}body{margin:0}a{color:inherit}button{font:inherit}.wrap{width:min(1120px,calc(100% - 40px));margin:auto}.site-header{background:#102a3d;color:white}.header-inner{min-height:74px;display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{font-family:Georgia,serif;font-size:1.35rem;font-weight:bold;text-decoration:none}.header-note{font-size:.85rem;letter-spacing:.08em;color:#d6e1d7}.hero{padding:70px 0 54px}.eyebrow{font-size:.75rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#95722e;margin:0 0 12px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Georgia,serif}h1{font-size:clamp(2.4rem,5vw,4.2rem);line-height:1.08;margin-bottom:18px}h2{font-size:2rem;margin-bottom:0}h3{font-size:1.4rem}.hero>p:not(.eyebrow){font-size:1.15rem;color:#52606a;max-width:560px;line-height:1.55}.overall{display:flex;justify-content:space-between;gap:30px;align-items:center;background:#fff;border:1px solid #e3dfd3;border-radius:18px;padding:28px 34px;margin-top:42px;box-shadow:0 8px 25px #142a3d0a}.overall-meter{width:min(460px,100%)}.progress-label{display:flex;justify-content:space-between;gap:12px;font-size:.84rem;color:#4d5960}.progress-label strong{color:#153d31}.track{height:9px;background:#e7e9e3;border-radius:99px;overflow:hidden;margin-top:10px}.track span{display:block;height:100%;background:#35795b;border-radius:99px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px}.section-heading>p{color:#657078;margin-bottom:5px}.key-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.key-card{display:flex;flex-direction:column;align-items:flex-start;background:#fff;border:1px solid #e3dfd3;border-radius:16px;padding:24px;text-decoration:none;box-shadow:0 5px 18px #142a3d08;transition:transform .15s,box-shadow .15s}.key-card:hover{transform:translateY(-3px);box-shadow:0 10px 25px #142a3d18}.key-card h3{margin:18px 0 8px}.key-card p{color:#58636a;line-height:1.5;min-height:48px}.key-card .progress-label{width:100%;margin-top:auto}.key-card .track{width:100%}.card-action{margin-top:22px;font-size:.9rem;font-weight:bold;color:#1f674a}.key-icon{position:relative;display:block;width:96px;height:96px;border-radius:50%;overflow:hidden;flex:none;background:#f2e9cf}.key-icon:before{content:"";position:absolute;width:360px;height:466px;background-image:var(--sheet);background-size:360px 466px;background-repeat:no-repeat;left:calc(48px - (72px + var(--col)*106px));top:calc(48px - (104px + var(--row)*97px))}.key-icon.large{width:156px;height:156px}.key-icon.large:before{transform:scale(1.625);transform-origin:top left;left:calc(78px - (72px + var(--col)*106px)*1.625);top:calc(78px - (104px + var(--row)*97px)*1.625)}.breadcrumb{display:flex;gap:10px;margin:34px 0 24px;color:#34654e;font-weight:bold;font-size:.9rem}.breadcrumb a{text-decoration:none}.breadcrumb a:hover,.back-link:hover{text-decoration:underline}.detail-hero{display:flex;gap:32px;align-items:center;background:#fff;border:1px solid #e3dfd3;border-radius:18px;padding:34px;margin-bottom:48px}.detail-hero h1{margin-bottom:12px}.detail-hero p:not(.eyebrow){color:#55636a;font-size:1.1rem}.detail-hero>div{flex:1}.detail-progress{max-width:450px;margin-top:24px}.lesson-list{max-width:900px;margin-bottom:70px}.lesson-row{display:flex;align-items:center;gap:20px;padding:22px 20px;background:#fff;border:1px solid #e3dfd3;text-decoration:none;margin-bottom:12px;border-radius:12px}.lesson-row:hover{border-color:#648873}.lesson-number{font-family:Georgia,serif;color:#a17c34;font-size:1.4rem}.lesson-copy{display:flex;flex-direction:column;gap:5px;flex:1}.lesson-copy strong{font-size:1.08rem}.lesson-copy span{color:#667077;font-size:.9rem}.status{display:inline-block;font-size:.83rem;font-weight:bold;color:#255b43;background:#e7f0e8;border-radius:50px;padding:8px 12px;white-space:nowrap}.lesson-header{max-width:760px;margin:40px auto}.lesson-header>p:not(.eyebrow){color:#5c6970;font-size:1.1rem;line-height:1.5}.lesson-layout{max-width:820px;margin:auto}.sections{display:grid;gap:14px}.lesson-section{background:white;border:1px solid #e3dfd3;border-radius:14px;padding:26px 30px}.lesson-section h2{font-size:1.5rem;margin-bottom:12px}.lesson-section p:last-child{line-height:1.7;color:#46535c;margin-bottom:0}.complete-panel{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#e9efe7;border-radius:14px;padding:28px 30px;margin:30px 0}.complete-panel h2{font-size:1.5rem;margin-bottom:8px}.complete-panel p{margin:0;color:#56635b}.complete-panel button{border:0;border-radius:9px;background:#216443;color:#fff;padding:14px 20px;font-weight:bold;cursor:pointer;white-space:nowrap}.complete-panel button:disabled{background:#60796a;cursor:default}.back-link{display:inline-block;margin-bottom:60px;color:#27684b;font-weight:bold;text-decoration:none}.not-found{padding:90px 0}.footer{padding:28px 0 40px;color:#68737a;font-size:.82rem}:focus-visible{outline:3px solid #e5aa28;outline-offset:3px}@media(max-width:800px){.key-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overall{align-items:stretch;flex-direction:column}.overall-meter{width:100%}}@media(max-width:560px){.wrap{width:min(100% - 28px,1120px)}.header-inner{min-height:64px}.header-note{display:none}.hero{padding:46px 0 36px}.overall{margin-top:30px;padding:22px}.key-grid{grid-template-columns:1fr;gap:14px}.key-card p{min-height:0}.section-heading{align-items:start;flex-direction:column;gap:8px}.detail-hero{align-items:flex-start;flex-direction:column;padding:25px;gap:22px}.lesson-row{flex-wrap:wrap;gap:12px}.lesson-copy{min-width:calc(100% - 55px)}.status{margin-left:0}.lesson-header{margin:20px auto 30px}.lesson-section{padding:22px}.complete-panel{align-items:stretch;flex-direction:column;padding:22px}.complete-panel button{white-space:normal}}

/* Site navigation wraps on narrow screens (more links since DEC-016/017). */
@media(max-width:820px){.header-inner{flex-wrap:wrap;row-gap:10px;padding-top:12px;padding-bottom:12px}.header-nav{display:flex;flex-wrap:wrap;gap:6px 16px;width:100%}.header-nav a{margin:0;padding:6px 0}}
/* Key art from a badge image (themed Keys, DEC-018) */
.key-icon-image{background:none}.key-icon-image img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}
.key-group{margin-top:34px}.key-group-title{font:700 1.45rem Georgia,serif;margin:0 0 14px;display:flex;align-items:baseline;gap:12px}.key-group-title span{font:600 .9rem Arial,sans-serif;color:#5b6870}
