/* App screens rebuilt in HTML for the landing page phone frames, drawn in the app's Paper theme.
   Each screen is laid out on a 560px-wide canvas (the size of the old screenshots) and scaled to fit. */
.app {
  --bg: #F1ECE0; --s1: #FBF8F1; --s2: #E7E0CF; --s3: #E7E0CF; --line: #151412; --line2: #151412;
  --t1: #151412; --t2: #47433C; --t3: #847E72; --t4: #847E72;
  --teal: #1F7A3A; --teal-bg: #DCEBD3; --yel: #D42A1E; --code: #DCD3BF;
  --mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  --sans: 'IBM Plex Sans', ui-sans-serif, system-ui, -apple-system, sans-serif;
  position: absolute; left: 0; top: 0; width: 560px; height: 1265px; transform-origin: 0 0;
  display: flex; flex-direction: column; overflow: hidden;
  background: var(--bg); color: var(--t1); font: 400 18px/1.45 var(--sans); letter-spacing: -0.012em;
  text-align: left; user-select: none; -webkit-user-select: none; pointer-events: none;
}
.app * { box-sizing: border-box; }
.app svg.i { flex: none; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.app svg.i.f { fill: currentColor; stroke: none; }
.app code { font: 500 .92em/1 var(--mono); letter-spacing: 0; background: var(--code); padding: .16em .38em; border-radius: 3px; white-space: nowrap; }

/* status bar + island + home indicator */
.app .sb { flex: none; height: 88px; display: flex; align-items: center; justify-content: space-between; padding: 0 50px 0 78px; position: relative; z-index: 3; }
.app .sb b { font: 600 22px/1 var(--sans); letter-spacing: -0.01em; }
.app .sb span { display: flex; align-items: center; gap: 7px; }
.app .island { position: absolute; top: 18px; left: 50%; width: 176px; height: 52px; margin-left: -88px; border-radius: 26px; background: #000; z-index: 4; }
.app .hi { position: absolute; left: 50%; bottom: 12px; width: 200px; height: 6px; margin-left: -100px; border-radius: 3px; background: #847E72; z-index: 6; }

/* type */
.app .mi { font: 500 13px/1.2 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--t3); }
.app .mono { font-family: var(--mono); letter-spacing: 0; }
.app .t2 { color: var(--t2); } .app .t3 { color: var(--t3); } .app .teal { color: var(--teal); } .app .yel { color: var(--yel); }
.app .pg { flex: 1; min-height: 0; padding: 0 22px; display: flex; flex-direction: column; }
.app .pg > * { flex-shrink: 0; }
.app .head { padding-top: 18px; margin-bottom: 26px; display: flex; justify-content: space-between; align-items: flex-start; }
.app .head h1 { margin: 6px 0 0; font: 600 27px/1.2 var(--sans); letter-spacing: -0.03em; }
.app .sq { width: 44px; height: 44px; border-radius: 11px; background: var(--s3); border: 1px solid var(--line2); display: grid; place-items: center; color: var(--t1); }
.app .cd { background: var(--s1); border: 1px solid var(--line); border-radius: 14px; }
.app .tx { background-color: #FBF8F1; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1.6 -0.9'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.13'/%3E%3C/svg%3E"); }
.app .sec { display: flex; justify-content: space-between; margin: 0 4px 12px; }
.app .bdg { display: inline-flex; align-items: center; gap: 5px; height: 26px; padding: 0 8px; border-radius: 6px; background: var(--s3); border: 1px solid var(--line2); font: 600 13px/1 var(--mono); color: #151412; letter-spacing: .02em; white-space: nowrap; }
.app .btn { height: 66px; border-radius: 12px; display: flex; align-items: center; justify-content: center; gap: 12px; font: 600 20px/1 var(--sans); letter-spacing: -0.02em; flex: none; }
.app .btn.w { background: #151412; color: #F1ECE0; }
.app .btn.d { height: 60px; background-color: #FBF8F1; border: 1px solid var(--line); color: var(--t1); font-size: 19px; }
.app .pb { height: 3px; border-radius: 2px; background: #DCD3BF; overflow: hidden; }
.app .pb i { display: block; height: 100%; background: #151412; border-radius: 2px; }
.app .ava { flex: none; border-radius: 50%; }
.app .row { display: flex; align-items: center; }

/* tab bar */
.app .tabs { position: absolute; left: 0; right: 0; bottom: 0; height: 168px; padding-top: 0; display: grid; grid-template-columns: repeat(4, 1fr); background: var(--bg); border-top: 1px solid #151412; z-index: 5; }
.app .tabs div { position: relative; display: flex; flex-direction: column; align-items: center; gap: 8px; padding-top: 14px; color: #847E72; font: 500 12.5px/1 var(--mono); letter-spacing: .14em; }
.app .tabs div.on { color: #151412; }
.app .tabs div.on::before { content: ''; position: absolute; top: -1px; width: 26px; height: 2px; background: #151412; }

/* home */
.app .st3 { display: grid; grid-template-columns: repeat(3, 1fr); }
.app .st3 > div { padding: 20px 18px 20px; border-right: 1px solid var(--line); min-height: 150px; }
.app .st3 > div:last-child { border-right: 0; }
.app .st3 .big { font: 600 33px/1 var(--sans); letter-spacing: -0.03em; margin: 18px 0 18px; }
.app .st3 .big small { font: 400 19px var(--mono); color: var(--t3); letter-spacing: 0; }
.app .st3 p { margin: 0; font: 400 15px/1 var(--mono); color: var(--t3); }
.app .safe { display: flex; align-items: center; gap: 12px; padding: 14px 20px; border-top: 1px solid var(--line); font-size: 16px; color: #151412; }
.app .safe i { width: 8px; height: 8px; border-radius: 50%; background: var(--yel); }
.app .safe span { margin-left: auto; display: flex; gap: 8px; align-items: center; color: var(--t3); font: 400 15px var(--mono); }
.app .hb { padding: 22px 22px 22px; margin-top: 24px; }
.app .hb h2 { font: 600 26px/1.2 var(--sans); letter-spacing: -0.03em; margin: 22px 0 8px; }
.app .lrow { display: flex; align-items: center; gap: 16px; padding: 16px 20px; margin-bottom: 28px; }
.app .lrow .sq { width: 36px; height: 36px; border-radius: 8px; color: var(--t2); }
.app .lrow b { display: block; font: 500 18px/1.3 var(--sans); }
.app .lrow small { display: block; font-size: 16px; line-height: 1.35; color: var(--t3); }
.app .week { display: flex; align-items: flex-end; gap: 30px; height: 64px; margin-top: 18px; padding: 0 12px; }
.app .week i { flex: 1; height: 3px; background: #DCD3BF; border-radius: 2px; }
.app .week i.on { height: 56px; background: #151412; border-radius: 3px; }

/* session */
.app .sh { display: flex; align-items: center; gap: 18px; padding: 16px 22px 0; height: 58px; flex: none; }
.app .sh .mi { flex: 1; }
.app .sh .cnt { font: 600 17px var(--mono); }
.app .sh .cnt span, .app .sh .xp span { color: var(--t3); font-weight: 400; }
.app .sh .xp { font: 600 17px var(--mono); min-width: 64px; text-align: right; }
.app .sh .xp span { font-size: 13px; }
.app .prog { margin: 13px 22px 0; height: 3px; background: #DCD3BF; border-radius: 2px; flex: none; }
.app .prog i { display: block; height: 100%; width: 12.5%; background: #151412; border-radius: 2px; transition: width .6s cubic-bezier(.2,.7,.2,1); }
.app .qh { display: flex; align-items: center; gap: 12px; margin-top: 36px; }
.app .qh .grow { flex: 1; }
.app .topic { margin: 12px 0 26px; }
.app .prompt { font: 600 22.5px/34px var(--sans); letter-spacing: -0.025em; margin: 0 0 30px; }
.app .prompt code { font-size: .88em; padding: .2em .45em; }
.app .codeblock { margin: 14px 0; padding: 16px 16px; border-radius: 6px; background: var(--code); font: 500 18px/1.4 var(--mono); letter-spacing: 0; white-space: pre; }
.app .ch { display: flex; align-items: center; gap: 18px; padding: 18px 20px; margin-bottom: 12px; border-radius: 12px; border: 1px solid #151412; background: #FBF8F1; font-size: 19px; line-height: 30px; color: #151412; transition: border-color .4s, background-color .4s, color .4s, opacity .4s; }
.app .ch .k { flex: none; width: 30px; height: 30px; border-radius: 7px; background: #E7E0CF; display: grid; place-items: center; font: 500 13px var(--mono); color: var(--t3); transition: all .4s; }
.app .ch .k svg { display: none; }
.app .footer { position: absolute; left: 0; right: 0; bottom: 0; padding: 18px 22px 70px; border-top: 1px solid #151412; background: var(--bg); z-index: 4; }
.app .ghost { height: 66px; display: flex; align-items: center; justify-content: center; font: 500 18px var(--sans); color: var(--t2); }
.app .res { padding: 22px 20px 22px; border-radius: 12px; border: 1px solid rgba(31, 122, 58, .75); background: var(--teal-bg); }
.app .res h3 { display: flex; align-items: center; gap: 12px; margin: 0 0 12px; font: 600 26px/1 var(--sans); color: var(--teal); letter-spacing: -0.03em; }
.app .res p { margin: 0 0 16px; font-size: 17px; color: #151412; }
.app .pills { display: flex; gap: 8px; }
.app .pills span { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 10px; border-radius: 6px; background: #DCEBD3; border: 1px solid #1F7A3A; font: 500 14px var(--mono); letter-spacing: .04em; }

/* answer animation: .on = answered */
.app[data-anim=answer] .ch.ok.sel { border-color: rgba(31, 122, 58, .8); background: var(--teal-bg); }
.app[data-anim=answer] .sel .k { background: transparent; border: 1.5px solid var(--teal); color: var(--teal); }
.app[data-anim=answer] .sel .k b { display: none; } .app .sel .k svg { display: block; }
.app[data-anim=answer] .ch.dim { color: #847E72; background: transparent; border-style: dashed; border-color: #151412; }
.app[data-anim=answer] .ch.dim .k { color: #847E72; background: #FBF8F1; }
.app[data-anim=answer] .res { opacity: 0; transform: translateY(14px); transition: opacity .45s .15s, transform .45s .15s cubic-bezier(.2,.7,.2,1); }
.app[data-anim=answer].on .res { opacity: 1; transform: none; }
.app[data-anim=answer] .when-on { display: none; } .app[data-anim=answer].on .when-on { display: flex; }
.app[data-anim=answer].on .when-off { display: none; }
.app[data-anim=answer].on .xp .when-on { display: inline; }

/* flashcard */
.app .hidden-a { display: flex; flex-direction: column; align-items: center; gap: 18px; padding: 36px 40px; border: 1px solid var(--line); border-radius: 14px; text-align: center; color: var(--t2); font-size: 18px; line-height: 1.5; }

/* ranks */
.app .seg { display: grid; grid-template-columns: 1fr 1fr; padding: 4px; border-radius: 24px; background: #E7E0CF; height: 46px; font: 500 17px var(--mono); letter-spacing: 0; text-align: center; margin-bottom: 28px; }
.app .seg span { display: grid; place-items: center; border-radius: 20px; color: #847E72; }
.app .seg span.on { background: #F1ECE0; color: #151412; }
.app .podium { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; align-items: end; margin-bottom: 22px; }
.app .podium > div { display: flex; flex-direction: column; align-items: center; text-align: center; }
.app .podium b { font: 600 18.5px var(--sans); margin-top: 14px; letter-spacing: -0.02em; }
.app .podium small { font: 400 15px var(--mono); color: var(--t2); margin: 6px 0 16px; }
.app .podium .blk { width: 100%; border-radius: 10px; border: 1px solid var(--line); display: grid; place-items: start center; padding-top: 14px; font: 500 16px var(--mono); color: #847E72; }
.app .podium .one .blk { border-color: #847E72; color: #151412; background-color: #FBF8F1; }
.app .board .hdr, .app .board .r { display: grid; grid-template-columns: 64px 1fr 80px 70px; align-items: center; padding: 0 20px; }
.app .board .hdr { height: 42px; font: 500 12px var(--mono); letter-spacing: .14em; color: #847E72; }
.app .board .hdr span:nth-child(n+3), .app .board .r > :nth-child(n+3) { text-align: right; }
.app .board .r { height: 68px; border-top: 1px solid #151412; }
.app .board .r > span:first-child { font: 400 17px var(--mono); color: #847E72; }
.app .board .u { display: flex; align-items: center; gap: 14px; font: 500 18.5px var(--sans); letter-spacing: -0.015em; }
.app .board .st { font: 400 16px var(--mono); color: var(--t2); display: flex; justify-content: flex-end; gap: 6px; align-items: center; }
.app .board .x { font: 600 17px var(--mono); }
.app .board .r.me { background: #E7E0CF; }
.app .board .r.me > span:first-child { color: #151412; }
.app .you { font: 600 13px var(--mono); background: #151412; color: #F1ECE0; border-radius: 6px; padding: 4px 8px; letter-spacing: .04em; }

/* lobby / live */
.app .mh { flex: none; height: 74px; position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; margin-bottom: 20px; }
.app .mh b { font: 600 19px var(--sans); letter-spacing: -0.02em; }
.app .mh small { font: 400 13px var(--mono); color: var(--t3); margin-top: 4px; }
.app .mh svg { position: absolute; right: 34px; top: 50%; margin-top: -11px; color: var(--t2); }
.app .code { padding: 30px 28px 28px; text-align: center; margin-bottom: 34px; }
.app .code .big { font: 700 60px/1 var(--mono); letter-spacing: .1em; margin: 18px 0 30px; padding-left: .1em; }
.app .plr { display: flex; align-items: center; gap: 16px; height: 67px; border-bottom: 1px solid #151412; font: 500 18.5px var(--sans); letter-spacing: -0.015em; }
.app .plr:last-child { border-bottom: 0; }
.app .plr .s { margin-left: auto; font: 600 18px var(--mono); }
.app .timer { display: flex; align-items: center; gap: 20px; margin: 18px 0 32px; }
.app .timer .pb { flex: 1; height: 4px; }
.app .timer .pb i { width: 100%; transform-origin: left; }
.app .timer b { font: 600 19px var(--mono); width: 22px; text-align: right; }
.app .lch { display: flex; align-items: center; gap: 28px; padding: 18px 20px 18px 20px; margin-bottom: 12px; border-radius: 12px; border: 1px solid #151412; font-size: 19px; line-height: 30px; color: #151412; }
.app .lch > b { font: 500 15px var(--mono); color: #47433C; }

/* tracks */
.app .tg { padding: 0; margin-bottom: 40px; }
.app .tr { display: flex; gap: 18px; padding: 18px 18px 14px 20px; border-bottom: 1px solid #151412; align-items: center; }
.app .tr:last-child { border-bottom: 0; }
.app .tr .sq { width: 56px; height: 56px; border-radius: 12px; color: #151412; background: #E7E0CF; border-color: #151412; }
.app .tr .sq.pri { border: 1.5px solid #151412; background: transparent; color: #151412; }
.app .tr .m { flex: 1; min-width: 0; }
.app .tr .t { display: flex; align-items: baseline; gap: 10px; font: 500 19.5px var(--sans); letter-spacing: -0.02em; }
.app .tr .t small { font: 400 12.5px var(--mono); letter-spacing: .1em; color: #847E72; }
.app .tr .t .n { margin-left: auto; font: 600 19px var(--mono); }
.app .tr .mid { display: flex; align-items: center; justify-content: space-between; margin: 10px 0 8px; }
.app .tr .mid .pb { width: 185px; height: 3px; background: transparent; }
.app .tr .mid .pb.grey i { background: #47433C; }
.app .tr .mid span { font: 400 15px var(--mono); color: #847E72; }
.app .tr .co { font-size: 16px; color: #847E72; line-height: 1.4; }
.app .tr > svg:last-child { color: #847E72; }

/* track detail */
.app .chips { display: flex; gap: 10px; flex-wrap: wrap; margin: 10px 0 24px; }
.app .chips span { font: 500 13.5px var(--mono); letter-spacing: .06em; padding: 6px 9px; border-radius: 6px; background: #E7E0CF; border: 1px solid #151412; color: #151412; }
.app .skill { display: grid; grid-template-columns: 1fr 195px; position: relative; overflow: hidden; margin-bottom: 24px; }
.app .skill > .c1 { padding: 22px 22px 26px; }
.app .skill > .c2 { border-left: 1px solid var(--line); display: grid; gap: 22px; padding: 22px 20px; }
.app .skill .kv { display: flex; justify-content: space-between; align-items: center; font: 400 17px var(--mono); }
.app .skill .kv .mi { font-size: 12.5px; }
.app .skill .pct { font: 600 56px/1 var(--mono); letter-spacing: -0.04em; margin: 12px 0 20px; }
.app .skill .pct small { font-size: 16px; color: var(--t3); letter-spacing: 0; margin-left: 4px; }
.app .skill .pb { position: absolute; left: 0; right: 0; bottom: 0; border-radius: 0; height: 3px; }
.app .topics .tp { padding: 18px 20px 16px; border-bottom: 1px solid #151412; display: flex; align-items: center; gap: 16px; }
.app .topics .tp > div { flex: 1; }
.app .topics .tp .t { display: flex; justify-content: space-between; font: 500 19px var(--sans); letter-spacing: -0.02em; margin-bottom: 10px; }
.app .topics .tp .t span { font: 500 18px var(--mono); }
.app .topics .tp .l { display: flex; align-items: center; gap: 40px; }
.app .topics .tp .l .mi { font-size: 13px; }
.app .topics .tp .l .pb { flex: 1; height: 3px; }
.app .topics .tp .l small { font: 400 14px var(--mono); color: #847E72; }
.app .topics .tp > svg { color: #847E72; }

/* profile */
.app .pc { padding: 22px 22px 24px; margin-bottom: 22px; }
.app .grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 22px; }
.app .grid2 .cd { padding: 20px 20px 22px; min-height: 102px; position: relative; }
.app .grid2 .cd svg { position: absolute; right: 18px; top: 20px; color: #847E72; }
.app .grid2 .v { font: 500 30px/1 var(--sans); letter-spacing: -0.02em; margin-top: 18px; }
.app .grid2 small { display: block; font: 400 15px var(--mono); color: var(--t3); margin-top: 16px; }
.app .heat { display: grid; grid-template-columns: repeat(12, 1fr); gap: 4px; width: 240px; }
.app .heat i { aspect-ratio: 1; border-radius: 3px; background: #E7E0CF; }
.app .heat i.h { background: #47433C; outline: 2px solid var(--yel); outline-offset: -2px; }
.app .heat i.x { visibility: hidden; }

/* plans */
.app .sheet { flex: 1; margin-top: 12px; border-radius: 22px 22px 0 0; background: #F1ECE0; border-top: 1px solid #151412; position: relative; padding: 0 22px; display: flex; flex-direction: column; }
.app .peek { position: absolute; left: 22px; right: 22px; top: 86px; height: 40px; border-radius: 14px; background: #FBF8F1; }
.app .ben { display: grid; gap: 14px; margin: 26px 0 24px; font-size: 18px; color: #151412; }
.app .ben div { display: flex; gap: 14px; align-items: center; }
.app .plan { display: flex; align-items: center; gap: 18px; padding: 16px 20px; border-radius: 12px; border: 1px solid #151412; margin-bottom: 12px; min-height: 88px; }
.app .plan.on { border: 2px solid #151412; background: #F1ECE0; }
.app .plan .rd { width: 24px; height: 24px; border-radius: 50%; border: 2px solid #847E72; flex: none; display: grid; place-items: center; }
.app .plan.on .rd { border-color: #151412; }
.app .plan.on .rd::after { content: ''; width: 12px; height: 12px; border-radius: 50%; background: #151412; }
.app .plan .m { flex: 1; }
.app .plan .m b { font: 600 20px var(--sans); letter-spacing: -0.02em; display: flex; align-items: center; gap: 12px; }
.app .plan .m b span { font: 500 13px var(--mono); letter-spacing: .1em; padding: 5px 9px; border-radius: 5px; background: #E7E0CF; }
.app .plan .m small { display: block; font-size: 15.5px; color: var(--t2); margin-top: 4px; line-height: 1.4; }
.app .plan .p { text-align: right; }
.app .plan .p b { display: block; font: 600 19.5px var(--mono); }
.app .plan .p small { font: 400 15px var(--mono); color: #847E72; }

/* explainer */
.app .ex { padding: 20px 20px 18px; margin-top: 14px; }
.app .cd.ex { margin-bottom: 0; }
.app .ex p { margin: 14px 0 0; font-size: 17.5px; line-height: 1.55; color: #151412; }
.app .ex + .btn { margin-top: 14px; }

/* tutor sheet */
.app .tsheet { padding: 0; background: var(--bg); }
.app .th { display: flex; align-items: center; justify-content: space-between; padding: 26px 28px 20px; border-bottom: 1px solid #151412; color: var(--t2); }
.app .th b { display: block; font: 600 20px var(--sans); letter-spacing: -0.02em; color: var(--t1); }
.app .th small { display: block; font: 400 14px var(--mono); color: var(--t3); margin-top: 4px; }
.app .thread { flex: 1; min-height: 0; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; padding: 22px 22px 18px; gap: 14px; }
.app .ctx { flex-shrink: 0; margin-bottom: auto; }
.app .ctx p { margin: 8px 0 0; font-size: 16.5px; line-height: 1.5; color: var(--t2); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.app .msgs { display: flex; flex-direction: column; gap: 12px; transition: opacity .35s; flex-shrink: 0; }
.app .bub { max-width: 84%; padding: 13px 16px; border-radius: 18px; border: 1px solid; font-size: 17.5px; line-height: 1.5; color: var(--t1); }
.app .bub.me { align-self: flex-end; background: #E7E0CF; border-color: #151412; border-bottom-right-radius: 6px; }
.app .bub.ai { align-self: flex-start; background: #FBF8F1; border-color: #151412; border-bottom-left-radius: 6px; }
.app .msgs .bub { opacity: 0; transform: translateY(10px); transition: opacity .35s, transform .35s cubic-bezier(.2,.7,.2,1); }
.app .msgs .bub.in { opacity: 1; transform: none; }
.app .bub.dots { display: flex; gap: 6px; padding: 18px 18px; }
.app .bub.dots i { width: 8px; height: 8px; border-radius: 50%; background: #847E72; animation: kys-dot 1s infinite ease-in-out; }
.app .bub.dots i:nth-child(2) { animation-delay: .15s; } .app .bub.dots i:nth-child(3) { animation-delay: .3s; }
@keyframes kys-dot { 0%, 80%, 100% { opacity: .3; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-4px); } }
.app .composer { flex: none; padding: 14px 22px 64px; border-top: 1px solid #151412; }
.app .inp { display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 8px 8px 8px 20px; border-radius: 28px; border: 1px solid #151412; background: #FBF8F1; font-size: 18px; }
.app .inp .draft { flex: 1; min-width: 0; color: var(--t1); white-space: nowrap; overflow: hidden; }
.app .inp .draft:empty { display: none; }
.app .inp .ph { flex: 1; color: #847E72; }
.app .inp.typing .ph { display: none; }
.app .inp .send { flex: none; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: #DCD3BF; color: #847E72; transition: background .2s, color .2s; }
.app .inp.ready .send, .app .inp.typing .send { background: #151412; color: #F1ECE0; }

/* context peek, context sheet and beginner lesson */
.app .peekc { position: absolute; left: 22px; right: 22px; bottom: 156px; height: 220px; z-index: 5; pointer-events: none; }
.app .peekc img { position: absolute; left: 0; bottom: 0; height: 220px; width: auto; }
.app .peekc .bubble { position: absolute; left: 196px; bottom: 112px; max-width: 290px; padding: 14px 18px; background: #FBF8F1; border: 2.5px solid #151412; font: 600 19px/1.35 var(--sans); }
.app .peekc .bubble::before { content: ''; position: absolute; left: -10px; bottom: 18px; width: 16px; height: 16px; background: #FBF8F1; border-left: 2.5px solid #151412; border-bottom: 2.5px solid #151412; transform: rotate(45deg); }
.app .csheet { margin-top: 36px; padding: 0; }
.app .cbody { padding: 22px 26px; display: flex; flex-direction: column; gap: 18px; }
.app .spk { display: flex; align-items: center; gap: 16px; }
.app .spk p { margin: 4px 0 0; color: var(--t2); font-size: 17px; line-height: 1.4; }
.app .face { flex: none; width: 74px; height: 74px; border: 1.5px solid #151412; background: #E7E0CF; overflow: hidden; display: block; }
.app .face img { width: 74px; height: auto; display: block; }
.app .said { border: 1.5px solid #151412; background: #FBF8F1; padding: 20px 22px; }
.app .said h4 { margin: 0 0 10px; font: 700 26px/1 'Archivo', var(--sans); font-stretch: 70%; text-transform: uppercase; letter-spacing: 0; }
.app .said p { margin: 0; font-size: 18px; line-height: 1.5; }
.app svg.mini { width: 100%; height: auto; }
.app svg.mini rect { fill: #FBF8F1; stroke: #151412; stroke-width: 1.5; }
.app svg.mini text { font: 600 15px var(--mono); text-anchor: middle; fill: #151412; }
.app svg.mini .lk path { stroke: #847E72; stroke-width: 1.5; fill: none; }
.app .terms { border: 1.5px solid #151412; background: #FBF8F1; }
.app .terms div { padding: 12px 18px; display: flex; flex-direction: column; gap: 2px; font-size: 16px; }
.app .terms div + div { border-top: 1.5px solid #151412; }
.app .terms span { color: var(--t2); }
.app .dots { display: flex; gap: 8px; padding: 0 22px; margin: 6px 0 24px; }
.app .dots i { flex: 1; height: 4px; background: #DCD3BF; }
.app .dots i.on { background: #151412; }
.app .ltitle { margin: 26px 0 10px; font: 800 34px/1 'Archivo', var(--sans); font-stretch: 70%; text-transform: uppercase; }
.app .lbody { margin: 0 0 18px; font-size: 19px; line-height: 1.5; }
.app svg.graph { width: 100%; height: auto; border: 1.5px solid #151412; background: #FBF8F1; padding: 10px; }
.app svg.graph .e { fill: none; stroke: #151412; stroke-width: 2.5; }
.app svg.graph circle { fill: #F1ECE0; stroke: #151412; stroke-width: 2.5; }
.app svg.graph circle.m { fill: #FFE14D; }
.app svg.graph circle.md { fill: #151412; stroke: none; }
.app svg.graph text { font: 500 13px var(--mono); text-anchor: middle; fill: #47433C; }
.app svg.graph .pill rect { fill: #151412; }
.app svg.graph .pill text { fill: #F1ECE0; font-weight: 600; }
.app svg.graph .pill.f rect { fill: #FBF8F1; stroke: #151412; stroke-width: 2; }
.app svg.graph .pill.f text { fill: #151412; }
.app svg.graph .head rect { fill: #FFE14D; stroke: #151412; stroke-width: 2; }
.app svg.graph .head text { fill: #151412; font-weight: 700; }
.app .row2 { display: grid; grid-template-columns: 1fr 2fr; gap: 12px; }
