/* Gafree / Curious by nature. Shared identity across public and signed-in pages. */
@font-face{font-family:Fredoka;src:url('../fonts/fredoka-latin.woff2') format('woff2');font-weight:400 700;font-display:swap}
@font-face{font-family:'Nunito Sans';src:url('../fonts/nunito-sans-latin.woff2') format('woff2');font-weight:400 800;font-display:swap}
:root,:root:not([data-theme="light"]),body[data-theme="light"]{
 --g-primary:#243455;--g-primary-dark:#182744;--g-primary-light:#455877;--g-primary-bg:#eef1f7;
 --g-accent:#315ab5;--g-accent-dark:#284b99;--g-accent-light:#7595d8;--g-accent-bg:#edf2ff;--g-secondary:#315ab5;
 --g-text-primary:#243455;--g-text-secondary:#526078;--g-text-tertiary:#627086;--g-text-muted:#627086;--g-text-inverse:#fffdf7;
 --g-bg-body:#fcf9f2;--g-bg-card:#fffefa;--g-bg-sidebar:#fffefa;--g-bg-header:#fffefa;--g-bg-input:#fffefa;--g-bg-hover:#f1eee5;--g-bg-active:#e5edfc;
 --g-border-color:#dddcd4;--g-border-light:#eeebe2;--g-border-dark:#b8bcb9;
 --g-reward-gold:#8b6100;--g-reward-gold-light:#ffcf4a;--g-reward-gold-bg:#fff1bb;
 --g-success:#237b5f;--g-success-bg:#e6f5ec;--g-danger:#af3c33;--g-danger-bg:#fff0ec;--g-warning:#925020;--g-warning-bg:#fff1db;--g-info:#315ab5;--g-info-bg:#edf2ff;
 --g-font-family:'Nunito Sans',sans-serif;--g-font-display:Fredoka,sans-serif;
 --g-radius-sm:8px;--g-radius-md:12px;--g-radius-lg:20px;--g-radius-xl:26px;--g-radius-2xl:32px;
 --g-shadow-sm:0 3px 0 #2434550a;--g-shadow-md:0 6px 0 #2434550c;--g-shadow-lg:0 12px 28px #24345514;
 --g-header-height:80px;--g-sidebar-width:224px;--g-sidebar-expanded:224px;
 --gf-sun:#ffcf4a;--gf-mint:#c6e8d7;--gf-coral:#f3a18b;--gf-sky:#cbdcf9;--gf-ink:#243455;
}
body[data-theme="dark"]{--g-primary:#c6d6f7;--g-primary-dark:#e2ebfc;--g-primary-bg:#26364f;--g-text-primary:#f6f2e8;--g-text-secondary:#d0d6df;--g-text-muted:#b0bdcd;--g-text-tertiary:#b0bdcd;--g-text-inverse:#192a40;--g-bg-body:#182333;--g-bg-card:#223147;--g-bg-sidebar:#202e42;--g-bg-header:#202e42;--g-bg-input:#182a40;--g-bg-hover:#304059;--g-bg-active:#354969;--g-border-color:#46546a;--g-border-light:#344158;--g-accent:#adc8ff;--g-accent-dark:#adc8ff;--g-success:#9ad8b9;--g-success-bg:#1e4338;--g-danger:#ffa596;--g-danger-bg:#503136;--g-info-bg:#263d63;--g-info:#b0cdff}
body{font-family:var(--g-font-family);font-size:1rem;-webkit-font-smoothing:antialiased}
h1,h2,h3,.g-card-title{font-family:var(--g-font-display);font-weight:500;letter-spacing:-.025em}
.gf-brand{display:inline-flex;align-items:center;gap:10px;color:var(--g-text-primary);font:600 2.35rem/1 Fredoka,sans-serif;letter-spacing:-.045em;white-space:nowrap}
.gf-brand img{width:42px;height:42px;flex-shrink:0}.gf-brand-dot{color:#c16048}.gf-brand--light{color:#fffdf7}
a:has(.gf-brand):hover{text-decoration:none}
.gf-eyebrow{font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--g-text-secondary)}
.g-btn,.gf-button{min-height:46px;padding:11px 20px;font-weight:800;border-radius:14px;white-space:normal;transition:transform 160ms ease,background 160ms ease;}
.g-btn-primary,.gf-button{background:#243455;color:#fffdf7;border:1px solid #243455;box-shadow:0 4px 0 #14203a}
.gf-button{display:inline-flex;align-items:center;justify-content:center;gap:16px;text-decoration:none;cursor:pointer;min-height:54px}
.g-btn-primary:hover,.gf-button:hover{background:#344d79;color:#fffdf7;transform:translateY(-2px);text-decoration:none}
.gf-button--sun{background:var(--gf-sun);color:#243455;border-color:#243455}.gf-button--sun:hover{background:#ffdb72;color:#243455}
.g-btn-secondary{border-width:2px;box-shadow:0 3px 0 var(--g-border-color)}
.g-btn:active,.gf-button:active{transform:translateY(2px);box-shadow:none}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--g-accent);outline-offset:4px}
.g-card{border-radius:20px;box-shadow:var(--g-shadow-sm)}
.g-card-title{white-space:normal;overflow:visible;text-overflow:clip}
.g-header{backdrop-filter:none;padding:0 28px}.g-header-brand .gf-brand{font-size:2rem}.g-header-avatar{background:var(--gf-mint);color:#243455;border-radius:12px}
.g-sidebar{backdrop-filter:none;padding:18px 10px}.g-sidebar:hover,.g-sidebar:focus-within{width:var(--g-sidebar-width)}
.g-sidebar-link{min-height:48px;margin:5px 0;padding:12px;gap:12px;border-radius:14px;font-weight:700}
.g-sidebar-link span,.g-sidebar-section{opacity:1}.g-sidebar-section{padding:18px 12px 6px;font-size:.68rem;font-weight:800}
.g-sidebar-link.active{background:var(--gf-sun);color:#243455;box-shadow:0 3px 0 #d5a82e;font-weight:800}
.g-sidebar-link.active svg{stroke-width:2.5}.g-sidebar-bottom{margin-top:auto}.g-main{padding:32px clamp(20px,3vw,48px)}
.g-tab-content{max-width:1120px;margin-inline:auto}.g-tab-content>h1,.g-tab-content>h2{font-size:2.2rem!important}
.gf-sidebar-note{margin:28px 8px 8px;padding:15px 10px 0;border-top:1px dashed var(--g-border-dark);font-size:.85rem;color:var(--g-text-secondary)}
.gf-sidebar-note img{width:74px;display:block;margin-bottom:8px}.gf-sidebar-note strong{display:block;color:var(--g-text-primary)}
.g-today-intro{margin-top:6px;margin-bottom:28px;max-width:none}.g-today-intro h1{font-size:clamp(2rem,4vw,3.5rem);font-weight:500;letter-spacing:-.03em;line-height:1.12}
.g-today-kicker{color:var(--g-accent-dark);font-weight:800;letter-spacing:.1em}.g-today-intro>p:last-child{font-size:1rem}
.g-focus-card{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:24px;padding:32px;background:var(--gf-sky);color:#243455;border:2px solid #243455;border-radius:26px;box-shadow:0 7px 0 #243455;align-items:center}
.g-focus-card::after{display:none}.g-focus-marker{display:none}.g-focus-eyebrow{color:#344d79}.g-focus-copy h2{font-size:clamp(1.8rem,3vw,2.6rem);font-weight:500;line-height:1.12;letter-spacing:-.02em}
.g-focus-copy>p:not(.g-focus-eyebrow){color:#354765}.g-focus-meta{color:#354765;margin-top:20px;gap:10px;font-size:.85rem}
.g-focus-action{grid-column:1;justify-self:start;box-shadow:0 4px 0 #243455;border:2px solid #243455;min-height:52px;border-radius:14px}
.gf-focus-guide{grid-column:2;grid-row:1 / 3;align-self:center;width:180px;transform:rotate(7deg)}
.gf-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:32px 0 0}.gf-shortcut{display:flex;text-align:left;align-items:center;gap:18px;padding:22px;border:1px solid var(--g-border-color);background:var(--g-bg-card);color:var(--g-text-primary);border-radius:20px;cursor:pointer;transition:transform 160ms ease}
.gf-shortcut:hover{transform:translateY(-3px);border-color:var(--g-accent)}.gf-shortcut svg{width:40px;height:40px;stroke:currentColor;fill:none;stroke-width:1.8;flex-shrink:0}.gf-shortcut strong{display:block;font:500 1.4rem Fredoka,sans-serif}.gf-shortcut small{display:block;margin-top:5px;color:var(--g-text-secondary);font-size:.9rem}
.g-learning-snapshot{padding-top:38px}.g-section-heading>p{max-width:370px}.g-history-metric strong{font-family:Fredoka;font-weight:500;font-size:2rem}
.g-parent-link-card{border-left:1px solid var(--g-border-color)}.g-parent-link-card>.g-flex-between{gap:20px;flex-wrap:wrap}
.gf-library-intro{margin-bottom:28px}.gf-library-intro h2{font-size:2.5rem;margin:6px 0}.gf-library-intro p{color:var(--g-text-secondary)}
.gf-library-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:22px}
.gf-subject{display:flex;flex-direction:column;align-items:flex-start;gap:12px;text-align:left;padding:30px;border:2px solid #243455;border-radius:24px;background:var(--gf-mint);color:#243455;cursor:pointer;box-shadow:0 5px 0 #243455;min-height:230px}
.gf-subject h3{font-size:2rem}.gf-subject p{font-size:1rem;color:#38594b}.gf-subject-meta{margin-top:auto;display:flex;justify-content:space-between;width:100%;font-weight:800}
.gf-topic{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;gap:20px;margin:12px 0;padding:24px;background:var(--g-bg-card);color:var(--g-text-primary);border:1px solid var(--g-border-color);border-radius:20px;cursor:pointer}
.gf-topic:hover{border-color:var(--g-accent);background:var(--g-bg-hover)}.gf-topic strong{display:block;font:500 1.35rem Fredoka}.gf-topic p{margin-top:8px;color:var(--g-text-secondary)}
.gf-empty{padding:40px 24px;text-align:center;background:var(--g-bg-card);border:1px dashed var(--g-border-dark);border-radius:24px}.gf-empty img{width:100px}.gf-empty h2,.gf-empty h3{font-size:1.8rem;margin:12px 0}.gf-empty p{max-width:48ch;margin:0 auto 20px;color:var(--g-text-secondary)}
#step-content{max-width:850px;margin-inline:auto;padding:clamp(20px,4vw,40px)}.lesson-content{font-size:1.05rem!important;line-height:1.8!important}.lesson-content h2,.lesson-content h3{font-family:Fredoka!important}.lesson-content img{max-width:100%}
#step-nav{gap:12px;max-width:850px;margin-inline:auto}.step-nav-btn{min-height:48px!important;background:var(--g-bg-card)!important;color:var(--g-text-primary)!important;border-radius:14px!important;box-shadow:none!important}.step-nav-btn.primary{background:#243455!important;color:#fffdf7!important}
.step-progress-fill{background:#237b5f!important}.step-dot{min-width:14px;min-height:14px;border:0;padding:0}.step-dot:focus-visible{outline:3px solid var(--g-accent);outline-offset:4px}#step-dots{flex-wrap:wrap;padding:8px}
#quiz-form{max-width:780px;margin:auto}#quiz-form .g-card{padding:24px;border:0;border-radius:0;border-bottom:1px solid var(--g-border-color);box-shadow:none;background:transparent!important}#quiz-form label{min-height:52px;padding:12px 16px!important;border:2px solid var(--g-border-color)!important;background:var(--g-bg-card)}#quiz-form label:has(input:checked){border-color:var(--g-accent)!important;background:var(--g-primary-bg)}#quiz-form label:has(input:focus-visible){outline:3px solid var(--g-accent);outline-offset:3px}#quiz-form input[type=radio]{width:19px;height:19px;flex-shrink:0}
#review-tab .g-flex-between{flex-wrap:wrap;gap:16px}#review-tab .g-flex{flex-wrap:wrap}
.auth-page{background:#fcf9f2!important;background-image:radial-gradient(#d5d8d1 1px,transparent 1px)!important;background-size:24px 24px!important;align-items:flex-start!important;padding:50px 24px!important}
.auth-container{max-width:480px!important}.auth-header{margin-bottom:24px!important}.auth-header>a{display:inline-block;margin-bottom:24px}.auth-title{font-size:2.5rem!important;font-weight:500!important}.auth-subtitle{font-size:1rem!important;color:var(--g-text-secondary)!important}.auth-subtitle+.auth-subtitle{margin-top:8px;font-size:.85rem!important}
.auth-card{border:2px solid #243455!important;border-radius:26px!important;box-shadow:0 7px 0 #243455!important;padding:32px!important}.auth-input,.auth-select{min-height:52px;border:2px solid var(--g-border-color)!important;border-radius:12px!important;font-size:1rem!important;background:var(--g-bg-input)!important}.auth-input::placeholder{color:#687488!important}.auth-input:focus{border-color:var(--g-accent)!important}.auth-submit{min-height:52px;background:#243455!important;color:#fffdf7!important;font-size:1rem!important;border-radius:14px!important;box-shadow:0 4px 0 #152038;font-weight:800!important}.auth-footer{line-height:1.9}.auth-link-small{color:var(--g-accent-dark)!important;font-size:.85rem!important}.auth-copy{margin-top:24px!important}.auth-page::after{content:'';position:fixed;bottom:36px;left:max(20px,calc(50% - 450px));width:150px;height:160px;background:url('../images/illustrations/pip-curious.webp') center/contain no-repeat;pointer-events:none;z-index:-1}
.interim-nav .gf-brand img{height:42px}.interim-card h1{font-size:2.8rem}.verify-card{border:2px solid #243455!important;box-shadow:0 6px 0 #243455!important}.verify-card>.gf-brand{margin-bottom:24px}
@media(min-width:769px){.g-sidebar-link span{font-size:.94rem}.g-header-left{min-width:190px}}
@media(max-width:1000px){:root{--g-sidebar-width:190px;--g-sidebar-expanded:224px}.g-sidebar-link{gap:9px;padding:10px}.g-sidebar-link span{font-size:.85rem}.g-focus-card{grid-template-columns:minmax(0,1fr) 120px}.gf-focus-guide{width:120px}.gf-shortcut{padding:18px;gap:12px}}
@media(max-width:768px){.g-header{padding:0 18px}.g-header-brand .gf-brand{font-size:1.8rem}.gf-brand img{width:36px;height:36px}.g-main{padding:24px 18px}.g-sidebar,.g-sidebar:hover,.g-sidebar:focus-within{width:224px}.g-focus-card{padding:24px;gap:16px;grid-template-columns:minmax(0,1fr) 76px}.gf-focus-guide{width:76px;grid-row:1;align-self:start}.g-focus-action{grid-column:1/-1;width:100%}.g-focus-copy h2{font-size:1.8rem}.g-focus-meta{font-size:.78rem}.g-history-metrics{grid-template-columns:repeat(3,1fr)}.g-history-metric+.g-history-metric{padding-left:14px;border-top:0;border-left:1px solid var(--g-border-color)}.g-history-metric span,.g-history-metric small{font-size:.8rem}.gf-shortcuts{gap:12px}.gf-shortcut{display:block}.gf-shortcut svg{width:28px;margin-bottom:10px}.gf-shortcut strong{font-size:1.2rem}.auth-page::after{display:none}.g-flex-between{gap:12px}.gf-topic{padding:20px}.g-tab-content>h1,.g-tab-content>h2{font-size:1.8rem!important}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.lesson-content h2,.lesson-content h3{font-weight:500!important}.g-focus-copy h2{font-weight:500!important}
.gf-topic{display:block}.gf-topic>.g-flex-between{width:100%;gap:20px}.gf-topic .g-card-title{font-weight:500}.gf-lesson-choice .g-flex-between{flex-wrap:wrap}.gf-library-intro h1{font-size:clamp(2rem,4vw,3rem);margin:10px 0}
.step-dot{position:relative;width:20px!important;height:20px!important;min-width:20px;min-height:20px}.step-dot::after{content:'';position:absolute;inset:-8px}
.g-header-brand{min-height:44px}body[data-theme="dark"] .g-badge{background:#33465e;color:#e0eafa}body[data-theme="dark"] .gf-brand-dot{color:#f3a18b}
@media(max-width:768px){.gf-sidebar-note{display:none}.g-sidebar{visibility:hidden}.g-sidebar.open{visibility:visible}.g-sidebar-nav{min-height:0}.g-focus-copy h2{overflow-wrap:anywhere}#lesson-actions{flex-wrap:wrap}.g-main .g-flex-between{flex-wrap:wrap}.g-main .g-flex-center{min-width:0}.step-nav-btn{white-space:normal;max-width:100%}.lesson-content [style*="grid-template-columns"]{grid-template-columns:1fr!important}.lesson-content table{display:block;max-width:100%;overflow-x:auto}}
