.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:48px;padding:0 var(--space-5);border-radius:var(--radius-md);border:var(--stroke) solid transparent;font-size:var(--text-body);cursor:pointer;font-weight:800;text-decoration:none;transition:transform .1s ease-out,box-shadow .1s ease-out,background .12s ease-out,border-color .12s ease-out;display:inline-flex}.btn--block{width:100%}.btn--primary{background:var(--tomato);border-color:var(--tomato);color:#fffaf2;box-shadow:var(--shadow-action)}.btn--primary:hover:not(:disabled){background:#ef6a3f;border-color:#ef6a3f}.btn--primary:active:not(:disabled){box-shadow:0 2px 0 var(--tomato-pressed);transform:translateY(2px)}.btn--secondary{background:var(--teal);color:#fffaf2;border-color:var(--teal);box-shadow:0 4px 0 var(--teal-dark)}.btn--secondary:hover:not(:disabled){background:#35aaa7;border-color:#35aaa7}.btn--secondary:active:not(:disabled){background:var(--teal);box-shadow:0 2px 0 var(--teal-dark);transform:translateY(2px)}.btn--quiet{color:var(--teal-dark);box-shadow:none;min-height:44px;padding:0 var(--space-3);background:0 0;border-color:#0000}.btn--quiet:hover:not(:disabled){background:var(--cream)}.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.text-link{min-height:44px;padding:0 var(--space-2);color:var(--teal-dark);font-family:inherit;font-size:var(--text-small);cursor:pointer;background:0 0;border:none;align-self:center;font-weight:800;text-decoration:underline}.text-link--muted{color:var(--ink-muted);align-self:flex-start;font-weight:600}.text-link:hover:not(:disabled){color:var(--teal)}.text-link:disabled{opacity:.55;cursor:not-allowed}.icon-btn{border-radius:var(--radius-pill);width:44px;height:44px;box-shadow:none;color:var(--teal-dark);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--cream)}.help-modal__backdrop{z-index:80;padding:var(--space-5);background:#2632386b;place-items:center;animation:.16s ease-out help-modal-fade;display:grid;position:fixed;inset:0}.help-modal{width:min(100%,420px);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--paper);animation:.18s cubic-bezier(.22,1,.36,1) help-modal-enter;box-shadow:0 16px 42px #26323838}.help-modal__header{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);display:flex}.help-modal__header h2{color:var(--ink);font-size:var(--text-heading)}.help-modal p{margin-bottom:var(--space-5);color:var(--ink-muted);line-height:1.5}@keyframes help-modal-fade{0%{background:#26323800}}.walkthrough-overlay{z-index:100;background:#19252ab8;animation:.16s ease-out help-modal-fade;position:fixed;inset:0}.walkthrough-target{border-radius:var(--radius-lg);outline:4px solid var(--paper);pointer-events:none;z-index:101!important;box-shadow:0 0 0 8px var(--tomato), 0 18px 48px #19252a59!important;position:relative!important}.walkthrough-coachmark{z-index:102;left:50%;bottom:max(var(--space-5), env(safe-area-inset-bottom));width:min(calc(100% - 2 * var(--space-4)), 480px);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--paper);animation:.18s cubic-bezier(.22,1,.36,1) walkthrough-coachmark-enter;position:fixed;transform:translate(-50%);box-shadow:0 18px 48px #19252a4d}.walkthrough-coachmark__step{color:var(--tomato);font-size:var(--text-small);text-transform:uppercase;letter-spacing:.04em;font-weight:800}.walkthrough-coachmark h2{margin-top:var(--space-2);color:var(--ink)}.walkthrough-coachmark>p{margin:var(--space-2) 0 var(--space-4);color:var(--ink-muted);line-height:1.5}.walkthrough-coachmark .walkthrough-coachmark__error{color:var(--danger);font-weight:700}.walkthrough-coachmark__actions{justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;display:flex}@media (width<=520px){.walkthrough-coachmark__actions .btn{flex:auto}}@keyframes walkthrough-coachmark-enter{0%{opacity:0;transform:translate(-50%,8px)scale(.98)}}@keyframes help-modal-enter{0%{opacity:0;transform:translateY(8px)scale(.98)}}.card{background:var(--cream);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-paper)}.card--lifted{box-shadow:var(--shadow-card)}.card--plain{background:var(--paper);border:1px solid var(--line);box-shadow:none}.panel-note{background:var(--sage);border-radius:var(--radius-md);padding:var(--space-4);font-size:var(--text-small);color:var(--ink)}.chip{align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--cream);color:var(--ink);font-size:var(--text-small);cursor:pointer;font-weight:700;display:inline-flex}.chip--static{cursor:default}.chip--selected{border-color:var(--tomato);background:#fde9c0}.chip__marker{border-radius:var(--radius-pill);background:var(--teal);color:#fffaf2;width:22px;height:22px;font-size:var(--text-label);justify-content:center;align-items:center;font-weight:800;display:inline-flex}.chip--selected .chip__marker{background:var(--tomato)}.chip-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.tabs{gap:var(--space-1);border-radius:var(--radius-pill);padding:var(--space-1);background:#f3ead7;display:flex}.tab{min-width:0;padding:0 var(--space-2);white-space:nowrap;border-radius:var(--radius-pill);min-height:40px;color:var(--teal-dark);font-size:var(--text-small);cursor:pointer;background:0 0;border:none;flex:1;font-weight:800}.tab[aria-selected=true]{background:var(--tomato);color:#fffaf2}.trail{gap:var(--space-1);flex-direction:column;display:flex}.trail__track{border-radius:var(--radius-pill);background:var(--cream);height:10px;overflow:hidden}.trail__fill{border-radius:var(--radius-pill);background:var(--pasta);height:100%;transition:width .24s ease-out}.trail__label{font-size:var(--text-label);color:var(--ink-muted);font-variant-numeric:tabular-nums;font-weight:800}.pill{align-items:center;gap:var(--space-1);white-space:nowrap;padding:2px var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-label);font-weight:800;display:inline-flex}.pill--new{background:var(--cream);color:var(--teal-dark);border:1px solid var(--line)}.pill--learning{color:#8a5a10;background:#fde9c0}.pill--mastered{background:var(--sage);color:var(--teal-dark)}.pill--xp{background:var(--pasta);color:#5b3a00}.error-notice,p[role=alert]{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:#793221;background:#fff0ea;border:1px solid #efb8a9;margin:0;line-height:1.45;display:flex}.error-notice__icon,p[role=alert]:before{border-radius:var(--radius-pill);background:var(--tomato);color:#fffaf2;flex:none;place-items:center;width:24px;height:24px;font-size:.9rem;font-weight:900;line-height:1;display:grid}p[role=alert]:before{content:"!"}.error-notice__copy{flex:1;min-width:0}.error-notice__copy strong{color:var(--ink)}.error-notice__copy p{margin:2px 0 0}.error-notice--compact{padding:var(--space-2) var(--space-3);font-size:var(--text-small)}.error-state{gap:var(--space-4);max-width:560px;margin:min(16vh,120px) auto;display:grid}.error-state .error-notice{padding:var(--space-5);box-shadow:var(--shadow-paper);background:#fff8f4}.error-state__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.scene{border-radius:var(--radius-md);border:var(--stroke) solid var(--teal-dark);box-shadow:var(--shadow-paper);background:#e8f1e8;position:relative;overflow:hidden}.scene__art{aspect-ratio:8/5;width:100%;height:100%;display:block}.scene-image{aspect-ratio:auto;width:100%;height:auto;display:block}.scene-image.scene-image--loading{aspect-ratio:8/5;background:linear-gradient(112deg, transparent 15%, #2e9c9924 42%, #2e9c9924 56%, transparent 82%), linear-gradient(var(--cream), var(--cream));min-height:120px;color:var(--ink-muted);font-size:var(--text-small);text-align:center;background-size:220% 100%,100% 100%;place-items:center;font-weight:800;animation:1.5s ease-in-out infinite photo-skeleton-shimmer;display:grid;position:relative;overflow:hidden}.scene-image.scene-image--loading:before{content:"";border-radius:var(--radius-sm);border:2px dashed #1f7a7859;position:absolute;inset:12% 10%}.scene-image__loading-label{z-index:1;padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);background:#fffaf2db;position:relative}.scene-image--error~.scene__marker{display:none}.scene-image.scene-image--error{aspect-ratio:8/5;background:var(--cream);color:var(--teal-dark);text-align:center;justify-content:center;align-items:center;padding:.25rem;font-size:.75rem;font-weight:400;line-height:1.3;display:flex}.scene__marker{width:44px;height:44px;color:var(--teal-dark);cursor:pointer;z-index:2;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;transform:translate(-50%,-50%)}.scene__marker:before{content:"";background:currentColor;border:2px solid #fffaf2;border-radius:50%;width:8px;height:8px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 1px 3px #14413e47}.scene__marker:after{content:"";transform-origin:0;background:currentColor;width:13px;height:2px;position:absolute;bottom:calc(50% + 2px);left:50%;transform:rotate(-45deg)}.scene__marker-label{border-radius:var(--radius-pill);min-width:27px;height:27px;color:var(--ink);font-size:var(--text-label);background:#fffaf2;border:2px solid;justify-content:center;align-items:center;padding:0 6px;font-weight:800;display:inline-flex;position:absolute;bottom:calc(50% + 10px);left:calc(50% + 8px);transform:none;box-shadow:0 2px 5px #14413e29}.scene__marker--left .scene__marker-label{left:auto;right:calc(50% + 8px)}.scene__marker--left:after{transform-origin:100%;left:auto;right:50%;transform:rotate(45deg)}.scene__marker--active{color:var(--tomato-pressed)}.scene__marker--custom{color:#b87500}.scene__marker--guess .scene__marker-label{background:#e3f1ef;border-style:dashed}.scene__marker--active .scene__marker-label{background:var(--tomato);color:#fffaf2}.scene__marker--custom .scene__marker-label{background:var(--pasta);color:#5b3a00}.scene__marker--below:after{top:calc(50% + 2px);bottom:auto;transform:rotate(45deg)}.scene__marker--below.scene__marker--left:after{transform:rotate(-45deg)}.scene__marker--below .scene__marker-label{top:calc(50% + 10px);bottom:auto}.scene--location-selectable{border-color:var(--pasta);cursor:crosshair;box-shadow:0 0 0 3px #f9ae2233, var(--shadow-paper)}.scene--location-selectable:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.analysis-titlebar{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.analysis-layout{gap:var(--space-4);flex-direction:column;display:flex}.analysis-stage-column,.analysis-review-column{gap:var(--space-4);flex-direction:column;min-width:0;display:flex}.analysis-restore{padding-top:var(--space-2);display:flex}.leave-session__dialog h2{margin-bottom:var(--space-2);color:var(--ink);font-size:var(--text-h2)}.leave-session__error{margin-bottom:var(--space-4);color:var(--danger)}.leave-session__actions{gap:var(--space-2);flex-direction:column;display:flex}.analysis-loading{gap:var(--space-6);padding-top:var(--space-2);text-align:center;flex-direction:column;display:flex}.analysis-scan{border-radius:var(--radius-md);background:var(--cream);isolation:isolate;position:relative;overflow:hidden}.analysis-scan .scene{box-shadow:none}.analysis-scan__noodle{z-index:2;border-radius:var(--radius-pill);background:linear-gradient(90deg,#0000,#2e9c99bf 50%,#0000);width:84%;height:10px;animation:1.7s ease-in-out infinite alternate analysis-noodle-sweep;position:absolute;top:12%;left:8%;box-shadow:0 0 0 3px #fffaf280,0 5px 13px #1f716f38}.analysis-loading__copy{gap:var(--space-2);flex-direction:column;align-items:center;display:flex}.analysis-loading__copy h2{max-width:18ch}.analysis-results{gap:var(--space-4);flex-direction:column;display:flex}.analysis-results>div:first-child{gap:var(--space-1);flex-direction:column;display:flex}.analysis-photo-stage{gap:var(--space-2);flex-direction:column;display:flex}.analysis-panel-tabs{border-radius:var(--radius-pill);background:var(--cream);grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;display:grid}.analysis-panel-tabs button{border-radius:var(--radius-pill);min-height:44px;color:var(--muted);font:inherit;font-size:var(--text-small);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:6px;padding:6px 10px;font-weight:800;display:inline-flex}.analysis-panel-tabs button.is-active{background:var(--teal);color:#fffaf2}.analysis-panel-tabs button span{border-radius:var(--radius-pill);min-width:20px;color:var(--ink);background:#ffffffa6;padding:1px 6px;font-size:.75rem}.analysis-placement-prompt{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:44px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--cream);color:var(--ink);display:flex}.analysis-placement-prompt button{min-width:44px;min-height:44px;padding:0 var(--space-2);color:var(--teal-dark);font:inherit;cursor:pointer;background:0 0;border:none;font-weight:800}.analysis-placement-prompt button:hover{color:var(--ink)}.analysis-word-card{box-sizing:border-box;width:100%;min-width:0;padding:var(--space-4);border-radius:var(--radius-sm)}.analysis-word-list{flex-direction:column;display:flex}.analysis-word-row{align-items:center;gap:var(--space-3);box-sizing:border-box;border-bottom:1px solid var(--line);grid-template-columns:30px minmax(0,1fr) 44px;width:100%;min-width:0;min-height:56px;display:grid}.analysis-word-row strong{overflow-wrap:anywhere;min-width:0}.analysis-relation-row{align-items:center;gap:var(--space-3);border-bottom:1px solid var(--line);grid-template-columns:30px minmax(0,1fr) 44px;width:100%;min-width:0;min-height:56px;display:grid}.analysis-relation-row__marker{background:var(--pasta);color:#5b3a00}.analysis-relation-row__flow{align-items:center;gap:var(--space-2);overflow-wrap:anywhere;flex-wrap:wrap;min-width:0;display:flex}.analysis-relation-row__flow>strong{overflow-wrap:anywhere;flex:0 auto;min-width:0}.analysis-relation-row__relation{border-radius:var(--radius-pill);background:var(--sage);min-width:0;color:var(--teal-dark);font-size:var(--text-small);text-align:center;flex:0 auto;padding:4px 10px;font-weight:800}.analysis-scene-title{gap:var(--space-2);display:grid}@media (width<=520px){.analysis-relation-row{align-items:start;gap:var(--space-2);padding:var(--space-3) 0;grid-template-columns:28px minmax(0,1fr) 44px}.analysis-relation-row__marker,.analysis-relation-row .analysis-word-row__remove{margin-top:2px}.analysis-relation-row__flow{align-items:stretch;gap:var(--space-2);flex-direction:column}.analysis-relation-row__flow>strong,.analysis-relation-row__relation{text-align:left;flex:none}.analysis-relation-row__flow .combobox--compact{flex:none;max-width:none}}.analysis-attribute-card{gap:var(--space-3);flex-direction:column;display:flex}.translation-preview{gap:var(--space-4);border:1px solid var(--line);background:#eef7f6;display:grid}.translation-preview>.scene{border-radius:var(--radius-card);width:100%}.translation-preview__group{gap:var(--space-2);display:grid}.translation-preview__group h3{color:var(--teal-dark);font-size:var(--text-small)}.translation-preview__terms{gap:var(--space-2);flex-wrap:wrap;display:flex}.translation-preview__term{border-radius:var(--radius-pill);background:var(--paper);color:var(--muted);align-items:center;gap:8px;padding:7px 11px;display:inline-flex;box-shadow:0 2px #14413e14}.translation-preview__term strong{color:var(--teal-dark)}.analysis-attribute-fields{gap:var(--space-3);display:grid}.analysis-attribute-fields label{align-items:center;gap:var(--space-3);grid-template-columns:minmax(78px,.35fr) minmax(0,1fr);display:grid}.analysis-attribute-fields label>span{color:var(--muted);font-size:var(--text-small);text-transform:capitalize;font-weight:800}.analysis-attribute-fields .input.is-filled{border-color:var(--teal);color:var(--teal-dark);background:#e4f4ef;font-weight:700}.analysis-location-action{width:fit-content;color:var(--teal-dark);font:inherit;font-size:var(--text-label);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;margin-top:3px;padding:0;font-weight:800;text-decoration:underline;display:block}.analysis-location-action:disabled{opacity:.5;cursor:default}.analysis-word-row__marker{border-radius:var(--radius-pill);background:var(--teal);color:#fffaf2;width:28px;height:28px;font-size:var(--text-label);justify-content:center;align-items:center;font-weight:800;display:inline-flex}.analysis-word-row__marker--custom{background:var(--pasta);color:#5b3a00}.analysis-word-row__remove{border-radius:var(--radius-pill);width:44px;height:44px;color:var(--danger);cursor:pointer;background:#fde4dc;border:none;justify-content:center;align-items:center;display:inline-flex}.analysis-word-row__remove:hover{background:#f8cfc3}.analysis-add-word{gap:var(--space-2);flex-direction:column;display:flex}.analysis-add-word__controls{align-items:stretch;gap:var(--space-2);grid-template-columns:minmax(0,1fr) auto;display:grid}.analysis-add-word__controls .btn{min-width:64px}.analysis-add-word__error{color:var(--danger)}@keyframes analyse-scene{0%{top:12%}to{top:86%}}@keyframes photo-skeleton-shimmer{0%{background-position:100% 0,0 0}to{background-position:0 0,0 0}}@keyframes analysis-noodle-sweep{0%{top:14%}to{top:82%}}@media (prefers-reduced-motion:reduce){.scene-image.scene-image--loading,.analysis-scan__noodle{animation:none}.home-words__fill{transition:none}.analysis-scan__noodle{top:50%}}.topbar{align-items:center;gap:var(--space-2);min-height:56px;margin-top:calc(var(--space-2) * -1);display:flex}.topbar__title{font-family:var(--font-display);font-size:var(--text-h3);flex:1}.month-switcher{align-items:center;gap:var(--space-2);grid-template-columns:44px minmax(0,1fr) 44px;display:grid}.month-switcher h1{text-align:center;font-size:var(--text-h2)}.wordmark{font-family:var(--font-display);letter-spacing:.01em;color:#f5a914;padding-bottom:6px;font-weight:800;line-height:1;display:inline-block;position:relative}.wordmark__noodle{width:96%;height:8px;position:absolute;bottom:0;left:4%;right:0}.brandbar{padding:var(--space-4) var(--space-4) var(--space-2);background:#f7e6b4;justify-content:center;display:flex;position:relative;box-shadow:0 3px 10px #56432212}.brandbar__back{left:var(--space-4);position:absolute;top:50%;transform:translateY(-50%)}.brandbar__brand{cursor:pointer;background:0 0;border:0;padding:0}.brandbar__brand:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.brandbar__wordmark{mix-blend-mode:multiply;width:min(150px,42vw);height:auto;display:block}.shell{background:radial-gradient(circle at 50% -10%, #f9b2331f, transparent 32%), var(--butter);flex-direction:column;min-height:100%;display:flex}.shell__content{width:100%;max-width:var(--content-max);padding:var(--space-5) var(--space-4) calc(var(--nav-height) + var(--space-8));flex:1;margin:0 auto}.shell__content--wide{max-width:760px}.bottom-nav{height:var(--nav-height);justify-content:center;gap:var(--space-1);background:var(--butter);padding:var(--space-2) var(--space-2) calc(var(--space-2) + env(safe-area-inset-bottom));z-index:20;border-top:1px solid #ded7c8b3;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav__item{border-radius:var(--radius-md);min-width:0;max-width:96px;min-height:44px;color:var(--ink-muted);font-size:var(--text-label);flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:2px;font-weight:800;text-decoration:none;display:flex}.bottom-nav__item.is-active{color:var(--tomato);background:0 0}.bottom-nav__toggle{display:none}.bottom-nav__item.is-active svg{fill:none;stroke:currentColor;stroke-width:2.25px}@media (width>=900px){.shell--app{grid-template-rows:auto minmax(0,1fr);grid-template-columns:190px minmax(0,1fr);display:grid}.shell--app>.brandbar{grid-area:1/1/auto/-1}.shell--app>.shell__content{max-width:760px;padding:var(--space-10) var(--space-10) var(--space-12);grid-area:2/2}.shell--app>.shell__content--desktop-wide{max-width:1120px}.shell--focus>.shell__content{max-width:680px;padding-inline:var(--space-8)}.shell--app>.bottom-nav{justify-content:flex-start;gap:var(--space-2);width:190px;height:calc(100vh - 70px);padding:var(--space-8) var(--space-4);background:0 0;border-top:0;border-right:1px solid #ded7c8b3;flex-direction:column;grid-area:2/1;position:sticky;inset:0 auto auto}.shell--app .bottom-nav__item{justify-content:flex-start;gap:var(--space-3);width:100%;max-width:none;min-height:52px;padding-inline:var(--space-4);font-size:var(--text-small);flex-direction:row;flex:none}.shell--app .bottom-nav__item:hover{background:var(--cream)}.shell--app{transition:grid-template-columns .2s ease-out}.shell--app.shell--nav-collapsed{grid-template-columns:76px minmax(0,1fr)}.shell--nav-collapsed>.bottom-nav{width:76px;padding-inline:var(--space-2)}.shell--nav-collapsed .bottom-nav__item{justify-content:center;padding-inline:0}.shell--nav-collapsed .bottom-nav__item>span{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.bottom-nav__toggle{width:44px;height:44px;margin-bottom:var(--space-3);border-radius:var(--radius-md);color:var(--ink-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-self:flex-end;align-items:center;display:flex}.bottom-nav__toggle:hover{background:var(--cream);color:var(--teal-dark)}.shell--nav-collapsed .bottom-nav__toggle{align-self:center}.practice-select .grid-2{grid-template-columns:repeat(3,minmax(0,1fr))}.practice-select .dashed-capture{min-height:220px}.vocabulary-scenes,.vocabulary-list{align-items:start;gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}}.feedback{gap:var(--space-3);border-radius:var(--radius-md);padding:var(--space-4);display:flex}.feedback--good{background:var(--sage);border:2px solid var(--teal)}.feedback--warn{border:2px solid var(--danger);background:#fde7de}.choice-grid{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.choice{min-height:56px;padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--line);background:var(--paper);color:var(--ink);font-size:var(--text-body);cursor:pointer;font-weight:700;transition:transform .16s ease-out}.choice:hover:not(:disabled){transform:scale(1.01)}.choice--selected{border:var(--stroke) solid var(--ink);background:#eef7f6}.choice--correct{border:var(--stroke) solid var(--teal);background:var(--sage)}.choice--incorrect{border:var(--stroke) solid var(--tomato);background:#fde7de}.choice-checking{justify-content:center;align-items:center;gap:var(--space-2);color:var(--teal-dark);font-size:var(--text-small);margin:0;font-weight:800;display:flex}.choice-checking:before{border:2px solid #1f7a7840;border-top-color:var(--teal);content:"";border-radius:50%;width:.9rem;height:.9rem;animation:.7s linear infinite choice-check-spin}.sentence-builder__answer{background:var(--butter);border:1px dashed var(--line);border-radius:var(--radius-md);flex-wrap:wrap;align-items:center;gap:.45rem;min-height:4rem;padding:.8rem;display:flex}.sentence-builder__token{background:var(--paper);border:1px solid var(--teal);color:var(--ink);cursor:pointer;font:inherit;border-radius:999px;padding:.35rem .65rem}.field{gap:var(--space-2);flex-direction:column;display:flex}.field__label{font-size:var(--text-body);color:var(--teal-dark);font-weight:800}.clue-frame{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);border:1px dashed var(--line);background:var(--paper)}.clue-warning{color:var(--ink);font-weight:700}.input,.textarea{width:100%;min-height:48px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--paper);color:var(--ink);font-family:var(--font-ui);font-size:var(--text-body);box-shadow:0 3px #5643220d}.combobox{width:100%;min-width:0;position:relative}.combobox__trigger{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;min-height:48px;padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);font-family:var(--font-ui);font-size:var(--text-body);text-align:left;cursor:pointer;font-weight:700;display:flex;box-shadow:0 3px #5643220d}.combobox__trigger:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.combobox__trigger:disabled{cursor:not-allowed;opacity:.58}.combobox__placeholder{color:var(--muted);font-weight:500}.combobox__chevron{color:var(--teal);flex:none;transition:transform .16s ease-out}.combobox--open .combobox__chevron{transform:rotate(180deg)}.combobox__list{z-index:20;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);width:100%;max-height:240px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto;box-shadow:0 12px 28px #2a343429}.combobox__option{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;min-height:42px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;padding:8px 10px;font-weight:650;display:flex}.combobox__option.is-active,.combobox__option[aria-selected=true]{background:var(--sage);color:var(--teal-dark)}.combobox--compact{flex:0 150px;max-width:150px}.combobox--compact .combobox__trigger{border-radius:var(--radius-pill);background:var(--sage);min-height:40px;color:var(--teal-dark);font-size:var(--text-small);padding:5px 10px;font-weight:800}.combobox--compact .combobox__list{min-width:170px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.textarea{resize:vertical;min-height:140px}.list{flex-direction:column;display:flex}.list__row{align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;width:100%;color:inherit;font-family:var(--font-ui);background:0 0;border-top:none;border-left:none;border-right:none;display:flex}.list__row:last-child{border-bottom:none}.journal-page{gap:var(--space-5);padding-bottom:calc(56px + var(--space-5));flex-direction:column;display:flex}.journal-page__add{display:none}.journal-page>.card{width:100%;max-width:560px;margin-inline:auto}.journal-empty{align-items:center;gap:var(--space-2);text-align:center;flex-direction:column;max-width:520px;margin-inline:auto;display:flex}.journal-feed{gap:var(--space-5);flex-direction:column;display:flex}.journal-card{border-radius:var(--radius-lg);background:var(--paper);width:100%;box-shadow:var(--shadow-paper);text-align:left;cursor:pointer;color:inherit;font-family:var(--font-ui);border:none;flex-direction:column;padding:0;transition:transform .16s ease-out,box-shadow .16s ease-out;display:flex;overflow:hidden}.journal-card:hover{box-shadow:var(--shadow-card);transform:translateY(-2px)}.journal-card:active{transform:translateY(1px)}.journal-card__body{gap:var(--space-2);padding:var(--space-6);flex-direction:column;flex:1;display:flex}.journal-card__title{-webkit-line-clamp:2;font-family:var(--font-display);font-size:var(--text-h2);color:var(--ink);-webkit-box-orient:vertical;line-height:1.15;display:-webkit-box;overflow:hidden}.journal-card__excerpt{-webkit-line-clamp:2;font-size:var(--text-heading);color:var(--ink-muted);white-space:pre-wrap;-webkit-box-orient:vertical;line-height:1.55;display:-webkit-box;overflow:hidden}.journal-card__footer{padding-top:var(--space-3);border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:auto;display:flex}.journal-card__date{color:var(--ink);font-size:var(--text-small)}.journal-card__words{padding:2px var(--space-2);border-radius:var(--radius-pill);color:var(--teal-dark);font-size:var(--text-label);background:#e9f4f0;font-weight:800;line-height:1.25}.journal-mosaic{aspect-ratio:3/2;gap:4px;width:100%;display:grid}.journal-mosaic--1{grid-template-rows:1fr;grid-template-columns:1fr}.journal-mosaic--2{grid-template-rows:1fr;grid-template-columns:1fr 1fr}.journal-mosaic--3{grid-template-rows:1fr 1fr;grid-template-columns:1.6fr 1fr}.journal-mosaic--4{grid-template-rows:repeat(3,1fr);grid-template-columns:1.6fr 1fr}.journal-mosaic--3 .journal-mosaic__tile:first-child{grid-row:1/3}.journal-mosaic--4 .journal-mosaic__tile:first-child{grid-row:1/4}.journal-mosaic__tile{background:var(--cream);min-height:0;display:block;position:relative;overflow:hidden}.journal-mosaic__tile .scene-image{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.journal-mosaic__more{color:#fffaf2;font-weight:800;font-size:var(--text-h3);background:#2632388c;place-items:center;display:grid;position:absolute;inset:0}.journal-fab{right:var(--space-4);bottom:calc(var(--nav-height) + var(--space-4) + env(safe-area-inset-bottom));border-radius:var(--radius-pill);background:var(--tomato);color:#fffaf2;cursor:pointer;z-index:15;border:none;place-items:center;width:56px;height:56px;display:grid;position:fixed;box-shadow:0 8px 20px #56432247}.journal-fab:active{transform:translateY(2px);box-shadow:0 4px 10px #56432247}.journal-entry{gap:var(--space-6);flex-direction:column;display:flex}.journal-entry__header{align-items:flex-start;gap:var(--space-2);flex-direction:column;display:flex}.journal-entry__date{font-size:var(--text-small);color:var(--ink-muted);font-weight:800}.journal-entry__title{font-size:clamp(28px,6vw,40px);line-height:1.08}.journal-entry__meta{align-items:center;gap:var(--space-2);font-size:var(--text-small);color:var(--ink-muted);display:flex}.journal-entry__meta>span+span:before{content:"";width:4px;height:4px;margin-right:var(--space-2);border-radius:var(--radius-pill);background:var(--ink-muted);display:inline-block}.journal-entry__edit{width:auto;margin-top:var(--space-2);align-self:flex-start}.journal-entry__gallery{gap:var(--space-3);flex-direction:column;display:flex}.journal-carousel .scene{border-radius:var(--radius-lg);overflow:hidden}.journal-entry__thumbs{gap:var(--space-2);padding:var(--space-1);scrollbar-width:thin;display:flex;overflow-x:auto}.journal-entry__thumb{border-radius:var(--radius-sm);background:var(--cream);cursor:pointer;border:2px solid #0000;flex:none;width:64px;height:48px;padding:0;overflow:hidden}.journal-entry__thumb .scene-image{object-fit:cover;width:100%;height:100%;display:block}.journal-entry__thumb.is-active{border-color:var(--tomato)}.journal-entry__body{background:var(--paper);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-paper)}.journal-entry__body p{white-space:pre-wrap;max-width:68ch;font-size:17px;line-height:1.75}.journal-entry__body p+p{margin-top:var(--space-4)}.journal-entry__vocab{gap:var(--space-3);flex-direction:column;display:flex}.journal-editor{gap:var(--space-6);flex-direction:column;display:flex}.journal-editor__header{gap:var(--space-1);flex-direction:column;display:flex}.journal-editor__date{font-size:var(--text-small);color:var(--ink-muted);font-weight:800}.journal-editor__layout{gap:var(--space-5);flex-direction:column;display:flex}.journal-editor__write{background:var(--paper);border-radius:var(--radius-lg);box-shadow:var(--shadow-paper);padding:var(--space-5);gap:var(--space-3);flex-direction:column;display:flex}.journal-editor__title-input{border:none;border-bottom:1px solid var(--line);width:100%;font-family:var(--font-display);color:var(--ink);padding:0 0 var(--space-2);background:0 0;min-height:48px;font-size:clamp(24px,5vw,32px);font-weight:800}.journal-editor__title-input::placeholder,.journal-editor__body-input::placeholder{color:var(--ink-muted);opacity:1}.journal-editor__body-input{resize:vertical;width:100%;min-height:clamp(260px,42vh,520px);font-size:17px;line-height:1.75;font-family:var(--font-ui);color:var(--ink);background:0 0;border:none;padding:0}.journal-editor__write-foot{justify-content:flex-end;display:flex}.journal-editor__aside{gap:var(--space-5);flex-direction:column;display:flex}.journal-editor__panel{background:var(--cream);border-radius:var(--radius-lg);padding:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.journal-editor__panel-title{font-size:var(--text-h3)}.journal-editor__upload{margin-top:var(--space-1)}.journal-editor__disclosure{border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;min-height:48px;padding:0 var(--space-3);font-family:var(--font-ui);font-size:var(--text-body);color:var(--teal-dark);cursor:pointer;background:0 0;justify-content:space-between;align-items:center;font-weight:800;display:flex}.journal-editor__disclosure svg{transition:transform .16s ease-out}.journal-editor__disclosure[aria-expanded=true] svg{transform:rotate(90deg)}.journal-editor__scene-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.journal-editor__actions{bottom:calc(var(--nav-height) + var(--space-3) + env(safe-area-inset-bottom));gap:var(--space-2);padding-block:var(--space-4) var(--space-3);background:linear-gradient(to bottom, #fff9ed00, var(--butter) 45%);z-index:5;flex-direction:column;display:flex;position:sticky}.vocabulary-list{gap:var(--space-3)}.vocabulary-page__header p{margin-top:var(--space-1)}.vocabulary-page__view-toggle{justify-content:flex-start;gap:var(--space-3);min-height:48px;padding:5px var(--space-4) 5px 6px;font-size:var(--text-body)}.vocabulary-page__view-icon{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--teal-dark);background:#fffaf2;flex:0 0 36px;justify-content:center;align-items:center;display:inline-flex}.vocabulary-page__list-controls{align-items:center}.vocabulary-page__list-controls .tabs{flex:1}.vocabulary-scenes{gap:var(--space-5);display:grid}.vocabulary-scene{border-radius:var(--radius-md);background:var(--paper);box-shadow:var(--shadow-paper);overflow:hidden}.vocabulary-scene__image{aspect-ratio:16/8;object-fit:cover;width:100%;display:block}.vocabulary-scene__content{padding:var(--space-4)}.vocabulary-scene__heading{justify-content:space-between;align-items:baseline;gap:var(--space-3);padding-bottom:var(--space-3);display:flex}.vocabulary-scene__heading span{color:var(--teal-dark);font-size:var(--text-small);flex:none;font-weight:800}.vocabulary-scene__words{display:grid}.vocabulary-scene__word{justify-content:space-between;align-items:center;gap:var(--space-3);border-top:1px solid var(--line);min-height:58px;display:flex}.vocabulary-scene__word>span{gap:1px;display:grid}.vocabulary-scene__word strong{color:var(--teal-dark);font-size:var(--text-body)}.vocabulary-scene__word small{color:var(--ink-muted);font-size:var(--text-small)}.vocabulary-filter-backdrop{z-index:60;background:#2632386b;justify-content:center;align-items:flex-end;animation:.16s ease-out vocabulary-filter-fade;display:flex;position:fixed;inset:0}.vocabulary-filter-sheet{width:min(100%, var(--content-max));max-height:min(78vh,620px);padding:var(--space-2) var(--space-5) calc(var(--space-5) + env(safe-area-inset-bottom));border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--paper);animation:.22s cubic-bezier(.22,1,.36,1) vocabulary-filter-rise;overflow-y:auto;box-shadow:0 -12px 36px #26323833}.vocabulary-filter-sheet__handle{width:44px;height:4px;margin:0 auto var(--space-3);border-radius:var(--radius-pill);background:var(--line);display:block}.vocabulary-filter-sheet__header{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);display:flex}.vocabulary-filter-group{gap:var(--space-2);min-width:0;margin:0 0 var(--space-5);border:0;flex-direction:column;padding:0;display:flex}.vocabulary-filter-group legend{margin-bottom:var(--space-2);color:var(--ink);font-size:var(--text-body);font-weight:800}.vocabulary-filter-sheet__apply{position:sticky;bottom:0}@keyframes vocabulary-filter-fade{0%{background:#26323800}}@keyframes vocabulary-filter-rise{0%{opacity:.7;transform:translateY(24px)}}.vocabulary-card{padding:var(--space-4);border-radius:var(--radius-sm);background:var(--paper);box-shadow:var(--shadow-paper);cursor:default;border:none;align-items:flex-start;display:flex}.vocabulary-card__content{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.vocabulary-card__heading,.vocabulary-card__footer,.vocabulary-card__tags,.vocabulary-card__right{align-items:center;display:flex}.vocabulary-card__heading{justify-content:space-between;gap:var(--space-2)}.vocabulary-card__right{gap:var(--space-2);text-align:right;flex:none;margin-left:auto}.vocabulary-card__title{color:var(--teal-dark);font-family:var(--font-display);font-size:var(--text-h3);line-height:1.1}.vocabulary-card__translation{color:var(--ink);font-size:var(--text-body);text-align:right;line-height:1.3}.vocabulary-card__audio{background:var(--cream);flex:none;margin-left:auto}.vocabulary-card__example{color:var(--ink-muted);font-size:var(--text-small);line-height:1.4}.vocabulary-card__footer{gap:var(--space-2);flex-wrap:wrap}.vocabulary-card__tags{gap:var(--space-1);flex-wrap:wrap}.vocabulary-card .pill--new{color:var(--teal-dark);text-transform:capitalize;background:#e9f4f0;border-color:#2e9c9952}.vocabulary-filter-group .chip{text-transform:capitalize}@media (width<=420px){.vocabulary-card__right{gap:var(--space-1)}}.thumb{border-radius:var(--radius-sm);border:1px solid var(--line);flex:none;width:56px;height:56px;overflow:hidden}.thumb svg,.thumb img,.thumb .scene-image,.thumb .scene-image--error{object-fit:cover;width:100%;height:100%;display:block}.thumb--lg{width:96px;height:72px}.photo-strip{gap:var(--space-3);padding:var(--space-1);scrollbar-width:thin;display:flex;overflow-x:auto}.photo-thumb{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);flex:0 0 108px;height:80px;position:relative;overflow:hidden}.photo-thumb img,.photo-thumb svg,.photo-strip .scene-image{object-fit:cover;width:100%;height:100%;display:block}.photo-thumb__remove{top:var(--space-1);right:var(--space-1);border-radius:var(--radius-pill);background:var(--tomato);color:#fffaf2;cursor:pointer;border:none;place-items:center;width:28px;height:28px;font-size:20px;line-height:1;display:grid;position:absolute}.journal-carousel{position:relative}.journal-carousel__control{z-index:1;box-shadow:var(--shadow-card);background:#fffaf0eb;position:absolute;top:50%;transform:translateY(-50%)}.journal-carousel__control--previous{left:var(--space-2)}.journal-carousel__control--next{right:var(--space-2)}.journal-carousel__count{right:var(--space-3);bottom:var(--space-3);padding:2px var(--space-2);border-radius:var(--radius-pill);color:#fffaf2;font-size:var(--text-label);background:#263238bd;font-weight:800;position:absolute}.mascot{animation:1.8s ease-in-out infinite alternate sway}@keyframes sway{0%{transform:translateY(-2px)}to{transform:translateY(2px)}}.noodle-divider{width:100%;height:18px;display:block}.grid-2{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.grid-3{gap:var(--space-3);grid-template-columns:repeat(3,1fr);display:grid}.scene-pick{gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-md);border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow-paper);cursor:pointer;text-align:left;font-family:var(--font-ui);color:inherit;flex-direction:column;display:flex}.scene-pick--selected{border:var(--stroke) solid var(--teal);background:#fff4e2}.scene-pick svg,.scene-pick img,.scene-pick .scene-image,.scene-pick .scene-image--error{border-radius:var(--radius-sm);aspect-ratio:8/5;object-fit:cover;width:100%}.dashed-capture{border:2px dashed var(--line);border-radius:var(--radius-lg);padding:var(--space-6);align-items:center;gap:var(--space-3);background:#fffdf7;flex-direction:column;display:flex}.welcome-page{min-height:calc(100vh - var(--brand-height,92px) - var(--space-8));gap:var(--space-6);grid-template-rows:auto 1fr auto;display:grid}.welcome-logo{object-fit:contain;justify-self:center;display:block}.welcome-intro{text-align:center}.welcome-intro h1{color:var(--ink);font-size:clamp(30px,6vw,42px)}.welcome-intro p{margin-top:var(--space-1);color:var(--ink-muted);font-size:var(--text-body)}.welcome-story{align-content:center;gap:var(--space-5);grid-template-rows:44px 300px 44px;display:grid}.welcome-story__copy{place-items:center;gap:var(--space-1);text-align:center;height:44px;display:grid}.welcome-story__copy>span{color:var(--tomato);font-size:var(--text-small);font-weight:800}.welcome-story__copy h2{width:100%;color:var(--ink);white-space:nowrap;font-size:clamp(20px,5vw,30px);line-height:1.1}.welcome-story__copy p{max-width:48ch;color:var(--ink-muted);font-size:var(--text-small);line-height:1.45}.welcome-demo{border-radius:var(--radius-lg);background:var(--paper);width:min(100%,540px);height:300px;box-shadow:var(--shadow-paper);margin-inline:auto;overflow:hidden}.welcome-scene{height:100%;position:relative}.welcome-scene>img{object-fit:cover;width:100%;height:238px;display:block}.welcome-scene>i{background:var(--tomato);color:#fff;width:30px;height:30px;font:normal 800 var(--text-small) / 1 var(--font-ui);border:3px solid #fffaf2;border-radius:50%;place-items:center;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 3px 8px #26323833}.welcome-scene__words{gap:var(--space-2);padding:var(--space-4);display:flex;overflow-x:auto}.welcome-scene__words span{padding:6px var(--space-3);border-radius:var(--radius-pill);background:var(--cream);color:var(--teal-dark);font-size:var(--text-small);flex:none;font-weight:800}.welcome-ispy{gap:var(--space-3);height:100%;padding-bottom:var(--space-4);grid-template-rows:168px auto auto;display:grid}.welcome-ispy>img{object-fit:cover;width:100%;height:168px;display:block}.welcome-ispy__clue{margin-inline:var(--space-4);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--cream);gap:2px;display:grid}.welcome-ispy__clue strong{color:var(--teal-dark);font-size:var(--text-small)}.welcome-ispy__clue span{color:var(--ink-muted);font-size:var(--text-label)}.welcome-ispy__choices{gap:var(--space-2);padding-inline:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.welcome-ispy__choices span{padding:var(--space-2);border-radius:var(--radius-sm);background:var(--sage);color:var(--ink);font-size:var(--text-small);text-align:center;font-weight:800}.welcome-journal{align-items:center;gap:var(--space-5);height:100%;padding:var(--space-5);background:var(--cream);grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);display:grid}.welcome-journal__photos{gap:var(--space-2);display:grid;transform:rotate(-2deg)}.welcome-journal__photos img{aspect-ratio:4/3;border-radius:var(--radius-sm);object-fit:cover;width:100%;box-shadow:var(--shadow-paper);border:6px solid #fff}.welcome-journal__photos img+img{width:76%;margin-top:-38%;margin-left:auto;transform:rotate(7deg)}.welcome-journal>div:last-child{gap:var(--space-2);display:grid}.welcome-journal span{color:var(--tomato);font-size:var(--text-label);font-weight:800}.welcome-journal h3{color:var(--ink)}.welcome-journal p{color:var(--ink-muted);font-size:var(--text-small);line-height:1.5}.welcome-story__navigation{grid-template-columns:44px 1fr 44px;align-items:center;width:min(100%,540px);margin-inline:auto;display:grid}.welcome-story__navigation>.icon-btn{color:var(--tomato)}.welcome-story__dots{justify-content:center;gap:var(--space-2);display:flex}.welcome-story__dots button{border-radius:var(--radius-pill);background:var(--line);cursor:pointer;border:0;width:9px;height:9px;padding:0;transition:width .16s ease-out,background .16s ease-out}.welcome-story__dots button.is-active{background:var(--tomato);width:32px}.welcome-actions{justify-items:center;gap:var(--space-2);padding-bottom:var(--space-3);display:grid}.welcome-actions>.btn:first-child{width:min(100%,540px)}@media (width<=520px){.welcome-page{min-height:calc(100svh - 92px - var(--space-6));gap:var(--space-5)}.welcome-intro p{font-size:var(--text-small)}.welcome-story{grid-template-rows:40px 272px 44px}.welcome-story__copy{height:40px}.welcome-demo{height:272px}.welcome-scene>img{height:210px}.welcome-journal{gap:var(--space-3);padding:var(--space-4)}}.home{gap:var(--space-6)}.home h1{font-size:var(--text-h1)}.home h2{font-size:var(--text-h3);color:var(--ink)}.home-greeting{align-items:center;gap:var(--space-4);grid-template-columns:64px minmax(0,1fr);display:grid}.home-greeting img{width:64px;height:64px}.home-greeting h1{color:var(--ink)}.home-greeting p{max-width:38ch;color:var(--ink-muted);font-size:var(--text-small);margin-top:2px;line-height:1.4}.home-streak{--home-card-bg:var(--paper);gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--home-card-bg);box-shadow:var(--shadow-paper);flex-direction:column;display:flex}.home-streak p{color:var(--ink-muted);font-size:var(--text-small);line-height:1.35}.home-streak__heading{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.home-streak__xp{color:var(--teal-dark);font-size:var(--text-h2);white-space:nowrap}.home-streak__body{align-items:center;gap:var(--space-4);grid-template-columns:minmax(0,1fr) auto;display:grid}.home-streak__week{gap:var(--space-1);grid-template-columns:repeat(7,1fr);margin:0;padding:0;list-style:none;display:grid}.home-streak__day{align-items:center;gap:var(--space-1);color:var(--ink-muted);font-size:var(--text-label);flex-direction:column-reverse;font-weight:800;display:flex}.home-streak__farfalle{object-fit:contain;filter:grayscale();opacity:.22;width:34px;height:34px}.home-streak__day--checked .home-streak__farfalle{filter:none;opacity:1}.home-streak__day--checked span{color:var(--teal-dark)}.home-streak__day--today span{color:var(--tomato)}.home-streak__day--today .home-streak__farfalle{filter:drop-shadow(0 2px 2px #c94e2c3d)}.home-streak__count{align-items:center;gap:var(--space-1);flex-direction:column;display:flex}.home-streak__count>strong{color:var(--tomato);font-family:var(--font-display);white-space:nowrap;font-size:36px;line-height:1}.home-streak__count>strong span{color:var(--ink-muted);font-size:18px}.home-streak__caption{color:var(--ink-muted);font-size:var(--text-label);white-space:nowrap;font-weight:800}.home-plan{gap:var(--space-4);flex-direction:column;display:flex}.home-featured{--home-card-bg:var(--sage);background:var(--home-card-bg);color:var(--ink);grid-template-columns:minmax(0,1fr);padding:0;display:grid;overflow:hidden}.home-featured__image{width:100%;min-height:100%;display:block;position:relative}.home-featured__image .scene-image{object-fit:cover;aspect-ratio:16/9;width:100%;height:100%;display:block}.home-featured__body{gap:var(--space-3);padding:var(--space-5);align-content:start;display:grid}.home-featured--new .home-featured__body{padding-block:var(--space-6)}.home-featured h3,.home-featured strong{color:var(--ink)}.home-featured__description{color:var(--ink-muted);font-size:var(--text-small)}.home-task-progress{--home-progress:0deg;align-items:center;gap:var(--space-2);flex-direction:column;justify-self:center;display:flex}.home-task-progress__ring{background:conic-gradient(var(--teal) var(--home-progress), var(--line) 0);border-radius:50%;place-items:center;width:96px;height:96px;display:grid;position:relative}.home-task-progress__ring:before{border-radius:inherit;background:var(--home-card-bg,var(--paper));content:"";position:absolute;inset:8px}.home-task-progress__ring strong{z-index:1;color:var(--teal-dark);font-family:var(--font-display);font-size:22px;position:relative}.home-task-progress__caption{color:var(--ink-muted);font-size:var(--text-label);font-weight:800}.home-tiles{gap:var(--space-3);flex-direction:column;display:flex}.home-tiles__grid{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.home-tile{--home-card-bg:#fff;justify-content:center;align-items:center;gap:var(--space-2);min-height:104px;padding:var(--space-3) var(--space-2);border-radius:var(--radius-lg);background:var(--home-card-bg);box-shadow:var(--shadow-paper);color:var(--ink);font-size:var(--text-small);text-align:center;flex-direction:column;font-weight:800;display:flex}.home-tile:hover:not(:disabled){background:var(--butter)}.home-tile svg{color:var(--teal-dark)}.home-words{--home-card-bg:var(--cream);gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--home-card-bg);box-shadow:var(--shadow-card);flex-direction:column;display:flex}.home-words__heading{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.home-words__heading h2{font-size:var(--text-h2)}.home-words__heading p{color:var(--ink-muted);margin:4px 0 0}.home-words__heading>strong{color:var(--teal-dark);font-family:var(--font-display);font-size:var(--text-h2);white-space:nowrap}.home-words p{color:var(--ink-muted);font-size:var(--text-small)}.home-words__chart{grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;gap:0;margin:0;padding:0;list-style:none;display:grid}.home-words__bar{justify-items:center;gap:var(--space-1);padding:0 var(--space-1);grid-template-rows:minmax(0,1fr) auto;display:grid}.home-words__track{border-bottom:1px solid var(--line);justify-content:center;align-items:flex-end;width:100%;height:120px;display:flex;position:relative}.home-words__value{color:var(--teal-dark);font-family:var(--font-ui);font-size:var(--text-label);margin-bottom:4px;font-weight:800;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.home-words__bar--empty .home-words__value{color:var(--ink-muted)}.home-words__fill{--home-bar:0%;width:100%;max-width:32px;height:var(--home-bar);border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--teal);min-height:3px;transition:height .18s ease-out;position:relative}.home-words__bar--empty .home-words__fill{border-radius:var(--radius-sm);background:var(--line)}.home-words__bar--today .home-words__fill{background:var(--teal-dark)}.home-words__day{color:var(--ink-muted);font-family:var(--font-ui);font-size:var(--text-label);font-weight:800}.home-words__bar--today .home-words__day{color:var(--teal-dark)}.home-words__empty{color:var(--ink-muted);font-size:var(--text-small);text-align:center}@media (width>=560px){.home-featured--resume{grid-template-columns:repeat(2,minmax(0,1fr))}.home-featured--resume .home-featured__image .scene-image{aspect-ratio:auto}.home-featured--resume .home-featured__body{flex-direction:column;display:flex}.home-featured--resume .home-featured__body .home-task-progress{align-self:center;margin-block:auto}.home-featured--resume .home-task-progress__ring{width:144px;height:144px}.home-featured--resume .home-task-progress__ring:before{inset:12px}.home-featured--resume .home-task-progress__ring strong{font-size:32px}.home-featured--resume .home-task-progress__caption{font-size:var(--text-body)}}@media (width<=480px){.home-greeting{grid-template-columns:56px minmax(0,1fr)}.home-greeting img{width:56px;height:56px}.home-greeting h1{font-size:28px}.home-streak{padding:var(--space-4)}.home-streak__body{grid-template-columns:minmax(0,1fr)}.home-streak__count{flex-direction:row;justify-content:space-between;align-items:baseline}.home-streak__count>strong{font-size:30px}.home-tile{min-height:92px;padding:var(--space-2) var(--space-1)}.home-words{padding:var(--space-4)}.home-words__track{height:92px}.home-words__value{font-size:11px}}.task-row{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--line);cursor:pointer;text-align:left;font-family:var(--font-ui);font-size:var(--text-heading);color:inherit;background:#fffdf7;transition:background .14s ease-out,border-color .14s ease-out;display:flex}.task-row:hover{border-color:var(--teal);background:var(--cream)}.task-row--done{background:var(--sage);border-color:var(--teal)}.task-row--done:hover{background:#d2e7d4}.task-row__index{border-radius:var(--radius-pill);background:var(--cream);width:35px;height:35px;font-weight:800;font-size:var(--text-small);flex:none;justify-content:center;align-items:center;display:inline-flex}.learn-page>.stack-2:first-child{margin-bottom:var(--space-1)}.task-list{gap:var(--space-2);flex-direction:column;display:flex}.learning-task-page>.trail{margin-bottom:var(--space-2)}.learning-task-page__all-tasks{min-height:44px;margin-top:calc(var(--space-2) * -1);text-underline-offset:4px;align-self:center;text-decoration:underline;text-decoration-thickness:1px}.learning-title-row{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.learning-title-row h1{min-width:0}.learning-exit{gap:var(--space-1);color:var(--ink-muted);flex:none}.learning-card{gap:var(--space-5);background:#ffedb8}.learning-card .learning-card__meta{font-size:var(--text-body)}.learning-card__word{gap:var(--space-1);flex-direction:column;display:flex}.learning-card__word h2{color:var(--teal-dark);font-size:clamp(32px,8vw,44px)}.learning-card__audio.icon-btn{width:54px;height:54px;color:var(--teal-dark);background:#fff;transition:background .12s ease-out,transform .12s ease-out,box-shadow .12s ease-out;box-shadow:0 5px 14px #5643221f}.learning-card__audio.icon-btn:hover{background:#fff;transform:translateY(-1px);box-shadow:0 7px 16px #56432229}.learning-card__audio.icon-btn:active{transform:translateY(1px);box-shadow:0 3px 9px #5643221f}.learning-example{gap:var(--space-1);padding-top:var(--space-4);border-top:1px solid #26323824;flex-direction:column;display:flex}.learning-card__position{color:var(--ink-muted);font-size:var(--text-label);align-self:flex-end;font-weight:800}.vocabulary-learning-grid{gap:var(--space-3);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}.vocabulary-learning-grid--swipe{touch-action:pan-y}.vocabulary-learning-card{min-width:0;padding:var(--space-4)}.vocabulary-learning-card .learning-card__word h2{overflow-wrap:anywhere;font-size:clamp(28px,5vw,40px)}.vocabulary-flow__actions{align-items:stretch;gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width<=720px){.vocabulary-learning-grid{grid-template-columns:1fr}}.flashcard{background:var(--cream);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-card);gap:var(--space-2);flex-direction:column;display:flex}.mic-orb{border-radius:var(--radius-pill);background:var(--cream);border:var(--stroke) solid var(--teal-dark);width:120px;height:120px;color:var(--teal-dark);justify-content:center;align-items:center;transition:background .16s ease-out,transform .16s ease-out;display:flex}.mic-orb--live{background:var(--sage)}.mic-test-page>h1{margin-bottom:calc(var(--space-3) * -1)}.mic-test-panel{align-items:center;gap:var(--space-4);padding:var(--space-6) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--paper);flex-direction:column;display:flex}.mic-prompt{align-items:center;gap:var(--space-1);text-align:center;flex-direction:column;display:flex}.mic-prompt h2{text-wrap:balance}.mic-test-control{align-items:center;gap:var(--space-3);width:fit-content;min-width:152px;min-height:164px;padding:var(--space-2);color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:none;flex-direction:column;margin:0 auto;display:flex}.mic-test-control:hover:not(:disabled) .mic-orb{background:var(--sage);transform:scale(1.02)}.mic-test-control:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:var(--radius-md)}.mic-test-control:disabled{cursor:wait}.mic-status{min-height:24px;margin:calc(var(--space-2) * -1) 0 0;text-align:center;color:var(--ink-muted);font-weight:700}.mic-status--success{color:var(--teal-dark)}.mic-typing-action.btn--quiet{border-color:var(--teal-dark)}.mic-typing-action.btn--quiet:hover:not(:disabled){border-color:var(--teal-dark);background:var(--cream)}.stat-grid{gap:var(--space-3);grid-template-columns:repeat(3,1fr);display:grid}.stat{justify-content:center;align-items:center;gap:var(--space-1);background:var(--sage);border-radius:var(--radius-md);min-height:132px;padding:var(--space-3);text-align:center;border:2px solid #2e9c9947;flex-direction:column;display:flex}.stat__value{font-family:var(--font-display);color:var(--teal-dark);font-size:38px;font-weight:800;line-height:1}.stat__label{color:var(--ink);font-size:var(--text-body);font-weight:800}.summary__noodle{width:min(240px,70%);margin-inline:auto}.profile-page{gap:var(--space-6)}.profile-page__heading,.profile-section__heading,.profile-setting{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.profile-page__heading .btn{text-underline-offset:4px;flex:none;text-decoration:underline}.profile-identity-card{align-items:center;gap:var(--space-5);width:100%;padding:var(--space-4);border-radius:var(--radius-lg);background:var(--cream);color:var(--ink);text-align:left;border:1px solid var(--line);display:flex}.profile-identity-card>svg{color:var(--teal-dark);flex:none;margin-left:auto;transition:transform .16s ease-out}.profile-identity-card>svg.is-open{transform:rotate(90deg)}.profile-avatar{background:var(--teal);border:1px solid var(--line);border-radius:var(--radius-pill);flex:0 0 90px;place-items:center;width:90px;height:90px;display:grid;overflow:hidden}.profile-avatar img{object-fit:contain;width:75%;height:75%}.profile-avatar-button{cursor:pointer;background:0 0;border:0;padding:0;display:block}.profile-inline-field{gap:4px;display:grid}.profile-inline-field span{color:var(--ink-muted);font-size:var(--text-small)}.profile-inline-field input{border:1px solid var(--line);border-radius:var(--radius-sm);width:min(100%,280px);color:var(--ink);background:var(--paper);font:inherit;padding:8px 10px}.profile-identity__details{gap:1px;min-width:0;margin-top:10px;display:grid}.profile-name-link{width:100%;padding:0 var(--space-6) 0 0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;position:relative}.profile-name-link>svg{color:var(--teal-dark);position:absolute;top:50%;right:0;transform:translateY(-50%)}.profile-identity__details>.profile-identity__xp{margin-top:var(--space-2);border-radius:var(--radius-pill);background:var(--cream);color:var(--teal-dark);justify-self:start;padding:4px 8px;font-size:15px;line-height:1}.profile-identity__details>strong{margin-bottom:var(--space-1);font-family:var(--font-display);font-size:30px;line-height:1}.profile-identity__details>span,.profile-identity__details>small{color:var(--ink-muted);font-size:var(--text-small)}.profile-identity__details>small{margin-top:var(--space-1);color:var(--teal-dark);font-weight:800}.profile-field{gap:var(--space-1);display:grid}.profile-field span{color:var(--ink-muted);font-size:var(--text-label);font-weight:800}.profile-field input{width:100%;min-height:44px;padding:0 var(--space-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);font:800 var(--text-h3) / 1 var(--font-display)}.profile-avatar-picker{border:0;min-width:0;margin:0;padding:0}.profile-avatar-picker legend{margin-bottom:var(--space-3);font-size:var(--text-body);font-weight:800}.profile-avatar-options{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.profile-avatar-options button{place-items:center;gap:var(--space-1);min-width:0;min-height:92px;padding:var(--space-2);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);font:800 var(--text-label) / 1.2 var(--font-ui);cursor:pointer;border:2px solid #0000;display:grid}.profile-avatar-options button.is-selected{border-color:var(--teal);background:var(--sage)}.profile-avatar-options img{object-fit:contain;width:54px;height:54px}.profile-streak-card{justify-content:space-between;align-items:center;gap:var(--space-2);min-height:72px;padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);background:var(--cream);display:flex}.profile-streak-card span{color:var(--ink);font-weight:800}.profile-streak-card strong{color:var(--teal-dark);font-family:var(--font-ui);font-size:var(--text-body);font-weight:800}.profile-section{gap:var(--space-3);display:grid}.profile-tier-card{gap:var(--space-3);padding:var(--space-5);background:var(--sage);display:grid}.profile-tier-card>div{align-items:center;gap:var(--space-3);display:flex}.profile-tier-card strong{color:var(--teal-dark)}.profile-tier-card p{color:var(--ink);margin:0}.profile-tier-badge{border-radius:var(--radius-pill);background:var(--teal-dark);color:#fff;min-height:28px;font-size:var(--text-label);letter-spacing:.02em;text-transform:uppercase;align-items:center;padding:4px 10px;font-weight:800;display:inline-flex}.profile-section__heading span{color:var(--ink-muted);font-size:var(--text-small)}.profile-progress-grid{border-radius:var(--radius-md);border:1px solid #35aaa7;grid-template-columns:repeat(4,minmax(0,1fr));display:grid;overflow:hidden}.profile-progress-stat{align-content:center;gap:var(--space-1);min-width:0;min-height:112px;padding:var(--space-3) var(--space-2);text-align:center;background:var(--sage);display:grid}.profile-progress-stat:first-child,.profile-progress-stat:last-child{background:#fde7de}.profile-progress-stat+.profile-progress-stat{border-left:1px solid #21716f2e}.profile-progress-stat strong{color:var(--teal-dark);font-family:var(--font-display);font-size:32px;line-height:1}.profile-progress-stat span{color:var(--ink);font-size:15px;font-weight:500;line-height:1.2}.profile-settings-card{padding:0 var(--space-4);background:var(--paper)}.profile-setting{min-height:72px;padding-block:var(--space-3)}.profile-setting+.profile-setting{border-top:1px solid var(--line)}.profile-setting>span{gap:2px;min-width:0;display:grid}.profile-setting strong{color:var(--ink);font-size:var(--text-body)}.profile-setting small{color:var(--ink-muted);font-size:var(--text-small)}.profile-setting>b{color:var(--teal-dark);font-size:var(--text-small);flex:none}.profile-setting select{min-width:112px;min-height:44px;padding-inline:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--butter);color:var(--ink);font:800 var(--text-small) / 1 var(--font-ui)}.profile-setting select:disabled,.profile-setting input:disabled{cursor:default;opacity:.72}.profile-support-link{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0}.profile-support-link>svg{color:var(--teal-dark);flex:none}.profile-ai-note{padding:var(--space-4);border-radius:var(--radius-md);background:var(--cream)}.profile-ai-note strong{color:var(--teal-dark)}.profile-ai-note p{margin-top:var(--space-1);color:var(--ink-muted);font-size:var(--text-small);line-height:1.45}.profile-logout{margin-top:var(--space-2)}.profile-danger-zone{gap:var(--space-2);padding-top:var(--space-5);border-top:1px solid var(--line);display:grid}.profile-danger-zone p{color:var(--ink-muted);font-size:var(--text-small);line-height:1.45}.profile-delete-trigger.btn--quiet{color:var(--danger);justify-content:flex-start;padding-inline:0}.account-delete-summary{gap:var(--space-2);margin-bottom:var(--space-5);display:grid}.account-delete-modal .account-delete-summary p{margin:0}.account-delete-summary ul{gap:var(--space-1);padding-left:var(--space-5);color:var(--ink-muted);font-size:var(--text-small);margin:0;line-height:1.45;display:grid}.account-delete-summary>strong{color:var(--danger)}.account-delete-modal .account-delete-error{margin:0 0 var(--space-4);color:var(--danger);font-weight:700}.account-delete-actions{gap:var(--space-3);display:grid}.contact-page{gap:var(--space-6)}.contact-page>div:first-child{gap:var(--space-2);display:grid}.contact-card{padding:var(--space-5);background:var(--paper)}.contact-card select.input{appearance:auto}.contact-file-input{min-height:52px;padding-block:10px}.contact-file-input::file-selector-button{margin-right:var(--space-3);border-radius:var(--radius-sm);background:var(--teal);color:#fff;font:800 var(--text-small) / 1 var(--font-ui);cursor:pointer;border:0;padding:8px 12px}.contact-attachment-list{gap:var(--space-1);padding-left:var(--space-5);color:var(--ink-muted);font-size:var(--text-small);display:grid}.contact-error{color:var(--danger);font-size:var(--text-small);font-weight:800}.contact-page__direct{text-align:center}.report-issue-link{min-height:44px;margin-top:var(--space-1);color:var(--teal-dark);font-size:var(--text-small);text-underline-offset:4px;cursor:pointer;background:0 0;border:0;justify-content:flex-start;align-items:center;padding:0;font-weight:800;text-decoration:underline;display:inline-flex}.report-issue-link:hover{color:var(--tomato-pressed)}.report-modal__backdrop{z-index:90;padding:var(--space-4);background:#2632387a;place-items:center;animation:.16s ease-out help-modal-fade;display:grid;position:fixed;inset:0}.report-modal{width:min(100%,480px);max-height:min(720px,100dvh - 32px);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--paper);animation:.18s cubic-bezier(.22,1,.36,1) help-modal-enter;overflow-y:auto;box-shadow:0 16px 42px #26323838}.report-modal__header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.report-modal__header h2{font-size:var(--text-h2)}.report-modal__header p{margin-top:var(--space-1);color:var(--ink-muted)}.report-modal__issues{gap:var(--space-2);display:grid}.report-modal__issue{min-height:48px;padding:12px var(--space-4);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--cream);color:var(--ink);font:800 var(--text-small) / 1.35 var(--font-ui);text-align:left;cursor:pointer}.report-modal__issue:hover{border-color:var(--teal)}.report-modal__issue--selected{border:2px solid var(--teal-dark);background:var(--sage)}.report-modal__details{resize:vertical;min-height:104px}.profile-edit-card{padding:var(--space-4);background:var(--paper)}.profile-edit-field{gap:var(--space-2);display:grid}.profile-edit-field>span{color:var(--ink);font-size:var(--text-small);font-weight:800}.profile-edit-field input{width:100%;min-height:48px;padding-inline:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--butter);color:var(--ink);font:700 var(--text-body) / 1 var(--font-ui)}@media (width<=520px){.profile-progress-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-progress-stat:nth-child(3){border-left:0}.profile-progress-stat:nth-child(n+3){border-top:1px solid #21716f2e}}@media (width<=400px){.profile-identity-card{align-items:flex-start;gap:var(--space-3)}.profile-avatar{flex-basis:92px;width:92px;height:92px}.profile-avatar-options{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-setting{flex-direction:column;align-items:flex-start}.profile-setting select{width:100%}}.profile-page:not(.profile-edit-page) .profile-setting{flex-direction:row;align-items:center}.profile-page:not(.profile-edit-page) .profile-setting>b{white-space:nowrap;margin-left:auto}.progress-page__header{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.progress-page__vocabulary{justify-content:flex-start;gap:var(--space-4);min-height:72px;padding:var(--space-2) var(--space-5) var(--space-2) var(--space-3);font-size:var(--text-h3)}.progress-page__vocabulary-icon{border-radius:var(--radius-sm);width:52px;height:52px;color:var(--teal-dark);background:#fffaf2;flex:0 0 52px;justify-content:center;align-items:center;display:inline-flex}.progress-overview{border-radius:var(--radius-md);background:var(--sage);box-shadow:var(--shadow-paper);grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.progress-overview__metric{justify-content:center;align-items:center;gap:var(--space-1);min-width:0;min-height:132px;padding:var(--space-4) var(--space-2);text-align:center;flex-direction:column;display:flex}.progress-overview__metric+.progress-overview__metric{border-left:1px solid #21716f2e}.progress-overview__metric strong{color:var(--teal-dark);font-family:var(--font-display);font-size:38px;font-weight:800;line-height:1}.progress-overview__metric span{color:var(--ink);font-size:var(--text-small);font-weight:800;line-height:1.2}@media (width<=380px){.progress-page__vocabulary{padding-right:var(--space-4)}.progress-overview__metric strong{font-size:34px}}@media (width>=900px){.vocabulary-page__view-toggle{align-self:flex-end;width:min(100%,340px)}.journal-page__header{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.journal-page__header .month-switcher{flex:1;min-width:0}.journal-page__add{width:auto;display:inline-flex}.journal-feed{gap:var(--space-8);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.journal-fab{display:none}.journal-editor__layout{gap:var(--space-8);grid-template-columns:minmax(0,1fr) 340px;align-items:start;display:grid}.journal-editor__aside{top:var(--space-8);position:sticky}.journal-editor__actions{background:0 0;align-items:flex-end;padding-block:0;position:static}.journal-editor__save{width:min(100%,280px)}.home.stack{display:flex}.practice-select .grid-2{grid-template-columns:repeat(3,minmax(0,1fr))}.vocabulary-scenes,.vocabulary-list{align-items:start;gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}}@media (width>=1000px){.journal-entry{gap:var(--space-8);grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:start;display:grid}.journal-entry__gallery{top:var(--space-8);grid-area:1/1/span 3;position:sticky}.journal-entry__header,.journal-entry__body,.journal-entry__vocab,.journal-entry__back{grid-column:2}.shell--focus>.shell__content--desktop-wide{max-width:1120px}.analysis-layout{align-items:stretch;column-gap:var(--space-8);grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);display:grid}.analysis-results{flex:0 auto;min-height:0}.analysis-word-card{flex-direction:column;flex:0 auto;min-height:0;display:flex}.analysis-word-list{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent;flex:0 auto;min-height:0;max-height:none;overflow-y:auto}.analysis-word-list::-webkit-scrollbar{width:8px}.analysis-word-list::-webkit-scrollbar-track{background:0 0}.analysis-word-list::-webkit-scrollbar-thumb{background:var(--line);border-radius:var(--radius-pill)}.analysis-continue{margin-top:var(--space-4)}}.loading-screen{z-index:1000;padding:var(--space-6);-webkit-backdrop-filter:blur(3px);cursor:progress;overscroll-behavior:contain;background:#26323838;place-items:center;display:grid;position:fixed;inset:0}.loading-screen__status{align-items:center;gap:var(--space-2);width:max-content;max-width:min(100%,320px);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);text-align:center;background:#fff;outline:none;flex-direction:column;display:flex;box-shadow:0 8px 24px #2632381f}.loading-fork{width:68px;height:68px;margin-bottom:var(--space-2);place-items:center;display:grid}.loading-fork img{object-fit:contain;transform-origin:58%;width:64px;height:64px;animation:1.7s cubic-bezier(.5,.05,.5,.95) infinite fork-twirl;display:block}@keyframes fork-twirl{0%,to{transform:rotate(-12deg)translateY(2px)}45%{transform:rotate(348deg)translateY(-3px)}65%{transform:rotate(360deg)translateY(-3px)}}@media (prefers-reduced-motion:reduce){.loading-fork img{animation:none}}.loading-screen__label{color:var(--ink);max-width:26ch;font-size:var(--text-body);font-weight:700}:root{--tomato:#ef5b32;--tomato-pressed:#c84725;--pasta:#f9ae22;--header:#f3d560;--butter:#fbf8ef;--cream:#fff2d6;--paper:#fffdf8;--sage:#dcebdd;--teal:#2e9c99;--teal-dark:#21716f;--ink:#263238;--ink-muted:#667579;--line:#ded7c8;--danger:#c94e2c;--focus:#166c84;--font-display:"Baloo 2", ui-rounded, sans-serif;--font-ui:"Nunito Sans", ui-sans-serif, system-ui, sans-serif;--text-display:clamp(32px, 5vw, 64px);--text-h1:32px;--text-h2:24px;--text-h3:20px;--text-body:16px;--text-small:14px;--text-label:12px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-sm:12px;--radius-md:18px;--radius-lg:28px;--radius-pill:999px;--stroke:2px;--shadow-card:0 8px 22px #5643221a;--shadow-paper:0 2px 0 #ffffffb3 inset, 0 8px 20px #56432212;--shadow-action:0 4px 0 var(--tomato-pressed);--nav-height:68px;--content-max:520px}*{box-sizing:border-box}html,body,#root{height:100%}body{overflow-wrap:anywhere;background:var(--butter);color:var(--ink);font-family:var(--font-ui);font-size:var(--text-body);-webkit-font-smoothing:antialiased;margin:0;line-height:1.45}h1,h2,h3{font-family:var(--font-display);color:var(--ink);margin:0;font-weight:800}h1{font-size:var(--text-h1);line-height:1.12}h2{font-size:var(--text-h2);line-height:1.18}h3{font-size:var(--text-h3);line-height:1.25}p{margin:0}button{font-family:var(--font-ui)}a{color:var(--teal-dark)}:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:var(--radius-sm)}.muted{color:var(--ink-muted)}.small{font-size:var(--text-small)}.label{font-size:var(--text-label);letter-spacing:.02em;font-weight:800}.stack{gap:var(--space-4);flex-direction:column;display:flex}.stack-2{gap:var(--space-2);flex-direction:column;display:flex}.row{align-items:center;gap:var(--space-3);display:flex}.spread{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.grow{flex:1;min-width:0}.row,.spread,.row>*,.spread>*{min-width:0}.center-text{text-align:center}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
