[data-phx-session],[data-phx-teleported-src]{display:contents}.account-page{max-width:26rem}.page-header{margin-bottom:1.8rem}.account-page form{margin:0}.account-page form+form{margin-top:1.5rem}.field{margin:0 0 1.1rem}.field label{display:block}.field-label{color:var(--ink);margin-bottom:.35rem;font-size:.92rem;display:block}.field-input{width:100%;height:2.75rem;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--rule-strong);appearance:none;border-radius:.35rem;padding:0 .9rem;font-size:1rem;transition:border-color .16s,box-shadow .16s;display:block}textarea.field-input{resize:vertical;height:auto;min-height:6.5rem;padding-block:.6rem}.field-input:hover{border-color:var(--forest)}.field-input:focus{border-color:var(--forest);box-shadow:0 0 0 3px rgba(var(--tint),.14);outline:none}.field-input[readonly]{color:var(--muted);background:var(--paper)}.field-input.invalid{border-color:var(--brass)}.field .field-check{align-items:flex-start;gap:.6rem;font-size:.95rem;display:flex}.field-check input{accent-color:var(--forest);flex:none;width:1.1rem;height:1.1rem;margin:.2rem 0 0}.field-error{color:var(--brass);margin:.35rem 0 0;font-size:.86rem}.button{font:inherit;color:var(--forest);background:var(--paper);border:1px solid rgba(var(--tint),.35);cursor:pointer;border-radius:.35rem;justify-content:center;align-items:center;gap:.5rem;margin:.4rem .5rem 0 0;padding:.55rem 1.15rem;font-size:.95rem;line-height:1.3;text-decoration:none;transition:background-color .2s,border-color .2s,color .2s;display:inline-flex}.button:hover{color:var(--forest);background:var(--sage);border-color:var(--forest)}.button.primary{color:var(--button-ink);background:var(--button);border-color:var(--button)}.button.primary:hover{color:var(--button-ink);background:var(--button-hover);border-color:var(--button-hover)}.button:disabled,.phx-submit-loading .button{cursor:progress}.google-button svg{flex:none;width:1.1rem;height:1.1rem}.form-links{color:var(--muted);margin:1.5rem 0 0;font-size:.92rem}.rule{border:0;border-top:1px solid var(--rule);margin:2.4rem 0}.notice{background:var(--surface);border:1px solid var(--rule);border-left:3px solid var(--forest);cursor:pointer;border-radius:.35rem;margin:1.6rem 0 0;padding:.9rem 2.6rem 1rem 1.2rem;font-size:.95rem;line-height:1.5;position:relative}.account-page .notice{cursor:auto;margin:0 0 1.4rem}.notice[hidden]{display:none}.notice p{text-wrap:pretty;margin:0}.notice-title{font-weight:700}.notice-error{border-left-color:var(--brass)}.notice-close{width:2rem;height:2rem;font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0;font-size:1.2rem;line-height:1;position:absolute;top:.45rem;right:.5rem}.notice-close:hover{color:var(--forest)}.table{border-collapse:collapse;width:100%;font-size:.95rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--rule);padding:.6rem .75rem}.table th{letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-size:.8rem}.table .clickable{cursor:pointer}.list{margin:0}.list>div{border-bottom:1px solid var(--rule);padding:.6rem 0}.list dt{font-weight:700}.list dd{margin:0}.exam{max-width:var(--reading-width)}.exam-intro p{text-wrap:pretty}.exam-start{margin:1.4rem 0 0}.exam-start .field-input{max-width:26rem;margin-bottom:.9rem}.exam-messages{overscroll-behavior:contain;flex-direction:column;gap:.9rem;margin:1.4rem 0;padding-right:.3rem;display:flex;overflow-y:auto}body:has(.exam-sitting){height:100dvh}body:has(.exam-sitting) main{flex-direction:column;min-height:0;padding-bottom:1rem;display:flex}body:has(.exam-sitting) main>.wrap{flex-direction:column;flex:1;width:100%;min-height:0;display:flex}body:has(.exam-sitting) .site-footer{display:none}.exam-sitting{flex-direction:column;flex:1;width:100%;min-height:0;display:flex}.exam-sitting .page-header{margin-bottom:0}.exam-sitting .exam-messages{flex:1;min-height:8rem;margin:.4rem 0 1rem}.exam-progress{margin:.6rem 0 .5rem}.exam-sitting .exam-note{margin-top:.8rem}.exam-message{border-radius:.5rem;max-width:92%;padding:.7rem 1rem;line-height:1.5}.exam-message>:first-child{margin-top:0}.exam-message>:last-child{margin-bottom:0}.exam-assistant,.exam-page{background:var(--surface);border:1px solid var(--rule);align-self:flex-start}.exam-user{background:var(--sage);align-self:flex-end}.exam-user p{white-space:pre-wrap}.exam-learned{flex-wrap:wrap;align-self:flex-start;align-items:center;gap:.4rem .75rem;margin:-.2rem 0 0 .25rem;display:flex}.exam-learned-ask{color:var(--muted);margin:0;font-size:.95rem}.exam-learned .mark-learned{margin:0}.exam-page a:has(>img){line-height:0;display:block}.exam-page img{border-radius:.3rem;width:100%;max-width:18rem;height:auto;display:block}.exam-note{color:var(--muted);text-wrap:pretty;margin:1.2rem 0 0;font-size:.9rem}.exam-status{color:var(--muted);margin:.4rem 0 0;font-size:.86rem}.exam-message>.exam-report{justify-content:flex-end;margin:.15rem -.5rem -.4rem 0;display:flex}.exam-report:has(.exam-report-form),.exam-report:has(.exam-reported){justify-content:flex-start;margin:.6rem 0 0}.exam-report-button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:.3rem;align-items:center;gap:.35rem;margin:0;padding:.2rem .4rem;font-size:.86rem;line-height:1.3;display:inline-flex}.exam-report-button:before{width:.95rem;height:.95rem}.exam-report-form{width:100%}.exam-report-form .field-input{min-height:3.4rem}.exam-reported{color:var(--muted);margin:0;font-size:.86rem}.exam-form{margin:0}.exam-input{field-sizing:content;min-height:4.5rem;max-height:50vh}.exam-actions{flex-wrap:wrap;align-items:center;gap:0 .5rem;display:flex}.exam-left{color:var(--muted);margin-left:auto;font-size:.9rem}.profile-head{grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:1.3rem;margin:1.6rem 0 0;display:grid}.profile-head .page-title{margin:0}.profile-since{color:var(--muted);text-wrap:pretty;grid-column:2;margin:.25rem 0 0;font-size:.95rem;line-height:1.45}.profile-ways{flex-wrap:wrap;grid-column:2;gap:.2rem 1.3rem;margin:.55rem 0 0;font-size:.9rem;line-height:1.45;display:flex}.profile-ways a{align-items:center;gap:.4rem;text-decoration:none;display:inline-flex}.profile-ways .word{text-underline-offset:.16em;text-decoration:underline;text-decoration-thickness:1px}.profile-ways .way-mark{fill:none;width:1.15rem;height:1.15rem;stroke:var(--forest);stroke-width:1.3px;stroke-linecap:round;stroke-linejoin:round}.profile-ways .touch{display:none}@media (hover:none) and (pointer:coarse){.profile-ways .fine{display:none}.profile-ways .touch{display:inline}}.profile-avatar{grid-row:span 3;width:5rem;height:5rem}.profile-avatar .avatar-mark{width:4.1rem;height:4.1rem}.learning{margin-top:2.4rem}.learning-total{color:var(--muted);font-variant-numeric:tabular-nums;margin:0 0 .6rem;font-size:1.05rem}.subjects-bar{column-gap:.2rem;margin:0;padding:0;list-style:none;display:grid}.subjects-bar a{color:var(--muted);text-decoration:none;display:block}.subjects-bar .bar{background:var(--rule);height:.75rem;display:block}.subjects-bar .fill{background:var(--forest);height:100%;display:block}.subjects-bar .roman{letter-spacing:.04em;margin-top:.35rem;font-size:.8rem;font-weight:700;line-height:1.2;display:block}.subjects-bar .done a{color:var(--forest)}.pending-edits{color:var(--muted);font-variant-numeric:tabular-nums;text-wrap:pretty;margin:1.5rem 0 0;font-size:.95rem;line-height:1.5}.medals-section{margin-top:2.8rem}.medals-title{margin:0 0 .9rem;font-size:1.5rem;line-height:1.2}.medals-title .count{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:.45rem;font-size:1rem;font-weight:400}.medals{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem 1rem;margin:0 -.4rem;padding:0;list-style:none;display:grid}.badge-button{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:.5rem;grid-template-columns:4rem minmax(0,1fr);align-items:center;column-gap:.9rem;margin:0;padding:.55rem .4rem;transition:background-color .12s linear;display:grid}.badge-button:hover{background:var(--highlight)}.badge-button:focus-visible{outline:2px solid var(--forest);outline-offset:2px}.badge-button .medal{transition:transform .28s cubic-bezier(.34,1.4,.64,1)}.badge-button:hover .medal,.badge-button:focus-visible .medal{transform:translateY(-.15rem)}.medals .medal{width:4rem;height:4rem}.medals .text{min-width:0;display:block}.medals .share{display:none}.medals .name{text-wrap:balance;font-size:1rem;font-weight:700;line-height:1.25;display:block}.medals .note{color:var(--muted);text-wrap:pretty;margin-top:.15rem;font-size:.84rem;line-height:1.35;display:block}.medals .when{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:.2rem;font-size:.8rem;line-height:1.35;display:block}.progress{align-items:center;gap:.55rem;margin-top:.4rem;display:flex}.progress .bar{background:var(--rule);flex:1;height:.45rem;display:block}.progress .fill{background:var(--forest);height:100%;display:block}.progress .count{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.8rem;line-height:1}.locked .medal-face{fill:none}.locked .medal-rim{stroke:var(--rule)}.locked .medal-mark{stroke:var(--rule-strong)}.locked .medal-text{fill:var(--rule-strong)}.locked .name{color:var(--muted)}body:has(.badge-detail[open]){overflow:hidden}.badge-detail{width:min(40rem,100% - 2rem);max-height:calc(100% - 2rem);color:var(--ink);background:var(--paper);border:1px solid var(--rule);box-shadow:0 18px 32px -18px var(--drop-shadow);border-radius:.6rem;margin:auto;padding:0;overflow:auto}.badge-detail::backdrop{background:var(--drop-shadow)}.badge-detail-body{padding:2rem 1.8rem 1.9rem;position:relative}.badge-detail-close{width:2.4rem;height:2.4rem;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;margin:0;padding:0;position:absolute;top:.7rem;right:.7rem}.badge-detail-close svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;width:1.3rem;height:1.3rem}.badge-detail-close:focus-visible{outline:2px solid var(--forest);outline-offset:2px}.badge-detail-head{text-align:center}.badge-detail-head .medal{width:7.5rem;height:7.5rem;margin:0 auto .9rem}.badge-detail-head .name{text-wrap:balance;font-size:1.4rem;font-weight:700;line-height:1.2;display:block}.badge-detail-head .share{color:var(--muted);margin-top:.2rem;font-size:.9rem;line-height:1.4;display:block}.badge-detail-head .share+.note{margin-top:.8rem}.badge-detail-head .note{color:var(--muted);text-wrap:pretty;margin-top:.35rem;font-size:1rem;line-height:1.4;display:block}.badge-detail-head .when{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:.3rem;font-size:.9rem;line-height:1.4;display:block}.badge-detail-head .progress{max-width:16rem;margin:.6rem auto 0}.badge-series-text{max-width:30rem;color:var(--muted);text-align:center;text-wrap:pretty;margin:1.3rem auto 0;font-size:.95rem;line-height:1.5}.badge-series h3{margin:1.8rem 0 .7rem;font-size:1.05rem;line-height:1.25}.badge-rungs{grid-template-columns:repeat(2,minmax(0,1fr));gap:.3rem .6rem;margin:0 -.5rem;padding:0;list-style:none;display:grid}.rung{border-radius:.5rem;grid-template-columns:3.1rem minmax(0,1fr);align-items:center;column-gap:.75rem;padding:.45rem .5rem;display:grid}.rung .medal{grid-row:span 3;width:3.1rem;height:3.1rem;margin:0}.rung .name{font-size:.95rem;line-height:1.3}.rung .note,.rung .when{color:var(--muted);font-size:.8rem;line-height:1.35;display:block}.rung .when{font-variant-numeric:tabular-nums}.rung.current{background:var(--sage)}@media (max-width:38rem){.profile-head{column-gap:1rem}.profile-avatar{grid-row:span 2;width:4rem;height:4rem}.profile-avatar .avatar-mark{width:3.3rem;height:3.3rem}.profile-ways{grid-column:1/-1;gap:.2rem 1.1rem;margin-top:1rem}.learning{margin-top:2rem}.subjects-bar .bar{height:.65rem}.subjects-bar .roman{letter-spacing:.02em;font-size:.72rem}.pending-edits{font-size:.9rem}.medals{grid-template-columns:minmax(0,1fr);gap:.2rem;margin:0 -.3rem}.badge-button{grid-template-columns:3.6rem minmax(0,1fr);column-gap:.75rem;padding:.45rem .3rem}.medals .medal{width:3.6rem;height:3.6rem}.badge-detail{width:calc(100% - 1.2rem);max-height:calc(100% - 1.2rem)}.badge-detail-body{padding:1.7rem 1rem 1.4rem}.badge-detail-head .medal{width:6.2rem;height:6.2rem}.badge-rungs{grid-template-columns:minmax(0,1fr);margin:0 -.3rem}}