.account-bar .account-menu{flex:none;margin-left:auto;position:relative}.account-bar .account-menu>summary{color:#362745;background:#f4eff9;border:1px solid #d6c5e8;border-radius:.8rem;padding:.5rem .8rem;font-weight:600}.account-menu-notice{font-weight:400}.account-menu-panel{box-sizing:border-box;background:#fffdf9;border:1px solid #d6c5e8;border-radius:1rem;width:min(21rem,100vw - 3rem);max-height:min(70dvh,32rem);padding:1rem;position:absolute;top:calc(100% + .5rem);right:0;overflow-y:auto;box-shadow:0 12px 36px #30233920}.account-menu-panel>.sound-toggle{margin-top:.75rem}.account-profile-link{color:#483262;margin:.5rem 0;padding:.35rem 0;font-weight:600;display:inline-block}.account-menu-panel .account-import,.account-menu-panel .account-error{margin-top:.75rem}.lesson-step-count{color:#625470;margin:.4rem 0 0;font-size:.8rem}.lesson-enlarge{margin-top:.6rem}.lesson-image-dialog{box-sizing:border-box;color:#272238;background:#fffdf9;border:1px solid #c6afde;border-radius:1.25rem;width:min(64rem,100vw - 2rem);max-height:90dvh;padding:1.25rem}.lesson-image-dialog::backdrop{background:#27223899}.lesson-image-dialog-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.lesson-image-dialog-header h2{margin:0;font-size:1.15rem}.lesson-image-dialog>p{color:#625470;line-height:1.6}.lesson-image-zoom{border-radius:.8rem;overflow:auto}.lesson-image-zoom img{width:100%;min-width:880px;display:block}.account-menu summary:focus-visible,.lesson-image-zoom:focus-visible{outline-offset:3px;outline:3px solid #73539a}body{margin:0}.app-shell{max-width:42rem;margin:0 auto;padding:4rem 1.5rem}h1{margin:0;font-size:clamp(2rem,5vw,2.75rem);line-height:1.15}a{color:#1d4ed8}.primary-link{color:#fff;background:#1d4ed8;border-radius:.75rem;margin-top:1rem;padding:.75rem 1rem;text-decoration:none;display:inline-block}.lesson-category{color:#475569;margin:0 0 .75rem;font-weight:700}.lesson-duration{color:#475569;margin:1rem 0 0}.lesson-content{gap:1rem;display:grid}.lesson-bubble{background:#fff;border:1px solid #dbeafe;border-radius:1rem 1rem 1rem .25rem;width:fit-content;max-width:85%;margin:0;padding:1rem 1.25rem;line-height:1.6;box-shadow:0 4px 12px #0f172a0d}.lesson-question{gap:1rem;display:grid}.lesson-choices{gap:.5rem;display:grid}.lesson-choice,.lesson-next{color:#1f2937;width:fit-content;max-width:100%;font:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #94a3b8;border-radius:.75rem;padding:.75rem 1rem}.lesson-choice:disabled{cursor:default}.lesson-feedback{margin:0;padding:0 1.25rem;line-height:1.6}.lesson-next{color:#fff;background:#1d4ed8;border-color:#1d4ed8;margin-top:2rem}.lesson-image{margin:0}.lesson-image img{max-width:100%;display:block}.lesson-image figcaption{color:#475569;margin-top:.5rem}.card-summary{margin:2rem 0;padding-left:1.25rem}.card-summary li{margin-bottom:1rem}.card-summary strong{margin-top:.25rem;display:block}.memo{object-fit:contain;display:block}.lesson-header>.memo{margin-bottom:1rem}.memo-rating{cursor:pointer;background:#faf7ff;border:2px solid #b8a3dd;border-radius:1rem;padding:.75rem}.memo-rating:focus-visible{outline-offset:4px;outline:3px solid #503580}.card-stage{text-align:center;margin-top:2rem}.card-question{max-width:34rem;margin:0 auto 1.5rem;font-size:1.25rem;line-height:1.5}.card-deck{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;display:grid}.flash-card{color:#1f2937;min-height:19rem;font:inherit;text-align:center;cursor:pointer;touch-action:pan-y;-webkit-user-select:none;user-select:none;background:#fff;border:2px solid #8ab4e8;border-radius:1.5rem;flex-direction:column;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.5rem;display:flex}.flash-card[aria-pressed=true]{background:#faf7ff;border-color:#b8a3dd}.flash-card-side,.flash-card-action{color:#475569;font-size:.875rem}.flash-card-content{font-size:1.125rem;line-height:1.6}.flash-card:focus-visible{outline-offset:4px;outline:3px solid #503580}.card-deck .memo-rating{font:inherit;color:#503580;justify-items:center;gap:.25rem;display:grid}.memo-rating:disabled{opacity:.45;cursor:default}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=480px){.card-deck{gap:.5rem}.card-deck .memo-rating{padding:.375rem}.card-deck .memo{width:40px;height:40px}.flash-card{padding:1rem .75rem}}:root{color:#262238;background:#f5f2ec;font-family:Segoe UI,system-ui,sans-serif}.app-shell{isolation:isolate;max-width:46rem;padding:2rem 1.5rem 4rem;position:relative}.lesson-header{margin-bottom:2.75rem}.lesson-toolbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:3rem;display:flex}.brand{color:#262238;letter-spacing:-.04em;font-size:1.1rem;font-weight:800;text-decoration:none}.brand span{color:#6c647a;letter-spacing:0;font-size:.8rem;font-weight:400}.sound-toggle{font:inherit;color:#514660;cursor:pointer;background:#faf8f4;border:1px solid #d5cede;border-radius:2rem;padding:.5rem .75rem;font-size:.8rem}.sound-toggle[aria-pressed=true]{background:#e4d9f5}.lesson-category{color:#7757a1;letter-spacing:.12em;text-transform:uppercase;font-size:.75rem}.lesson h1{letter-spacing:-.045em;max-width:38rem;font-size:clamp(2.25rem,5vw,3.5rem);font-weight:750}.lesson-duration{color:#696074;font-size:.875rem}.lesson-content{gap:1.25rem}.chat-row{grid-template-columns:3.25rem minmax(0,1fr);align-items:start;gap:1rem;animation:.42s cubic-bezier(.16,1,.3,1) both message-arrive;display:grid}.chat-avatar{padding-top:1.5rem;position:relative}.chat-avatar .memo{width:52px;height:52px;animation:.55s cubic-bezier(.2,.8,.2,1) both memo-greet}.chat-avatar:has(img):after{content:"";transform-origin:0;background:#ad93ce;width:16px;height:1px;animation:.35s ease-out both draw-line;position:absolute;top:3.15rem;right:-1rem}.chat-author{color:#514064;flex-wrap:wrap;gap:.5rem;margin:0 0 .5rem .25rem;font-size:.8rem;font-weight:700;display:flex}.chat-author span{color:#776c80;font-weight:400}.lesson-bubble{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#30283d;background:linear-gradient(135deg,#ffffffd9,#eae0f78c);border:1px solid #fff;border-radius:.4rem 1.4rem 1.4rem;width:auto;max-width:100%;padding:1.1rem 1.35rem;line-height:1.7;box-shadow:inset 0 1px #fff,0 6px 18px #452c5b0a}.lesson-bubble p{margin:0}.chat-row-continuation .lesson-bubble{border-top-left-radius:1.4rem}.chat-row-feedback .lesson-bubble{background:#e4d8f5bf}.lesson-choices{gap:.65rem;margin-left:4.25rem}.lesson-choice{color:#40314f;background:#ffffffa6;border-color:#d2c5e0;border-radius:.85rem;width:100%;padding:.85rem 1.1rem}.lesson-choice:not(:disabled):hover{background:#ede4f7;border-color:#a98bc9}.lesson-choice[aria-pressed=true]{background:#e5d8f3;border-color:#8b69b2}.lesson-next{background:#5b387c;border-color:#5b387c;border-radius:2rem;margin-left:4.25rem;padding:.85rem 1.5rem;box-shadow:0 4px #e0d4ec}.lesson-next:hover{background:#482861}button:focus-visible,a:focus-visible{outline-offset:4px;outline:3px solid #8056b0}.typing-cue{gap:4px;margin:.5rem 0 0 .5rem;animation:.8s linear forwards typing-dismiss;display:inline-flex}.typing-cue i{background:#8c73a6;border-radius:50%;width:4px;height:4px;animation:.4s ease-in-out 2 typing-dot}.typing-cue i:nth-child(2){animation-delay:60ms}.typing-cue i:nth-child(3){animation-delay:.12s}.workshop{z-index:-1;pointer-events:none;--plate-shift:calc(var(--beat) * 12px);position:fixed;inset:0;overflow:hidden}.workshop-axis{background:#d7cfdc;width:1px;animation:.75s ease-out both axis-enter;position:absolute;inset:6rem auto 3rem 3rem}.workshop-axis span{writing-mode:vertical-rl;letter-spacing:.16em;color:#87778e;font:10px ui-monospace,monospace;position:absolute;top:0;left:-1rem}.workshop-plate{color:#7c658e;box-sizing:border-box;background:#e4daee;border:1px solid #bba8cb;border-radius:8px 32px 8px 8px;width:clamp(120px,17vw,260px);height:clamp(130px,20vw,290px);padding:1rem;transition:transform .8s cubic-bezier(.22,1,.36,1),background .5s;animation:.95s cubic-bezier(.16,1,.3,1) both plate-enter;position:absolute}.workshop-plate span{letter-spacing:.08em;font:9px ui-monospace,monospace}.workshop-plate i{border-top:1px solid;border-bottom:1px solid;width:38%;height:5px;display:block;position:absolute;bottom:1rem;left:1rem}.plate-a{transform:translateY(var(--plate-shift)) rotate(-12deg);top:24%;left:-5rem}.plate-b{transform:translateY(calc(-1 * var(--plate-shift))) rotate(11deg);background:0 0;animation-delay:.1s;top:16%;right:-4rem}.plate-c{transform:translateX(calc(-1 * var(--plate-shift))) rotate(-9deg);background:#ede5d5;border-color:#c9bca9;animation-delay:.18s;bottom:8%;right:-8rem}.workshop-stack{width:100px;height:90px;position:absolute;bottom:4rem;left:5rem}.workshop-stack i{width:70px;height:22px;transform:translate(calc(var(--index) * 6px), calc(var(--index) * -14px));opacity:clamp(.15, calc(var(--stack) - var(--index)), 1);background:#e3d5f0;border:1px solid #bca5d0;border-radius:5px;transition:opacity .4s,transform .75s cubic-bezier(.22,1,.36,1);position:absolute}.workshop-stack span{letter-spacing:.08em;color:#87778e;font:9px ui-monospace,monospace;position:absolute;bottom:0}.workshop-registration{color:#a192ad;font:20px ui-monospace,monospace;position:absolute;top:2rem;left:3rem;right:3rem}.workshop-registration span{float:right}.workshop[data-stage=cards] .plate-a{transform:translateY(50px)rotate(0)}.workshop[data-stage=cards] .plate-b{transform:translateY(120px)rotate(0)}.workshop[data-stage=cards] .plate-c{transform:translateY(-60px)rotate(0)}.workshop[data-stage=cards] .workshop-stack i{opacity:1}.workshop[data-stage=rest] .workshop-plate{background:0 0}@keyframes message-arrive{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes memo-greet{0%{transform:translateY(6px)rotate(-5deg)}60%{transform:translateY(-2px)rotate(2deg)}to{transform:translateY(0)rotate(0)}}@keyframes draw-line{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes axis-enter{0%{opacity:0;transform:scaleY(.9)}to{opacity:1;transform:scaleY(1)}}@keyframes plate-enter{0%{opacity:0;translate:0 40px}to{opacity:var(--plate-opacity,1);translate:0}}@keyframes typing-dot{50%{transform:translateY(-3px)}}@keyframes typing-dismiss{0%,80%{opacity:1}to{opacity:0;visibility:hidden}}@media (width<=1100px){.workshop-plate{--plate-opacity:.4;opacity:.4}.workshop-axis,.workshop-stack{display:none}.plate-a{left:-9rem}.plate-b{right:-9rem}.plate-c{right:-10rem}}@media (width<=600px){.app-shell{padding-top:1.25rem}.brand span{display:none}.lesson-toolbar{margin-bottom:2rem}.chat-row{grid-template-columns:2.25rem minmax(0,1fr);gap:.6rem}.chat-avatar .memo{width:36px;height:36px}.chat-avatar:has(img):after{width:10px;top:2.6rem;right:-.6rem}.chat-author span{display:none}.lesson-bubble{padding:.9rem 1rem}.lesson-choices,.lesson-next{margin-left:2.85rem}.workshop-registration{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.typing-cue{display:none}}.lesson-end{height:1.5rem}.lesson{grid-template-rows:auto minmax(0,1fr) auto;height:calc(100dvh - 6rem);min-height:24rem;display:grid}.lesson .lesson-header{margin-bottom:1.25rem}.lesson .lesson-toolbar{margin-bottom:1.5rem}.lesson-conversation{min-height:0;position:relative}.lesson-conversation:after{content:"";z-index:1;pointer-events:none;-webkit-backdrop-filter:blur(8px);background:linear-gradient(#f5f2ec,#f5f2ec26);height:48px;position:absolute;inset:0 0 auto;-webkit-mask-image:linear-gradient(#000,#0000);mask-image:linear-gradient(#000,#0000)}.lesson .lesson-content{box-sizing:border-box;overscroll-behavior-y:contain;scrollbar-width:none;align-content:start;height:100%;min-height:0;padding:1rem .5rem 0;overflow:hidden auto;-webkit-mask-image:linear-gradient(#0000,#000 20px,#000);mask-image:linear-gradient(#0000,#000 20px,#000)}.lesson-content::-webkit-scrollbar{display:none}.lesson-controls{min-height:4.5rem;padding-top:.75rem}.lesson-controls .lesson-next{margin-top:0}.flash-card,.flash-card[aria-pressed=true]{perspective:1100px;background:0 0;border:0;padding:0;display:block}.flash-card-inner{min-height:19rem;transform-style:preserve-3d;transition:transform .48s cubic-bezier(.22,1,.36,1);display:grid}.flash-card[aria-pressed=true] .flash-card-inner{transform:rotateY(180deg)}.flash-card-face{box-sizing:border-box;backface-visibility:hidden;background:#fff;border:2px solid #8ab4e8;border-radius:1.5rem;flex-direction:column;grid-area:1/1;justify-content:space-between;align-items:center;gap:1.5rem;min-height:19rem;padding:1.5rem;display:flex}.flash-card-back{background:#faf7ff;border-color:#b8a3dd;transform:rotateY(180deg)}@media (width<=600px){.app-shell:has(.lesson){padding-bottom:2rem}.lesson{height:calc(100dvh - 3.25rem);min-height:20rem}.lesson .lesson-toolbar{margin-bottom:1rem}.lesson h1{font-size:2rem}.lesson .lesson-header{margin-bottom:.5rem}.lesson-duration{margin-top:.5rem}.flash-card-face{padding:1rem .75rem}}.course-progress{color:#6c557f;margin:.5rem 0 .75rem;font-size:.875rem}.dashboard{max-width:66rem;margin:0 auto;padding:2rem 2rem 1.5rem;position:relative}.dashboard-header,.dashboard-header nav,.section-heading,.course-overview,.dashboard-session,.dashboard-footer{justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.dashboard-header nav{gap:1.5rem}.dashboard a{color:#514064;text-decoration:none}.dashboard-header nav a{padding:.5rem 0;font-size:.875rem}.dashboard a:hover{text-decoration:underline}.dashboard a:focus-visible{outline-offset:5px;outline:3px solid #7757a1}.dashboard-heading{justify-content:space-between;align-items:center;gap:2rem;padding:4rem 0 2.5rem;display:flex}.dashboard h1{letter-spacing:-.055em;font-size:clamp(2.25rem,4.8vw,3.8rem)}.dashboard h1 span{color:#8c71ad}.dashboard-heading p:last-child{color:#696074;line-height:1.6}.dashboard-heading .memo-learning{object-fit:contain;flex-shrink:0;width:clamp(220px,24vw,300px);height:auto}.dashboard-session{background:linear-gradient(115deg,#e9def3,#f6f0fa);border:1px solid #c9b9dd;border-radius:1.5rem 1.5rem 1.5rem .5rem;padding:1.75rem 2rem;box-shadow:0 12px 40px #51406408}.dashboard h2{letter-spacing:-.035em;margin:0;font-size:1.6rem}.dashboard-session p{color:#625470;line-height:1.5}.dashboard-session .lesson-category{font-size:.7rem}a.dashboard-cta{color:#fffaf6;background:#30273f;border-radius:.8rem;flex-shrink:0;justify-content:space-between;align-items:center;gap:1.25rem;padding:.95rem 1.25rem;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}a.dashboard-cta:hover{background:#514064;text-decoration:none}.dashboard section[id]{scroll-margin-top:2rem}.section-heading{margin:3rem 0 1.25rem}.dashboard-chip,.badge-status{color:#6c557f;background:#ebe3f3;border-radius:2rem;padding:.4rem .75rem;font-size:.75rem}.dashboard-note{color:#786e82;font-size:.8rem}.course-overview{color:#6c557f;margin-bottom:1rem;font-size:.875rem}.course-overview progress{appearance:none;background:#e5ddeb;border:0;border-radius:1rem;width:35%;height:6px;overflow:hidden}.course-overview progress::-webkit-progress-bar{background:#e5ddeb}.course-overview progress::-webkit-progress-value{background:#9a7ac4}.course-overview progress::-moz-progress-bar{background:#9a7ac4}.course-lessons{background:#fffdf780;border:1px solid #ded5e5;border-radius:1rem;margin:0;padding:0;list-style:none;overflow:hidden}.course-row{grid-template-columns:2.75rem 1fr auto;align-items:center;gap:1rem;padding:1.25rem 1.5rem;display:grid}.course-row+.course-row{border-top:1px solid #e7e0ec}.lesson-number{color:#8c71ad;border:1px solid #d8cce3;border-radius:.8rem;place-items:center;width:2.5rem;height:2.5rem;font-size:.875rem;display:grid}.course-row[data-completed=true] .lesson-number{background:#e9def3;border-color:#cbb7e2}.course-row h3,.badge-card h3{letter-spacing:-.02em;margin:0;font-size:1rem}.course-row p{color:#786e82;margin:.4rem 0 0;font-size:.8rem}.course-row a{font-size:.875rem;font-weight:600}.badge-grid{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.badge-card{background:#fffdf740;border:1px dashed #d6cbdf;border-radius:1rem;padding:1.5rem}.badge-card[data-unlocked=true]{background:#f2eaf8;border-style:solid;border-color:#cbb7e2}.badge-symbol{color:#9787a7;border:1px solid #d6cbdf;border-radius:50%;place-items:center;width:3rem;height:3rem;margin-bottom:1.25rem;font-size:1.5rem;display:grid}.badge-card[data-unlocked=true] .badge-symbol{color:#7757a1;background:#e5d5f4}.badge-card p{color:#786e82;min-height:2.6rem;font-size:.8rem;line-height:1.6}.badge-status{background:#eae4ee;display:inline-block}.dashboard-footer{color:#786e82;border-top:1px solid #ded5e5;margin-top:3rem;padding-top:1.25rem;font-size:.75rem}@media (width<=650px){.dashboard{padding:1.5rem 1.25rem}.dashboard-header{flex-direction:column;align-items:flex-start;gap:1rem}.dashboard-heading{flex-direction:column;align-items:flex-start;gap:1rem;padding-top:2.5rem}.dashboard-heading .memo-learning{align-self:center;width:190px}.dashboard h1{font-size:2.25rem}.dashboard-session{flex-direction:column;align-items:stretch;gap:.5rem;padding:1.5rem}.course-row{grid-template-columns:2.5rem 1fr;gap:.75rem;padding:1rem}.course-row>a,.course-row>.dashboard-note{grid-column:2;justify-self:start}.badge-grid{grid-template-columns:1fr}.badge-card{padding:1.25rem}.badge-card p{min-height:0}.section-heading{gap:.75rem}.dashboard-footer{flex-direction:column;align-items:flex-start;gap:.5rem}}.account-bar{z-index:1;color:#625470;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;max-width:66rem;margin:1rem auto 0;padding:.75rem 2rem;font-size:.8rem;display:flex;position:relative}.account-bar p{margin:.25rem 0;line-height:1.5}.account-bar details,.account-error{flex-basis:100%}.account-bar summary{cursor:pointer;padding:.25rem 0}.account-error{border:1px solid #d6b7ca;border-radius:.75rem;padding:.75rem}@media (width<=650px){.account-bar{padding:.75rem 1.25rem}}#root:has(.lesson){flex-direction:column;height:100dvh;display:flex}#root:has(.lesson) .account-bar{box-sizing:border-box;flex-shrink:0;width:100%}.app-shell:has(.lesson){box-sizing:border-box;flex:1;width:100%;min-height:0;padding-top:1rem;padding-bottom:1rem}#root .lesson{height:100%}.access-gate{text-align:center;max-width:36rem;padding-top:clamp(3rem,12vh,7rem)}.access-gate .memo{width:120px;height:120px;margin:1.5rem auto}.access-gate h1{letter-spacing:-.04em;font-size:clamp(2rem,5vw,3rem)}.access-gate>p{color:#625470;line-height:1.6}.access-gate .lesson-choice{margin-top:1rem}
