.study-page{min-height:calc(100vh - 57px);background:linear-gradient(180deg,#fef7e9,#f0f3f5)}body.is-fullscreen{overflow:hidden}main.fullscreen{height:100vh;height:100dvh;padding:0;overflow:hidden;overscroll-behavior:none}main.fullscreen .study-page{height:100%;min-height:0;background:#f5f7f8}.deck-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.25rem}.deck-card{display:flex;flex-direction:column;gap:.5rem;padding:1.25rem;background:#fff;border:1px solid #d6e2e7;border-radius:.9rem;box-shadow:0 1px 2px #0000000a;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;text-decoration:none;color:inherit}.deck-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px #00000014;border-color:#48a9c5}.deck-card__title{font-weight:700;color:#1c4354;font-size:1.05rem}.deck-card__desc{color:#495057;font-size:.875rem;line-height:1.4;flex:1}.deck-card__meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}.pill{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;font-weight:700;padding:.25rem .75rem;border-radius:999px;line-height:1.6;box-shadow:inset 0 1px #ffffff9e}.pill--due{background:linear-gradient(135deg,#fff0dd,#fee2bd);color:#c86f00;border:1px solid rgba(200,111,0,.16)}.pill--new{background:linear-gradient(135deg,#e8f0ff,#dbeafe);color:#1f7aea;border:1px solid rgba(31,122,234,.16)}.pill--muted{background:linear-gradient(135deg,#f5f8f9,#e8eef1);color:#2e4050;border:1px solid rgba(46,64,80,.13)}.pill--done{background:#e6f4ea;color:#1e7e34;border:1px solid rgba(30,126,52,.16)}.session{max-width:600px;width:100%;margin:0 auto;padding:1.25rem 1rem calc(1.25rem + env(safe-area-inset-bottom));display:flex;flex-direction:column;height:100%;overflow:hidden;overscroll-behavior:contain}.session__header{flex-shrink:0;margin-bottom:1.2rem}.session__header-row{display:flex;align-items:center;gap:.7rem;margin-bottom:.7rem}.session__top{display:flex;align-items:center;gap:.7rem;margin-bottom:.5rem;flex-shrink:0}.session__top .session__title{flex:1}.session__heading{flex:1;min-width:0;display:flex;flex-direction:column;gap:.12rem}.session__title{font-weight:800;color:#1c4354;font-size:1.05rem;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session__progress-label{font-size:.72rem;font-weight:600;color:#6b7f89;letter-spacing:.02em}.session__back,.session__deck-icon{display:grid;place-items:center;width:2.6rem;height:2.6rem;flex-shrink:0;background:#fff;border:1px solid rgba(28,67,84,.1);border-radius:.9rem;box-shadow:0 1px 2px #1c43540d}.session__back{color:#1c4354;text-decoration:none;transition:background .15s ease}.session__back:hover{background:#eef4f6}.session__deck-icon{font-size:1.35rem;line-height:1}.session__stats{display:flex;gap:.4rem;flex-shrink:0}.stat-chip{display:inline-flex;align-items:center;gap:.35rem;font-size:.9rem;font-weight:700;color:#1c4354;background:#fff;border:1px solid rgba(28,67,84,.1);border-radius:999px;padding:.4rem .75rem;box-shadow:0 1px 2px #1c43540d;white-space:nowrap}@media(max-width:440px){.session__header-row{gap:.45rem}.session__back,.session__deck-icon{width:2.4rem;height:2.4rem;border-radius:.8rem}.session__deck-icon{font-size:1.2rem}.session__title{font-size:.93rem;font-weight:700}.session__stats{gap:.3rem}.stat-chip{font-size:.8rem;padding:.3rem .5rem;gap:.24rem}.stat-chip svg{width:13px;height:13px}}.progress{display:flex;gap:.35rem;height:4px}.progress__seg{flex:1;border-radius:999px;background:#1c43541a;transition:background .3s ease}.progress__seg.is-done{background:#11bf7c}.card-stage{position:relative;display:flex;flex:1 1 auto;min-height:0;margin:.35rem 0 1.75rem}.card-ghost{position:absolute;inset:0;border-radius:1.5rem;border:1.5px solid rgba(184,203,211,.75);background:linear-gradient(150deg,#fffffff0,#f8fcfde0);box-shadow:0 6px 14px #1c43540f;pointer-events:none;transform-origin:center bottom}.flashcard{--flashcard-surface: #ffffff;--flashcard-shadow: 0 14px 34px rgba(28, 67, 84, .08), 0 3px 10px rgba(28, 67, 84, .05);--card-radius: 1.5rem;--card-pad-y: 2rem;--card-pad-x: 2.5rem;position:relative;z-index:1;background:var(--flashcard-surface);border:1px solid rgba(28,67,84,.07);border-radius:var(--card-radius);box-shadow:var(--flashcard-shadow);flex:1 1 auto;min-height:0;min-width:0;display:flex;container-type:size;overflow:visible;cursor:pointer;isolation:isolate;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:pan-y;will-change:transform;animation:card-in .34s cubic-bezier(.22,1,.36,1);transition:background .25s ease,box-shadow .25s ease}@media(max-width:480px){.flashcard{--card-pad-y: 1.25rem;--card-pad-x: 1.1rem}}@keyframes card-in{0%{opacity:.4;transform:translateY(11px) scale(.965)}to{opacity:1;transform:translateY(0) scale(1)}}.flashcard:after{content:"";position:absolute;inset:0;z-index:2;border-radius:inherit;background:var(--swipe-color, transparent);mix-blend-mode:multiply;opacity:calc(var(--swipe-progress, 0) * .9);pointer-events:none}.flashcard[data-swipe=again]{--swipe-color: #ffd9df}.flashcard[data-swipe=hard]{--swipe-color: #ffeec7}.flashcard[data-swipe=good]{--swipe-color: #cfe9ef}.flashcard[data-swipe=easy]{--swipe-color: #d2f3e3}.flashcard:not(.is-revealed)[data-swipe]{--swipe-color: #dcebf1}.flashcard.is-dragging{cursor:grabbing;--flashcard-shadow: 0 28px 56px rgba(28, 67, 84, .18), 0 8px 18px rgba(28, 67, 84, .1)}.swipe-stamp{position:absolute;z-index:4;top:13%;left:50%;transform:translate(-50%) rotate(-6deg) scale(.85);padding:.3rem 1.05rem;border:3px solid currentColor;border-radius:.8rem;background:#ffffffe0;font-size:1.45rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;opacity:0;pointer-events:none}.swipe-stamp--again{color:#dc2540}.swipe-stamp--hard{color:#d99a00}.swipe-stamp--good{color:#238c91}.swipe-stamp--easy{color:#02a96a}.swipe-stamp--reveal{color:#48a9c5;font-size:1.1rem}.flashcard[data-swipe=again] .swipe-stamp--again,.flashcard[data-swipe=hard] .swipe-stamp--hard,.flashcard[data-swipe=good] .swipe-stamp--good,.flashcard[data-swipe=easy] .swipe-stamp--easy,.flashcard[data-swipe] .swipe-stamp--reveal{opacity:calc(var(--swipe-progress, 0) * .95);transform:translate(-50%) rotate(-6deg) scale(calc(.85 + var(--swipe-progress, 0) * .17))}.flashcard__scroll{flex:1;width:100%;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;display:flex;border-radius:calc(var(--card-radius) - 1px);padding:var(--card-pad-y) var(--card-pad-x);scrollbar-width:thin;scrollbar-color:rgba(28,67,84,.25) transparent}.flashcard__inner{margin:auto;width:100%;display:flex;flex-direction:column;gap:1.1rem}.flashcard.is-revealed .flashcard__inner{margin-top:0}.flashcard__banner{display:block;flex:none;width:calc(100% + var(--card-pad-x) * 2);max-width:none;margin:calc(-1 * var(--card-pad-y)) calc(-1 * var(--card-pad-x)) 0;height:25cqh;-o-object-fit:cover;object-fit:cover;border-radius:calc(var(--card-radius) - 1px) calc(var(--card-radius) - 1px) 0 0;background:#eef4f6}@media(max-width:640px){.kbd-hint{display:none}}.flashcard__front{font-size:1.5rem;font-weight:700;color:#1c4354;text-align:center;line-height:1.3}.flashcard--concept.is-revealed .flashcard__front{text-align:left;font-size:1.45rem;line-height:1.25}.flashcard__label{text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;font-weight:700;color:#48a9c5;text-align:center}.flashcard.is-revealed:not(.flashcard--concept) .flashcard__front{font-size:1.15rem;padding-bottom:.75rem;background:linear-gradient(90deg,transparent,rgba(72,169,197,.45),transparent) bottom/100% 1px no-repeat}.flashcard.is-revealed:not(.flashcard--concept):has(.flashcard__difficulty) .flashcard__front{margin-top:1rem}.flashcard__back{font-size:1.05rem;color:#343a40;line-height:1.55;text-align:center;max-width:52ch;margin-inline:auto;animation:reveal .28s ease}@keyframes reveal{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.flashcard__back--concept{display:flex;flex-direction:column;gap:.9rem;text-align:left;max-width:none}.flashcard__answer{margin:0;font-weight:600;color:#1c4354;font-size:1.05rem;line-height:1.5}.flashcard__analogy{position:relative;font-size:.95rem;line-height:1.55;color:#35544b;background:#edf7ef;border:1px solid rgba(23,160,95,.13);border-radius:1rem;padding:1rem 1.1rem 1rem 4.1rem}.flashcard__analogy:before{content:"";position:absolute;left:.95rem;top:50%;transform:translateY(-50%);width:2.3rem;height:2.3rem;border-radius:50%;background-color:#17b26a24;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2317a05f'%3E%3Cpath d='M12 2a7 7 0 0 0-4.1 12.67c.68.5 1.1 1.28 1.1 2.11v.72h6v-.72c0-.83.42-1.61 1.1-2.11A7 7 0 0 0 12 2zm-3 17.5h6v.5a1.5 1.5 0 0 1-1.5 1.5h-3A1.5 1.5 0 0 1 9 20v-.5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:1.25rem}.flashcard__analogy strong{color:#17a05f}.flashcard__points{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;border-top:1px solid rgba(28,67,84,.08)}.flashcard__points li{display:flex;align-items:flex-start;gap:.85rem;padding:.8rem 0;color:#2e4050}.flashcard__points li>span{min-width:0;line-height:1.5}.flashcard__points li+li{border-top:1px solid rgba(28,67,84,.08)}.flashcard__points li:before{content:"";flex-shrink:0;width:1.4rem;height:1.4rem;margin-top:.05rem;border-radius:50%;background-color:#17b26a;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12.5l4.8 4.8L19.5 7'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:.75rem}.flashcard code{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,monospace;font-size:.85em;background:#1c435414;border-radius:.35rem;padding:.08em .35em}@media(max-width:480px){.flashcard__inner{gap:.85rem}.flashcard--concept.is-revealed .flashcard__front{font-size:1.3rem}.flashcard__back{font-size:.95rem;line-height:1.5}.flashcard__back--concept{gap:.7rem}.flashcard__analogy{font-size:.85rem}}.flashcard__difficulty{position:absolute;z-index:3;top:.95rem;right:1.1rem;display:flex;align-items:center;gap:.3rem;padding:.34rem .5rem;border-radius:999px;background:#ffffffbd;border:1px solid rgba(28,67,84,.08);pointer-events:none}.diff-pip{width:.42rem;height:.42rem;border-radius:50%;background:#1c435429}.flashcard__difficulty--1 .diff-pip.is-filled{background:#11bf7c}.flashcard__difficulty--2 .diff-pip.is-filled{background:#48a9c5}.flashcard__difficulty--3 .diff-pip.is-filled{background:#e5a800}.flashcard__difficulty--4 .diff-pip.is-filled{background:#c9741a}.flashcard__difficulty--5 .diff-pip.is-filled{background:#ec3d56}.flashcard__hint{align-self:center;background:#f0f3f5;border:1px dashed #b8c6cb;color:#495057;border-radius:.6rem;padding:.4rem .8rem;font-size:.85rem;cursor:pointer}.flashcard__readmore{align-self:center;margin-top:.5rem;font-size:.85rem;color:#30616a;font-weight:600}.session__actions{margin-top:1.85rem;flex-shrink:0}.btn-show{width:100%;padding:.95rem;font-size:1.05rem;font-weight:700;color:#fff;background:#30616a;border:none;border-radius:.75rem;cursor:pointer;transition:background .2s ease}.btn-show:hover{background:#1c4354}.rating-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}@media(max-width:420px){.rating-grid{gap:.4rem}}.rate-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;min-height:4.65rem;padding:1rem .45rem;border:none;border-radius:1.1rem;color:#fff;font-weight:700;cursor:pointer;overflow:hidden;position:relative;box-shadow:0 6px 16px #1c43541f;transition:transform .1s ease,filter .2s ease,box-shadow .2s ease}.rate-btn:hover{filter:brightness(1.06);box-shadow:0 8px 20px #1c435429}.rate-btn:active{transform:scale(.97)}.rate-btn__interval{font-size:.75rem;opacity:.9;font-weight:600}.rate-btn--again{background:#ea4b62}.rate-btn--hard{background:#f0ad33}.rate-btn--good{background:#429ec0}.rate-btn--easy{background:#2fbf82}@media(max-width:480px){.session{padding-bottom:calc(.6rem + env(safe-area-inset-bottom))}.session__actions{margin-top:1.25rem}.rate-btn{min-height:3.4rem;padding:.5rem .35rem;gap:.15rem;font-size:.9rem;border-radius:.8rem}.rate-btn__interval{font-size:.68rem}}.summary{max-width:480px;width:100%;margin:auto;text-align:center;background:#fff;border:1px solid #d6e2e7;border-radius:1rem;padding:2rem 1.5rem;box-shadow:0 6px 20px #0000000f}.summary__emoji{font-size:2.5rem}.summary__stats{display:flex;justify-content:center;gap:1.5rem;margin:1.25rem 0}.summary__stat{display:flex;flex-direction:column}.summary__stat b{font-size:1.5rem;color:#1c4354}.summary__stat span{font-size:.8rem;color:#495057}.btn-primary{display:inline-block;padding:.7rem 1.5rem;background:#30616a;color:#fff;border-radius:.75rem;font-weight:600;text-decoration:none;border:none;cursor:pointer}.btn-primary:hover{background:#1c4354}.btn-ghost{display:inline-block;padding:.7rem 1.5rem;background:transparent;color:#30616a;border:1px solid #30616a;border-radius:.75rem;font-weight:600;text-decoration:none;cursor:pointer}.study-hint{text-align:center;color:#6b7680;font-size:.8rem;margin-top:.6rem;flex-shrink:0}@media(max-width:480px){.study-hint{display:none}}.install-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;background:#1c4354;color:#fef7e9;border:none;border-radius:.6rem;font-weight:600;cursor:pointer;font-size:.9rem}.reminders{position:relative}.reminders__toggle{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;background:#fff;color:#1c4354;border:1px solid rgba(28,67,84,.18);border-radius:.6rem;font-weight:600;cursor:pointer;font-size:.9rem}.reminders__toggle.is-active{border-color:#48a9c58c;background:#48a9c51a}.reminders__panel{position:absolute;right:0;top:calc(100% + .5rem);z-index:20;width:min(21rem,100vw - 3rem);padding:1rem;background:#fff;border:1px solid rgba(28,67,84,.14);border-radius:.85rem;box-shadow:0 12px 32px #1c435429;display:flex;flex-direction:column;gap:.8rem}@media(max-width:639px){.reminders__panel{left:0;right:auto}}.reminders__choices{display:flex;gap:.4rem}.reminders__choice{flex:1;padding:.45rem .5rem;border:1px solid rgba(28,67,84,.18);border-radius:.55rem;background:#fff;color:#1c4354;font-size:.82rem;font-weight:600;cursor:pointer}.reminders__choice.is-selected{background:#1c4354;border-color:#1c4354;color:#fef7e9}.reminders__time{display:flex;align-items:center;justify-content:space-between;gap:.6rem;font-size:.85rem;font-weight:600;color:#1c4354}.reminders__time input{padding:.3rem .5rem;border:1px solid rgba(28,67,84,.18);border-radius:.5rem;font:inherit;color:inherit;background:#fff}.reminders__note{margin:0;font-size:.78rem;line-height:1.45;color:#495057}.reminders__note--warn{color:#b3261e}@media(prefers-reduced-motion:reduce){.flashcard,.flashcard__back{animation:none}.progress__seg,.deck-card{transition:none}}@media(prefers-color-scheme:dark){.study-page{background:linear-gradient(180deg,#16323d,#0f2831)}main.fullscreen .study-page{background:#0f2831}.deck-card,.summary{background:#14343f;border-color:#2a4a56}.card-ghost{background:linear-gradient(150deg,#14343fe6,#102a34d9);border-color:#2a4a56e6}.swipe-stamp{background:#102a34e0}.flashcard:after{mix-blend-mode:screen;opacity:calc(var(--swipe-progress, 0) * .5)}.flashcard[data-swipe=again]{--swipe-color: #93283c}.flashcard[data-swipe=hard]{--swipe-color: #8a6a10}.flashcard[data-swipe=good]{--swipe-color: #1f6d78}.flashcard[data-swipe=easy]{--swipe-color: #14724d}.flashcard:not(.is-revealed)[data-swipe]{--swipe-color: #2a5666}.flashcard{--flashcard-surface: #14343f;border-color:#7fc9de29}.flashcard__scroll{scrollbar-color:rgba(127,201,222,.3) transparent}.deck-card__title,.flashcard__front,.summary__stat b{color:#fef7e9}.deck-card__desc,.flashcard__back{color:#cdd8dc}.flashcard__label{color:#7fc9de}.session__title{color:#fef7e9}.session__progress-label{color:#8fa9b3}.session__back,.session__deck-icon{background:#122e39cc;border-color:#7fc9de33}.session__back{color:#a9d4e2}.session__back:hover{background:#14343f;color:#fef7e9}.stat-chip{color:#d5e4ea;background:#122e39cc;border-color:#7fc9de29}.progress__seg{background:#7fc9de24}.progress__seg.is-done{background:#11bf7c}.flashcard__banner{background:#102a34}.flashcard__answer{color:#fef7e9}.flashcard__analogy{color:#bfe3d2;background:#17b26a1f;border-color:#17b26a38}.flashcard__analogy:before{background-color:#17b26a33}.flashcard__analogy strong{color:#6ee7a8}.flashcard__points li{color:#cdd8dc}.flashcard__points,.flashcard__points li+li{border-color:#7fc9de24}.flashcard code{background:#7fc9de26}.flashcard__difficulty{background:#122e39d1;border-color:#7fc9de29}.diff-pip{background:#fef7e929}.reminders__toggle,.reminders__choice,.reminders__time input{background:#14343f;border-color:#2a4a56;color:#fef7e9}.reminders__toggle.is-active{border-color:#7fc9de80;background:#48a9c529}.reminders__panel{background:#14343f;border-color:#2a4a56;box-shadow:0 12px 32px #0006}.reminders__choice.is-selected{background:#48a9c5;border-color:#48a9c5;color:#0f2831}.reminders__time{color:#fef7e9}.reminders__note{color:#a9b8bf}.reminders__note--warn{color:#ff8a80}}
