@import "https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap";:root{--paper:#fbf0dd;--card:#fffdf8;--ink:#102d5d;--blue:#4b8ce8;--blue-deep:#2568c4;--mist:#e5efff;--peach:#ffab86;--butter:#ffe9a8;--line:#ead9c0;--muted:#756b6b;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E");--serif:"Playfair Display", Georgia, serif;--sans:"DM Sans", sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background-color:var(--paper);background-image:var(--grain);color:var(--ink);font-family:var(--sans);margin:0}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent;cursor:pointer}.app-shell{max-width:560px;min-height:100dvh;padding:env(safe-area-inset-top) 20px calc(84px + env(safe-area-inset-bottom));background-color:var(--paper);background-image:linear-gradient(145deg,#ffffff3b,transparent 38%),var(--grain);margin:0 auto;position:relative;overflow:hidden}.topbar{z-index:2;justify-content:space-between;align-items:center;height:68px;display:flex;position:relative}.wordmark{min-width:0;color:var(--ink);font:600 24px/1 var(--serif);letter-spacing:-.04em;text-align:left;background:0 0;border:0;align-items:center;gap:9px;padding:0;display:flex}.wordmark img{border:2px solid #ffffffe0;border-radius:14px;width:41px;height:41px;box-shadow:0 4px 10px #304b7321}.quiet-label{color:var(--blue-deep);letter-spacing:.03em;margin:0;font-size:11px;font-weight:700}.topbar-action{color:var(--blue-deep);background:0 0;border:0;padding:8px 0 8px 12px;font-size:13px;font-weight:700}.eyeline,.kind,.answer-eyebrow{color:var(--blue-deep);letter-spacing:.11em;text-transform:uppercase;margin:0;font-size:10px;font-weight:700}h1,h2,p{margin-top:0}h1{font:500 clamp(45px,12vw,62px)/.94 var(--serif);letter-spacing:-.055em;margin-bottom:14px}h1 em{color:var(--blue);font-style:italic}.review-stage{padding-top:8px;position:relative}.stationery-top{z-index:0;object-fit:cover;object-position:center 18%;pointer-events:none;opacity:.76;width:calc(100% + 40px);height:112px;position:absolute;top:-28px;left:-20px}.review-intro{z-index:1;justify-content:space-between;align-items:center;gap:16px;min-height:58px;padding:13px 10px 12px;display:flex;position:relative}.review-intro>.eyeline{flex:none}.review-intro>p:last-child,.page-intro>p:last-child{color:var(--muted);margin:0;font-size:15px;line-height:1.5}.review-intro>p:last-child{text-align:right;max-width:218px;font-size:13px;line-height:1.35}.practice-card{z-index:1;background-color:var(--card);background-image:linear-gradient(135deg,#ffffffd1,transparent 42%),var(--grain);background-blend-mode:soft-light,normal;border:3px solid #fffffff0;border-radius:29px 30px 28px 31px;padding:18px 18px 17px;position:relative;overflow:hidden;box-shadow:0 9px #dfaf7e52,0 15px 25px #75583d21}.practice-card:before{content:"";background:var(--mist);opacity:.9;width:112px;height:12px;position:absolute;top:0;left:25px;transform:rotate(-2deg)}.quick-card{padding-bottom:20px}.quick-title{color:var(--blue-deep);margin:24px 0 10px;font-size:13px;font-weight:700}.quick-expression{font:500 clamp(29px,8.5vw,40px)/1.17 var(--serif);letter-spacing:0;margin:0 0 15px}.quick-note{color:var(--muted);margin:0;font-size:14px;line-height:1.55}.quick-actions{grid-template-columns:1fr 1fr;gap:9px;margin-top:23px;display:grid}.quick-actions button{border:2px solid var(--line);min-height:48px;color:var(--ink);background:#fffaf3;border-radius:16px 15px 17px 14px;padding:8px 10px;font-size:13px;font-weight:700}.quick-actions button:first-child{border-color:var(--blue);background:var(--mist);color:var(--blue-deep)}.quick-next{flex-wrap:wrap;justify-content:center;gap:8px 15px;margin-top:18px;display:flex}.quick-next button{color:var(--blue-deep);text-underline-offset:3px;background:0 0;border:0;padding:5px 0;font-size:12px;font-weight:700;text-decoration:underline}.completion-actions{grid-template-columns:1fr 1fr;gap:9px;margin-top:20px;display:grid}.completion-actions button{border:2px solid var(--line);min-height:50px;color:var(--ink);background:#fffaf3;border-radius:16px 15px 17px 14px;padding:8px 10px;font-size:13px;font-weight:700}.completion-actions button:first-child{border-color:var(--blue);background:var(--mist);color:var(--blue-deep)}.quick-complete-actions{grid-template-columns:1fr 1fr;gap:9px;margin-top:20px;display:grid}.quick-complete-actions button{border:2px solid var(--line);min-height:50px;color:var(--ink);background:#fffaf3;border-radius:16px 15px 17px 14px;padding:8px 10px;font-size:13px;font-weight:700}.quick-complete-actions button:first-child{border-color:var(--blue);background:var(--mist);color:var(--blue-deep)}.card-topline{justify-content:space-between;align-items:center;gap:12px;padding-top:7px;display:flex}.type-pill{background-color:var(--butter);background-image:var(--grain);min-height:31px;color:var(--ink);border:1px solid #ffffffe6;border-radius:999px;align-items:center;padding:6px 12px;font-size:12px;font-weight:700;display:inline-flex;box-shadow:0 3px #d6b1623d}.focus-label{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.prompt{font:500 clamp(27px,8vw,37px)/1.14 var(--serif);letter-spacing:-.045em;margin:23px 0 18px}.prompt-cues{gap:8px;margin:-5px 0 17px;display:grid}.prompt-cues p{color:var(--muted);grid-template-columns:23px 1fr;align-items:start;gap:9px;margin:0;font-size:13px;line-height:1.35;display:grid}.prompt-cues span{background:var(--mist);width:23px;height:23px;color:var(--blue-deep);border-radius:50%;place-items:center;font-size:11px;font-weight:700;display:grid}.inline-blank{min-width:82px;min-height:36px;color:var(--blue-deep);vertical-align:middle;font:600 .62em/1 var(--sans);letter-spacing:0;background:#fbfdff;border:2px dashed #9ac1fa;border-radius:13px;justify-content:center;align-items:center;margin:0 4px 5px;padding:2px 8px;display:inline-flex}.inline-blank.active{border-style:solid;border-color:var(--blue);box-shadow:0 3px #6393d224}.inline-blank.filled{background:var(--mist);border-style:solid}.say-it-note{color:var(--muted);margin:20px 0 -8px;font-size:13px;line-height:1.45}.answer-label{color:var(--blue-deep);margin:0 0 9px;font-size:13px;font-weight:700;display:block}.answer-field{width:100%;min-height:50px;color:var(--ink);background:#fbfdff;border:2px dashed #9ac1fa;border-radius:16px;outline:none;padding:10px 13px;font-size:16px}.answer-field:focus{border:2px solid var(--blue);background:#fff}.answer-field::placeholder{color:#a9b5c5}.choice-row{flex-wrap:wrap;gap:8px;margin-top:11px;display:flex}.choice-row button{background-color:#f8fbff;background-image:var(--grain);min-height:39px;color:var(--ink);border:2px dashed #9ac1fa;border-radius:15px 14px 16px 13px;padding:7px 13px;font-size:14px;font-weight:700;box-shadow:0 3px #6393d224}.choice-row button.selected{border-style:solid;border-color:var(--blue);background:var(--mist);color:var(--blue-deep)}.choice-lines{display:grid}.choice-lines button{text-align:left;width:100%;line-height:1.4}.detect-row,.starter-row{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.detect-row button,.starter-row button,.build-line button{background-color:#f8fbff;background-image:var(--grain);color:var(--ink);border:2px dashed #9ac1fa;border-radius:15px 14px 16px 13px;padding:8px 11px;font-size:14px;font-weight:700;box-shadow:0 3px #6393d224}.detect-row button.selected,.starter-row button.selected{border-style:solid;border-color:var(--blue);background:var(--mist);color:var(--blue-deep)}.starter-row{margin:0 0 11px}.starter-row button{font-size:13px}.build-line{background:#fbfdff;border:2px dashed #9ac1fa;border-radius:16px;flex-wrap:wrap;align-content:center;gap:7px;min-height:58px;margin:0 0 10px;padding:9px;display:flex}.build-line span{color:#9aaabb;font-size:14px}.build-line button{border-style:solid;border-color:var(--blue);background:var(--mist);color:var(--blue-deep);padding:8px 10px;font-size:14px}.build-bank{margin-top:0}.reveal-button{background-color:var(--blue);background-image:linear-gradient(120deg,#ffffff2e,transparent 45%),var(--grain);background-blend-mode:soft-light,soft-light;color:#fff;width:100%;min-height:52px;box-shadow:0 6px 0 var(--blue-deep), 0 10px 16px #2a67b938;border:3px solid #ffffffe6;border-radius:999px;margin-top:20px;font-size:16px;font-weight:700}.reveal-button:active{box-shadow:0 3px 0 var(--blue-deep), 0 8px 14px #2a67b92e;transform:translateY(4px)}.reveal-button:disabled{cursor:not-allowed;opacity:.48;box-shadow:0 3px #8eb4e9}.answer-reveal{border-top:2px dashed var(--line);margin:12px 0 -4px;padding:20px 0 0}.correct-feedback{color:var(--blue-deep);align-items:center;gap:8px;margin:0 0 13px;display:flex}.correct-feedback span{background:var(--butter);border-radius:50%;place-items:center;width:30px;height:30px;font-size:19px;animation:.42s ease-out both little-star;display:grid;box-shadow:0 3px #d6b1623d}.correct-feedback p{margin:0;font-size:14px;font-weight:700}.practice-card.is-correct{animation:.35s ease-out card-celebrate}@keyframes little-star{0%{opacity:0;transform:scale(.35)rotate(-25deg)}70%{transform:scale(1.18)rotate(10deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes card-celebrate{0%,to{transform:translateY(0)}45%{transform:translateY(-4px)}}.answer-copy{font:500 25px/1.25 var(--serif);letter-spacing:-.03em;margin:9px 0 10px}.answer-note{color:var(--muted);margin:0;font-size:14px;line-height:1.55}.gentle-signal{border-top:2px dashed var(--line);margin-top:20px;padding-top:18px}.gentle-signal p{color:var(--muted);margin-bottom:11px;font-size:13px}.gentle-signal .signal-note{margin:11px 0 0;font-size:12px;line-height:1.45}.gentle-signal div{flex-wrap:wrap;gap:9px;display:flex}.gentle-signal button{border:2px solid var(--line);background-color:#fffaf3;background-image:var(--grain);min-height:38px;color:var(--muted);border-radius:999px;padding:7px 13px;font-size:13px;font-weight:600}.gentle-signal button.selected{border-color:var(--blue);background:var(--mist);color:var(--blue-deep)}@media (height<=780px) and (width<=600px){.app-shell{padding-top:max(10px, env(safe-area-inset-top))}.topbar{height:58px}.wordmark{font-size:21px}.wordmark img{border-radius:12px;width:35px;height:35px}.stationery-top{height:88px}.review-intro{min-height:47px;padding:8px 8px 9px}.practice-card{padding:15px}.quick-expression{font-size:30px}.prompt{margin:17px 0 14px;font-size:28px}.prompt-cues{margin-top:-3px}.reveal-button{min-height:48px;margin-top:16px}}.bottom-nav{z-index:3;width:100%;min-height:68px;padding:7px max(18px,env(safe-area-inset-left)) calc(7px + env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-right));background:#f7e5cc;border-top:2px solid #ffffffb8;grid-template-columns:repeat(2,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;box-shadow:0 -4px 18px #744e2614}.nav-item{color:var(--muted);background:0 0;border:0;border-radius:999px;font-size:13px;font-weight:700}.nav-item.active{color:var(--blue-deep);background:#fffaf3;box-shadow:0 3px #d8ae7940}.page-intro{padding:35px 14px 28px}.search-page{padding:35px 4px 20px}.search-page h1{margin:12px 0 24px;font-size:46px}.search-field{display:block}.search-field input{border:2px solid var(--blue);width:100%;min-height:54px;color:var(--ink);background:#fffdf8;border-radius:16px;outline:none;padding:11px 14px;font-size:16px}.search-field input::placeholder{color:#8e9bae}.search-shortcuts{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.search-shortcuts button{border:2px solid var(--line);min-height:38px;color:var(--muted);background:#fffaf3;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:700}.search-results{border-top:2px dashed var(--line);margin-top:23px}.search-result{border:0;border-bottom:2px dashed var(--line);width:100%;color:var(--ink);text-align:left;background:0 0;padding:19px 3px;display:block}.search-result span{color:var(--blue-deep);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;font-size:10px;font-weight:700;display:block}.search-result strong{font:500 22px/1.16 var(--serif);margin-bottom:7px;display:block}.search-result p{color:var(--muted);margin:0;font-size:14px;line-height:1.48}.search-result .quote{color:var(--ink);font:500 17px/1.35 var(--serif);margin-bottom:8px}.thread-result{cursor:pointer}.empty-search{color:var(--muted);margin:28px 0;font-size:14px;line-height:1.5}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.page-intro h1{margin:0 0 15px;font-size:46px}.practice-list{border-top:2px dashed var(--line)}.practice-item{border:0;border-bottom:2px dashed var(--line);width:100%;color:var(--ink);text-align:left;background:0 0;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:18px 4px;display:grid}.practice-tag{color:var(--blue-deep);letter-spacing:.05em;text-transform:uppercase;font-size:10px;font-weight:700}.practice-item h2{font:500 20px/1.15 var(--serif);letter-spacing:-.03em;margin:0 0 4px}.practice-item p{color:var(--muted);margin:0;font-size:12px}.practice-arrow{color:var(--peach);font-size:20px;font-weight:700}.memory-tabs{gap:8px;margin:0 0 14px;display:flex}.memory-tabs button{border:2px solid var(--line);min-height:36px;color:var(--muted);background:#fffaf3;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:700}.memory-tabs button.active{border-color:var(--blue);background:var(--mist);color:var(--blue-deep)}.memory-list{border-top:2px dashed var(--line)}.memory-item{border-bottom:2px dashed var(--line);padding:22px 4px}.memory-item .kind{margin-bottom:12px}.memory-item h2{font:500 25px/1.15 var(--serif);letter-spacing:-.035em;margin:0 0 9px}.memory-item p{color:var(--muted);margin:0;font-size:14px;line-height:1.55}.memory-item .quote{color:var(--ink);font:500 19px/1.35 var(--serif);margin-bottom:10px}.memory-item .memory-why{color:var(--muted)}.memory-why span{color:var(--blue-deep);letter-spacing:.11em;text-transform:uppercase;margin:0 0 4px;font-size:10px;font-weight:700;display:block}.coral{color:#d17458}.login-shell{padding-bottom:calc(50px + env(safe-area-inset-bottom));flex-direction:column;justify-content:center;display:flex}.login-mark{border:3px solid #fff;border-radius:26px;width:78px;height:78px;margin-bottom:29px;box-shadow:0 8px #dfaf7e52,0 15px 26px #75583d21}.login-shell h1{font-size:clamp(47px,13vw,62px)}.lede{max-width:350px;color:var(--muted);font-size:16px;line-height:1.55}.login-card{background-color:var(--card);background-image:var(--grain);border:3px solid #ffffffe6;border-radius:27px 29px 26px 28px;margin-top:28px;padding:22px;box-shadow:0 10px #dfaf7e47,0 17px 26px #75583d1a}.login-card label{color:var(--blue-deep);margin-bottom:9px;font-size:13px;font-weight:700;display:block}.login-card input{background:#fbfdff;border:2px dashed #9ac1fa;border-radius:15px;outline:none;width:100%;min-height:51px;padding:10px 13px}.login-card input:focus{border:2px solid var(--blue)}.login-error{color:#c65c54;min-height:19px;margin:9px 0 0;font-size:12px}.login-submit{background-color:var(--blue);background-image:linear-gradient(120deg,#ffffff2e,transparent 45%),var(--grain);background-blend-mode:soft-light,soft-light;width:100%;min-height:53px;box-shadow:0 5px 0 var(--blue-deep);color:#fff;border:3px solid #ffffffe6;border-radius:999px;font-size:16px;font-weight:700}@media (width>=680px){body{background:#f2dec0}.app-shell{box-shadow:0 0 48px #64401921}.bottom-nav{border:2px solid #fffc;border-radius:999px;width:360px;min-height:56px;bottom:18px;left:50%;transform:translate(-50%)}}@media (width<=360px){.app-shell{padding-left:16px;padding-right:16px}.stationery-top{width:calc(100% + 32px);left:-16px}.review-intro{padding-left:12px}.practice-card{border-radius:28px;padding:22px 18px}.prompt{font-size:31px}.choice-row{gap:7px}.choice-row button{padding:7px 12px}}
