:root{--ink:#22201d;--muted:#656260;--muted-soft:#8f8c89;--paper:#fff;--paper-deep:#fbfaf9;--paper-muted:#f3f1f1;--line:#0000000f;--line-strong:#0000001f;--success:#30a46c;--success-strong:#2b9a66;--success-deep:#218358;--success-soft:#0596692b;--success-soft-strong:#0596693b;--danger:#e33a5c;--danger-strong:#ce274a;--danger-deep:#ca244d;--danger-soft:#e11d482b;--danger-soft-strong:#e11d483b;--info-soft:#006eff3b;--photo-text:#fffcf7f5;--photo-subtext:#fffcf7b8;--shadow:0 14px 44px #0000001f, 0 3px 9px #0000001f;--font:"Gen Interface JP", -apple-system, "system-ui", "Hiragino Sans", "Yu Gothic", sans-serif;color:var(--ink);background:var(--paper);font:15px/1.45 var(--font);letter-spacing:0;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{overscroll-behavior:none;width:100%;height:100%;min-height:100%;overflow:hidden}body{overscroll-behavior:none;background:var(--paper);width:100%;min-width:0;height:100%;min-height:100%;margin:0;overflow:hidden}button{appearance:none;font:inherit;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}button:focus{outline:none}#app{overscroll-behavior:none;width:100%;height:100%;overflow:hidden}.app-shell{-webkit-user-select:none;user-select:none;overscroll-behavior:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;grid-template-rows:auto minmax(0,1fr) auto;gap:16px;width:min(100vw,430px);max-width:100vw;height:100dvh;min-height:0;margin:0 auto;padding:18px 18px 24px;display:grid;overflow:hidden}@supports (overflow:clip){html,body,#app,.app-shell{overflow:clip}}.topbar{justify-content:space-between;align-items:center;min-height:42px;display:flex}.topbar-actions{flex:none;justify-content:flex-end;align-items:center;gap:4px;display:flex}.icon-button{color:#22201d9e;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:36px;height:36px;transition:transform .15s,color .15s,background .15s;display:inline-grid}.icon-button:hover{color:#22201dc7;background:#22201d0f}.icon-button:active{background:#22201d17;transform:scale(.96)}.icon-button:focus-visible,.active-card:focus-visible,.card-info-button:focus-visible,.action:focus-visible,.utility-button:focus-visible{outline:2px solid var(--info-soft);outline-offset:3px}.icon-button.quiet{opacity:.62}.settings-trigger{color:#22201d99}.mobile-qr-control{display:none;position:relative}.mobile-qr-trigger{color:#22201d94;view-transition-name:mobile-qr-hint}.mobile-qr-popover{display:none}.progress-wrap{justify-items:start;gap:7px;width:min(292px,100vw - 104px);min-width:0;display:grid}.progress-text{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:5px;width:100%;max-width:100%;font-size:12px;font-weight:500;line-height:1.2;display:flex;overflow:hidden}.progress-stat{white-space:nowrap;min-width:0}.progress-stat.is-remembered{color:var(--success-deep)}.progress-stat.is-again{color:var(--danger-deep)}.progress-stat.is-remaining{color:#22201d80}.progress-separator{color:#22201d47}.progress-track{background:var(--line);border-radius:4px;width:100%;height:4px;display:flex;overflow:hidden}.progress-segment{height:100%;transition:width .32s;display:block}.progress-segment.remembered{background:var(--success)}.progress-segment.again{background:var(--danger)}.deck{isolation:isolate;align-self:center;place-items:center;width:100%;height:100%;min-height:0;display:grid;position:relative}.deck-loading-stack{pointer-events:none;position:absolute;inset:0}.loading-card-front{z-index:4}.card-surface.loading-card-surface{background:radial-gradient(circle at 50% 18%, #ffffffb8, #fff0 34%), linear-gradient(180deg, #f4f2f1eb, #dbd8d5d1), var(--paper-muted)}.card-surface.is-photo-loading{background:radial-gradient(circle at 50% 20%, #ffffffb3, #fff0 34%), linear-gradient(180deg, #f4f2f1e6, #dbd8d5c7), var(--paper-muted)}.card-ghost .loading-card-surface:before{opacity:0}.loading-answer-block{pointer-events:none}.loading-spoiler-mask{inset:17px 19px 10px}.completion-card{width:min(100%,354px);height:min(480px,100%);max-height:100%;color:var(--ink);background:linear-gradient(180deg, #fffffffa, #fbfaf9f0), var(--paper);text-align:center;border-radius:8px;align-content:center;justify-items:center;gap:20px;padding:30px 24px 28px;animation:.32s cubic-bezier(.16,1,.3,1) both completion-in;display:grid;position:relative;overflow:hidden;box-shadow:0 0 0 1px #22201d14,inset 0 0 0 1px #ffffff9e,0 18px 52px #22201d1c,0 4px 12px #22201d14}.completion-card:before{content:"";opacity:.86;pointer-events:none;background:linear-gradient(135deg,#30a46c1c,#0000 34%),linear-gradient(315deg,#e33a5c14,#0000 38%);position:absolute;inset:0}.completion-mark{z-index:1;filter:drop-shadow(0 10px 18px #22201d1f);place-items:center;display:grid;position:relative}.completion-emoji{font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;font-size:50px;line-height:1;display:block;transform:translateY(-1px)}.completion-copy{z-index:1;gap:5px;display:grid;position:relative}.completion-copy h1{margin:0;font-size:27px;font-weight:500;line-height:1.12}.completion-copy p{color:#22201d8a;margin:0;font-size:15px;font-weight:400;line-height:1.32}.completion-avatars{z-index:1;justify-content:center;align-items:center;min-height:60px;padding-left:13px;display:flex;position:relative}.completion-avatar{background:var(--paper-muted);border:2px solid #ffffffeb;border-radius:50%;width:58px;height:58px;margin-left:-13px;overflow:hidden;box-shadow:0 8px 20px #22201d1f}.completion-avatar img{object-fit:cover;object-position:center 36%;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.completion-button{z-index:1;min-height:48px;color:var(--success-deep);cursor:pointer;background:#05966921;border:0;border-radius:8px;justify-content:center;align-items:center;gap:9px;padding:0 18px;font-size:14px;font-weight:500;line-height:1.2;transition:transform .16s,background .16s;display:inline-flex;position:relative;box-shadow:inset 0 1px #ffffffad,0 8px 22px #0596691a}.completion-button:hover{background:#0596692b;transform:translateY(-1px)}.completion-button:focus-visible{outline:2px solid var(--info-soft);outline-offset:3px}.card{--card-width:min(100%, 354px);--card-height:min(548px, calc(100dvh - 212px));--card-radius:8px;--card-x:0px;--card-y:0px;--card-rotate:0deg;--card-scale:1;--card-opacity:1;width:var(--card-width);height:var(--card-height);margin-top:calc(var(--card-height) / -2);margin-left:calc(var(--card-width) / -2);transform-origin:50% 76%;backface-visibility:hidden;-webkit-user-select:none;user-select:none;will-change:transform, opacity;-webkit-tap-highlight-color:transparent;background:0 0;border:0;position:absolute;top:50%;left:50%;overflow:visible}.active-card{z-index:4;cursor:grab;touch-action:none;isolation:isolate;opacity:var(--card-opacity);transform:translate3d(var(--card-x), var(--card-y), 0) rotate(var(--card-rotate)) scale(var(--card-scale));outline:none;transition:transform .32s cubic-bezier(.24,.64,.22,1),opacity .18s cubic-bezier(.22,.61,.36,1) 80ms;display:block}.active-card:active{cursor:grabbing}.active-card.is-dragging,.active-card.is-promoting-card,.active-card.is-returning{transition:none}.active-card.card-exiting{cursor:grab;transition:none}.active-card.card-exiting .spoiler-mask{display:none}.active-card.card-exiting .spoiler-dot{animation:none}.card-surface{border-radius:var(--card-radius);background:var(--paper-muted);backface-visibility:hidden;contain:paint style;width:100%;height:100%;position:relative;overflow:hidden;transform:translateZ(0);box-shadow:0 16px 44px #22201d1c,0 3px 9px #22201d1a}.active-card .active-card-surface{transition:transform .18s cubic-bezier(.2,.82,.18,1),box-shadow .22s cubic-bezier(.2,.82,.18,1)}.active-card.has-drag-intent .active-card-surface{transform:translateY(-5px)scale(1.01);box-shadow:0 23px 58px #22201d26,0 6px 15px #22201d1f}.active-card.card-exiting .active-card-surface,.active-card.is-promoting-card .active-card-surface{transform:translateZ(0)}.active-card-surface:before{content:"";z-index:1;border-radius:inherit;pointer-events:none;background:linear-gradient(#1915110a 0%,#19151105 36%,#19151138 58%,#191511c7 100%);position:absolute;inset:0}.card-ghost{z-index:1;--promote-cover-opacity:1;--promote-gradient-opacity:0;--ghost-edge-opacity:1;--ghost-shadow-y:11px;--ghost-shadow-blur:28px;--ghost-shadow-alpha:.075;--ghost-contact-y:1px;--ghost-contact-blur:4px;--ghost-contact-alpha:.06;pointer-events:none;opacity:1;transition:transform .23s cubic-bezier(.2,.82,.18,1)}.card-ghost:after{content:"";z-index:3;border-radius:0 0 var(--card-radius) var(--card-radius);height:42px;opacity:var(--ghost-edge-opacity);pointer-events:none;background:linear-gradient(#f4f2f000,#f4f2f075 28%,#f4f2f0e6 66%,#f4f2f0f5);position:absolute;bottom:-1px;left:-1px;right:-1px;transform:translateZ(0)}.card-ghost .card-surface{box-shadow:0 var(--ghost-shadow-y) var(--ghost-shadow-blur) rgba(34, 32, 29, var(--ghost-shadow-alpha)), 0 var(--ghost-contact-y) var(--ghost-contact-blur) rgba(34, 32, 29, var(--ghost-contact-alpha));isolation:isolate;transform:translate(0,0)}.card-ghost .card-surface:before{content:"";z-index:1;border-radius:inherit;opacity:var(--promote-gradient-opacity);pointer-events:none;will-change:opacity;background:linear-gradient(#1915110a 0%,#19151105 36%,#19151138 58%,#191511c7 100%);transition:none;position:absolute;inset:-1px}.card-ghost .card-surface:after{content:"";z-index:2;opacity:var(--promote-cover-opacity);pointer-events:none;will-change:opacity;background:linear-gradient(#ffffff47,#ffffff8a 70%,#f7f5f3ad),#f3f1f14d;transition:none;position:absolute;inset:-1px}.ghost-photo-frame{z-index:0;border-radius:inherit;background:var(--paper-muted);clip-path:inset(0 round var(--card-radius));position:absolute;inset:0;overflow:hidden;transform:translateZ(0)}.card-surface img{object-fit:cover;object-position:center 38%;opacity:1;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.ghost-photo-frame img{transform:translateZ(0)}.ghost-1{z-index:3;border-color:var(--success-soft);transform:translateY(18px)rotate(2.4deg)scale(.962)}.ghost-2{z-index:2;border-color:var(--danger-soft);transform:translateY(36px)rotate(-2.6deg)scale(.925)}.ghost-3{z-index:1;opacity:0;transform:translateY(46px)rotate(1.8deg)scale(.9)}.card-ghost.card-advancing{z-index:2;transform:translateY(18px)rotate(2.4deg)scale(.962)}.card-ghost.card-incoming{z-index:1;opacity:1;transform:translateY(36px)rotate(-2.6deg)scale(.925)}.card-ghost.card-previewing{transform:translate3d(0, var(--promote-y,18px), 0) rotate(var(--promote-rotate,2.4deg)) scale(var(--promote-scale,.962));transition:none}.card-ghost.card-promoting{z-index:3;opacity:1;pointer-events:auto;cursor:pointer;touch-action:manipulation;transform:translate3d(0, var(--promote-y,0), 0) rotate(var(--promote-rotate,0deg)) scale(var(--promote-scale,1));transition:none}.card-ghost.card-promoting img{opacity:1}.card-ghost.card-promoting .card-surface:before{opacity:var(--promote-gradient-opacity)}.card-ghost.card-promoting .card-surface:after{opacity:var(--promote-cover-opacity)}.portrait-frame{z-index:0;border-radius:inherit;background:radial-gradient(ellipse at 50% 16%, #ffffffe6, #fff0 32%), linear-gradient(180deg, #e8e4e1fa, #b1aba6eb), var(--paper-muted);-webkit-user-select:none;user-select:none;position:absolute;inset:0;overflow:hidden}.portrait-frame.is-photo-loading{background:radial-gradient(ellipse at 50% 16%, #ffffffe6, #fff0 32%), linear-gradient(180deg, #e8e4e1fa, #b1aba6eb), var(--paper-muted)}.portrait-frame.is-photo-loading:before{content:"";opacity:.82;pointer-events:none;background:radial-gradient(at 42% 18%,#ffffffdb,#fff0 38%),radial-gradient(at 68% 58%,#fffcf770,#fffcf700 42%),linear-gradient(#fff0 38%,#22201d1a 100%);position:absolute;inset:-18%}.portrait-frame.is-photo-loading:after{content:"";opacity:0;pointer-events:none;will-change:opacity, transform;background:linear-gradient(104deg,#fff0 20%,#22201d1a 32%,#ffffff2e 39%,#ffffffc7 49%,#ffffff42 58%,#22201d14 66%,#fff0 78%);animation:2.4s cubic-bezier(.32,0,.16,1) .14s infinite photo-loading-sheen;position:absolute;inset:-20% -72%;transform:translate(-48%)rotate(.001deg)}.portrait-frame img{object-fit:cover;object-position:center 38%;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.portrait-image{opacity:0;visibility:hidden}.portrait-image.is-ready{opacity:1;visibility:visible}@keyframes photo-loading-sheen{0%{opacity:0;transform:translate(-48%)rotate(.001deg)}8%{opacity:0}15%{opacity:.84}42%{opacity:.96;transform:translate(48%)rotate(.001deg)}52%,to{opacity:0;transform:translate(58%)rotate(.001deg)}}@media (prefers-reduced-motion:reduce){.sheet-dialog,.sheet-dialog.is-sheet-settling,.sheet-dialog.is-sheet-dismissing{transition:none;animation:none}.portrait-frame.is-photo-loading:before,.portrait-frame.is-photo-loading:after{opacity:.64;animation:none}.portrait-frame.is-photo-loading:after{display:none}}.card-info-button{z-index:4;color:#fffcf7f0;filter:drop-shadow(0 1px 2px #00000061)drop-shadow(0 5px 14px #00000047);opacity:.88;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:36px;height:36px;transition:transform .15s,opacity .15s;display:inline-grid;position:absolute;top:10px;right:10px}.card-info-button:hover{opacity:1;transform:translateY(-1px)}.answer-block{z-index:3;width:auto;min-height:148px;color:var(--ink);text-align:left;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;margin:0;padding:18px 20px 19px;display:block;position:absolute;bottom:14px;left:14px;right:14px}.answer-lines{z-index:1;color:#0000;text-shadow:none;gap:3px;transition:color .18s,text-shadow .18s,transform .18s;display:grid;position:relative}.answer-lines span{overflow-wrap:anywhere;min-width:0;font-size:21px;font-weight:500;line-height:1.16}.answer-lines .answer-japanese{flex-wrap:wrap;align-items:flex-end;gap:2px .36em;font-size:22px;line-height:1.13;display:flex}.answer-japanese ruby{ruby-align:center;ruby-position:over;white-space:nowrap;line-height:1.04}.answer-japanese rt{color:inherit;opacity:.82;text-shadow:inherit;font-size:9.5px;font-weight:400;line-height:1.08}.answer-lines .answer-english{font-size:19px;font-weight:400;line-height:1.22}.answer-lines .answer-group{color:#0000;margin-top:18px;font-size:15px;font-weight:400;line-height:1.28}.answer-block.revealed .answer-lines{color:var(--photo-text);text-shadow:0 1px 2px #0000004d,0 8px 24px #00000057}.answer-block.revealed .answer-group{color:var(--photo-subtext)}.spoiler-mask{z-index:2;pointer-events:none;opacity:1;position:absolute;inset:17px 19px 10px}.spoiler-mask-staging .spoiler-dot{animation-duration:calc(var(--duration) * 1.08), calc(var(--pulse-duration) * 1.05)}.spoiler-dot{left:var(--x);top:var(--y);width:var(--s);height:var(--s);background:var(--photo-text);opacity:var(--base-opacity);animation:spoiler-drift var(--duration) steps(4, end) infinite, spoiler-flicker var(--pulse-duration) ease-in-out infinite;animation-delay:var(--delay);border-radius:50%;position:absolute;transform:translate(0)}@keyframes completion-in{0%{opacity:0;transform:translateY(14px)scale(.985)}to{opacity:1;transform:translate(0,0)scale(1)}}@keyframes spoiler-drift{0%,to{transform:translate(0)scale(1)}18%{transform:translate(var(--dx-a), var(--dy-a)) scale(.72)}42%{transform:translate(var(--dx), var(--dy)) scale(1.16)}67%{transform:translate(var(--dx-b), var(--dy-b)) scale(.88)}84%{transform:translate(var(--dx-c), var(--dy-c)) scale(1.05)}}@keyframes spoiler-flicker{0%,to{opacity:var(--base-opacity)}28%{opacity:.22}54%{opacity:.95}76%{opacity:.38}}.actions{padding-bottom:max(0px, env(safe-area-inset-bottom));grid-template-columns:1fr 1fr;gap:16px;display:grid}.action{--action-opacity:1;--action-scale:1;--action-lift:0px;--action-tilt:0deg;--action-saturate:1;--action-brightness:1;--action-disc-opacity:1;--action-label-opacity:1;--action-icon-opacity:1;--chevron-shift:0px;--chevron-opacity:.82;--action-accent:var(--muted);--action-accent-strong:var(--muted);--action-fill-top:#8f8c89db;--action-fill-bottom:#656260eb;--action-accent-soft:#22201d14;--action-accent-glow:#22201d14;--action-depth:#22201d1f;--action-chevron-color:#6562607a;min-height:110px;color:var(--muted);cursor:pointer;filter:saturate(var(--action-saturate));opacity:var(--action-opacity);touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:0;transition:transform .16s cubic-bezier(.22,.61,.36,1),filter .16s cubic-bezier(.22,.61,.36,1),opacity .16s cubic-bezier(.22,.61,.36,1);display:flex;position:relative}.action.action-live{transition:none}.action:hover:not(.intent):not(.action-live){filter:saturate(1.03);transform:translateY(-2px)}.action.review{--action-accent:var(--danger);--action-accent-strong:var(--danger-deep);--action-fill-top:#ff625ff0;--action-fill-bottom:#ca244de6;--action-accent-soft:#e11d4829;--action-accent-glow:#e11d4842;--action-depth:#7e122d24;--action-chevron-color:#e33a5c94}.action.remembered{--action-accent:var(--success);--action-accent-strong:var(--success-deep);--action-fill-top:#3fc79bf0;--action-fill-bottom:#218358e6;--action-accent-soft:#05966929;--action-accent-glow:#05966942;--action-depth:#125c3d24;--action-chevron-color:#30a46c94}.action-disc{z-index:1;color:#fffffff5;background:radial-gradient(circle at 34% 24%, #ffffff57, #ffffff14 34%, #fff0 58%), linear-gradient(145deg, var(--action-fill-top), var(--action-fill-bottom));width:78px;height:78px;box-shadow:inset 0 1px 1px #ffffff5c, inset 0 -14px 24px #1412101a, inset -8px -2px 18px var(--action-depth), 0 14px 34px #22201d1c, 0 7px 20px var(--action-accent-glow);opacity:var(--action-disc-opacity);filter:saturate(var(--action-saturate)) brightness(var(--action-brightness));transform:translate3d(0, var(--action-lift), 0) scale(var(--action-scale)) rotate(var(--action-tilt));will-change:transform;border:0;border-radius:50%;place-items:center;transition:transform .18s cubic-bezier(.22,.61,.36,1),box-shadow .18s cubic-bezier(.22,.61,.36,1),color .18s cubic-bezier(.22,.61,.36,1),background .18s cubic-bezier(.22,.61,.36,1);display:grid;position:relative;overflow:hidden}.action-disc:before{content:"";opacity:.4;pointer-events:none;background:linear-gradient(#ffffff47,#fff0);border-radius:50%;height:18px;position:absolute;inset:9px 18px auto}.action-disc:after{content:"";border-radius:inherit;opacity:.42;pointer-events:none;background:radial-gradient(circle at 28% 24%,#ffffff29,#fff0 25%),linear-gradient(145deg,#ffffff12,#fff0 44%,#ffffff14);position:absolute;inset:2px}.action-disc svg{z-index:1;opacity:var(--action-icon-opacity);position:relative}.action:hover .action-disc{box-shadow:inset 0 1px 1px #fff6, inset 0 -14px 26px #1412101c, inset -8px -2px 18px var(--action-depth), 0 17px 42px #22201d21, 0 9px 24px var(--action-accent-glow)}.action.intent .action-disc{box-shadow:inset 0 1px 1px #ffffff6b, inset 0 -14px 26px #1412101c, inset -8px -2px 18px var(--action-depth), 0 18px 46px #22201d21, 0 10px 27px var(--action-accent-glow)}.action:active:not(.action-live) .action-disc{transform:scale(.98)translateY(1px)}.action-label{min-width:0;opacity:var(--action-label-opacity);text-align:center;white-space:nowrap;font-size:15px;font-weight:500;line-height:1.12}.action.review .action-label{color:var(--danger-deep)}.action.remembered .action-label{color:var(--success-deep)}.chevrons{z-index:0;opacity:var(--chevron-opacity);pointer-events:none;gap:4px;transition:opacity .16s cubic-bezier(.22,.61,.36,1),transform .16s cubic-bezier(.22,.61,.36,1);display:flex;position:absolute;top:36px}.action.action-live .action-disc,.action.action-live .chevrons{transition:none}.chevrons.left{transform:translateX(var(--chevron-shift));right:calc(50% + 47px)}.chevrons.right{transform:translateX(var(--chevron-shift));left:calc(50% + 47px)}.chevrons span{border-top:3px solid;border-right:3px solid;width:12px;height:12px}.chevrons.left span{transform:rotate(-135deg)}.chevrons.right span{transform:rotate(45deg)}.action.review .chevrons,.action.remembered .chevrons{color:var(--action-chevron-color)}.chevrons.left span:first-child,.chevrons.right span:nth-child(3){opacity:.18}.chevrons.left span:nth-child(2),.chevrons.right span:nth-child(2){opacity:.36}.chevrons.left span:nth-child(3),.chevrons.right span:first-child{opacity:.66}.sheet-layer{z-index:22;background:#22201d14;place-items:end center;padding:0;display:grid;position:fixed;inset:0}.sheet-layer--settings{z-index:23}.sheet-dialog{width:100%;height:var(--sheet-height,min(56svh, 620px));height:var(--sheet-height,min(56dvh, 620px));overscroll-behavior:contain;max-height:calc(100dvh - 12px);color:var(--ink);-webkit-backdrop-filter:blur(22px)saturate(1.32)brightness(1.04);transform:translate3d(0, var(--sheet-y,0px), 0);-webkit-user-select:none;user-select:none;will-change:transform;contain:paint style;background:radial-gradient(circle at 50% 0,#ffffffeb,#fff0 34%),linear-gradient(#ffffffc7,#ffffff94 42%,#ffffffb8),#ffffff8f;border:0;border-radius:24px 24px 0 0;flex-direction:column;padding:0;animation:.52s cubic-bezier(.16,1,.3,1) both sheet-rise;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffffbd,inset 0 -1px #ffffff47,0 -22px 54px #22201d24,0 -4px 16px #22201d14}.sheet-dialog.has-entered,.sheet-dialog.is-sheet-dragging,.sheet-dialog.is-sheet-settling,.sheet-dialog.is-sheet-dismissing{animation:none}.sheet-dialog.is-sheet-dragging{transition:none}.sheet-dialog.is-sheet-settling{transition:transform .39s cubic-bezier(.18,.88,.24,1)}.sheet-dialog.is-sheet-dismissing{transition:transform .3s cubic-bezier(.2,.74,.28,1)}.sheet-dialog:before{content:"";z-index:0;pointer-events:none;background:linear-gradient(90deg,#fff0,#ffffffb8,#fff0);height:1px;display:block;position:absolute;top:0;left:0;right:0}.sheet-chrome{cursor:grab;touch-action:none;-webkit-tap-highlight-color:transparent;flex:0 0 36px;place-items:start center;padding-top:8px;display:grid}.sheet-dialog.is-sheet-dragging .sheet-chrome{cursor:grabbing}.sheet-grabber{cursor:ns-resize;touch-action:none;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:999px;place-items:start center;width:44px;height:24px;margin:0;padding:0;display:grid}.sheet-grabber:before{content:"";background:#3c3c434d;border-radius:3px;width:36px;height:5px;display:block}.sheet-content{min-height:0;padding:0 18px calc(22px + env(safe-area-inset-bottom));overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.sheet-dialog.is-scroll-locked .sheet-content{-webkit-overflow-scrolling:auto;overflow-y:hidden}.person-profile-header{padding:1px 4px 0;display:block}.person-sheet-top{justify-content:center;align-items:center;gap:16px;display:flex}.person-sheet-avatar{object-fit:cover;object-position:center 36%;background:var(--paper-muted);-webkit-user-drag:none;border-radius:50%;width:66px;height:66px;display:block;box-shadow:0 0 0 1px #22201d0f,0 8px 22px #22201d1f}.person-close-button{color:#22201d94;display:none}.person-identity{text-align:center;gap:3px;margin-top:2px;display:grid}.person-identity h2{color:var(--ink);margin:0;font-size:25px;font-weight:560;line-height:1.14}.person-english-name{color:#22201da3;margin:0;font-size:16px;font-weight:400;line-height:1.22}.person-metadata{gap:2px;margin-top:8px;display:grid}.person-metadata-line,.person-hidden-note{color:#22201d85;margin:0;font-size:13.5px;font-weight:450;line-height:1.26}.person-metadata-line{text-align:center;display:block}.person-location{line-height:inherit;vertical-align:baseline;white-space:nowrap;margin-left:6px;padding-left:16px;display:inline-block;position:relative}.person-location:first-child{margin-left:0}.person-location svg{position:absolute;top:50%;left:0;transform:translateY(-52%)}.person-location span{line-height:inherit}.person-hidden-note{margin-top:6px}.person-detail-stack{gap:12px;margin-top:17px;padding-top:2px;display:grid}.person-detail-section{border-top:1px solid #22201d14;padding:13px 0 0}.person-detail-section h3{color:#22201d75;margin:0 0 7px;font-size:12px;font-weight:520;line-height:1.3}.person-detail-section p,.person-detail-section li{color:#22201dc7;white-space:pre-line;margin:0;font-size:14px;font-weight:400;line-height:1.48}.person-detail-section ul{gap:5px;margin:0;padding:0;list-style:none;display:grid}.person-detail-section li{padding-left:14px;position:relative}.person-detail-section li:before{content:"";background:#22201d47;border-radius:50%;width:4px;height:4px;position:absolute;top:.73em;left:1px}.person-detail-section.empty p{color:#22201d7a}.person-locked-panel{background:#22201d0b;border-radius:16px;gap:10px;margin-top:18px;padding:16px;display:grid}.person-locked-panel span{background:linear-gradient(90deg,#22201d1a,#22201d0b,#22201d1a);border-radius:999px;height:12px;display:block}.person-locked-panel span:first-child{width:76%}.person-locked-panel span:nth-child(2){width:92%}.person-locked-panel span:nth-child(3){width:58%}@keyframes sheet-rise{0%{transform:translate3d(0, calc(var(--sheet-height,100%) + 36px), 0)}86%{transform:translate3d(0, calc(var(--sheet-y,0px) - 1px), 0)}to{transform:translate3d(0, var(--sheet-y,0px), 0)}}@keyframes sheet-pop{0%{opacity:0;transform:translateY(16px)scale(.985)}to{opacity:1;transform:translate(0,0)scale(1)}}.sheet-header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.sheet-header h2{color:#22201df0;margin:0;font-size:20px;font-weight:520;line-height:1.16}.settings-close-button{color:#22201d94;display:none}.settings-section{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.settings-overview{border-top:0;margin-top:0;padding-top:0}.settings-section-title{color:#22201d80;margin:0 0 9px;font-size:11.5px;font-weight:560;line-height:1.25}.settings-progress-summary{align-items:center;min-height:28px;margin-bottom:5px;display:flex}.settings-progress-summary+.setting-row{border-top:1px solid var(--line)}.setting-row{justify-content:space-between;align-items:center;gap:16px;min-height:38px;font-size:13px;line-height:1.32;display:flex}.setting-row+.setting-row{border-top:1px solid var(--line)}.setting-label{color:#22201d94;font-weight:400}.setting-value{color:#22201de6;font-variant-numeric:tabular-nums;text-align:right;font-weight:500}.settings-progress-stats{font-variant-numeric:tabular-nums;text-align:left;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:5px 12px;max-width:100%;font-size:13px;font-weight:500;line-height:1.22;display:flex}.settings-progress-stat{white-space:nowrap}.settings-progress-stat.is-remembered{color:var(--success-deep)}.settings-progress-stat.is-again{color:var(--danger-deep)}.settings-progress-stat.is-remaining{color:var(--muted)}.shortcut-panel{gap:0;padding-bottom:1px;display:grid}.shortcut-row{grid-template-columns:minmax(82px,1fr) minmax(0,auto);align-items:center;gap:16px;min-height:34px;font-size:13px;line-height:1.3;display:grid}.shortcut-label{color:#22201d94;font-weight:400}.shortcut-keys{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:5px 6px;min-width:0;display:flex}.shortcut-or{color:#22201d6b;font-size:11px;font-weight:400;line-height:1}.shortcut-chip{color:#22201d9e;background:#ffffff8f;border:1px solid #22201d14;border-radius:999px;place-items:center;min-height:23px;padding:2px 7px;font-size:11.5px;font-weight:400;line-height:1.25;display:inline-grid}kbd{border:1px solid var(--line-strong);color:#22201dad;min-width:25px;min-height:23px;box-shadow:inset 0 -1px 0 var(--line), 0 1px 0 #ffffffb8;font:500 11.5px/1.25 var(--font);background:#ffffffdb;border-radius:6px;place-items:center;padding:2px 7px;display:inline-grid}.settings-maintenance{gap:0;display:grid}.maintenance-item{border-top:1px solid #22201d0d;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;min-height:66px;padding:12px 0;display:grid}.settings-section-title+.maintenance-item{border-top:0;padding-top:3px}.maintenance-copy{gap:1px;min-width:0;display:grid}.maintenance-label{color:#22201d94;font-size:13px;font-weight:400;line-height:1.3}.maintenance-value{color:#22201de6;font-size:13px;font-weight:500;line-height:1.3}.utility-button{color:#22201d9e;cursor:pointer;background:linear-gradient(#ffffffbd,#ffffff85),#ffffff80;border:1px solid #22201d14;border-radius:999px;flex:none;justify-content:center;align-items:center;gap:6px;min-height:34px;padding:0 12px;font-size:12px;line-height:1.2;transition:transform .15s,color .15s,background .15s,border-color .15s,box-shadow .15s,opacity .15s;display:inline-flex;box-shadow:inset 0 1px #ffffffb3,0 1px 2px #22201d08}.utility-button:hover:not(:disabled){color:#22201dc7;background:linear-gradient(#ffffffdb,#ffffffa8),#ffffffb8;border-color:#22201d1f;transform:translateY(-1px);box-shadow:inset 0 1px #ffffffbd,0 3px 8px #22201d0f}.utility-button:disabled{cursor:wait;opacity:.6}.refresh-icon{transition:transform .18s}.refresh-icon.spinning{animation:.86s linear infinite refresh-spin}.settings-note{color:#22201d7a;margin:2px 0 0;font-size:12px;line-height:1.32}.history-item{align-items:center}.danger-utility-button{color:var(--danger-deep);background:linear-gradient(#ffffffc7,#ffffff94),#e11d480d;border-color:#ca244d1a}.danger-utility-button:hover:not(:disabled){color:var(--danger-strong);background:linear-gradient(#ffffffd6,#ffffffa8),#e11d4817;border-color:#ca244d2e}.desktop-mobile-hint{display:none}@keyframes refresh-spin{to{transform:rotate(360deg)}}@media (width>=760px){.app-shell{padding-top:30px;padding-bottom:30px}.sheet-layer{-webkit-backdrop-filter:blur(14px)saturate(1.08);background:#22201d29;place-items:center;padding:24px}.sheet-dialog{-webkit-backdrop-filter:blur(24px)saturate(1.34);background:linear-gradient(#ffffffeb,#ffffffc7),#fffc;border-radius:22px;height:auto;max-height:calc(100dvh - 48px);padding:0;animation:.26s cubic-bezier(.22,.61,.36,1) both sheet-pop;display:block;box-shadow:inset 0 1px #ffffffb8,0 22px 70px #22201d33,0 4px 16px #22201d1a}.sheet-dialog--person{width:min(476px,100%)}.sheet-dialog--settings{width:min(430px,100%)}.sheet-dialog:before,.sheet-chrome,.sheet-grabber{display:none}.sheet-content{max-height:calc(100dvh - 48px);padding:18px 22px 22px}.person-profile-header{grid-template-columns:82px minmax(0,1fr) 36px;align-items:center;column-gap:18px;padding:0;display:grid}.person-sheet-top{display:contents}.person-sheet-avatar{grid-area:1/1;width:82px;height:82px}.person-close-button{grid-area:1/3;place-self:start end;display:inline-grid}.settings-close-button{display:inline-grid}.person-identity{text-align:left;grid-area:1/2;align-self:center;justify-items:start;margin-top:0}.person-identity h2{font-size:23px;line-height:1.12}.person-english-name{font-size:16px;line-height:1.24}.person-metadata{gap:1px;margin-top:7px}.person-metadata-line{text-align:left}.person-detail-stack{margin-top:22px}}@media (width>=940px){.mobile-qr-control{display:block}.mobile-qr-trigger.is-arriving{pointer-events:none;animation:.68s cubic-bezier(.2,.82,.22,1) both mobile-qr-icon-arrive}.mobile-qr-trigger:disabled{cursor:default}.mobile-qr-popover{z-index:18;border:1px solid var(--line);width:148px;color:var(--muted);-webkit-backdrop-filter:blur(18px)saturate(1.18);text-align:center;-webkit-user-select:none;user-select:none;background:linear-gradient(#ffffffeb,#ffffffc7),#fffc;border-radius:8px;justify-items:center;gap:8px;padding:10px;animation:.18s cubic-bezier(.22,.61,.36,1) both mobile-qr-popover-in;display:grid;position:absolute;top:calc(100% + 10px);right:-40px;box-shadow:0 18px 44px #22201d1f,0 4px 12px #22201d14}.mobile-qr-popover:before{content:"";border-top:1px solid var(--line);border-left:1px solid var(--line);background:#ffffffe0;width:10px;height:10px;position:absolute;top:-5px;right:54px;transform:rotate(45deg)}.mobile-qr-popover img{z-index:1;border:1px solid var(--line);-webkit-user-drag:none;background:#fff;border-radius:6px;width:88px;height:88px;padding:5px;display:block;position:relative}.desktop-mobile-hint{z-index:8;border:1px solid var(--line);width:124px;color:var(--muted);text-align:center;opacity:.68;pointer-events:auto;-webkit-user-select:none;user-select:none;background:#ffffffd1;border-radius:8px;justify-items:center;gap:8px;padding:10px;transition:opacity .18s,transform .18s,box-shadow .18s;display:grid;position:fixed;top:50%;right:max(24px,50vw - 367px);transform:translateY(-50%);box-shadow:0 10px 28px #00000012,0 2px 7px #0000000f}.desktop-mobile-hint:hover,.desktop-mobile-hint:focus-within{opacity:.88;box-shadow:0 12px 32px #00000014,0 3px 9px #0000000f}.desktop-mobile-hint.is-minimizing{opacity:0;pointer-events:none;transition:opacity 80ms;transform:translateY(-50%)}.mobile-hint-minimize{z-index:2;color:#22201d9e;opacity:0;pointer-events:auto;cursor:pointer;-webkit-backdrop-filter:blur(12px)saturate(1.15);background:linear-gradient(#ffffffe6,#ffffffb8),#ffffffd6;border:1px solid #22201d14;border-radius:999px;justify-content:center;align-items:center;gap:4px;min-height:28px;padding:0 8px;font-size:11px;font-weight:500;line-height:1.2;transition:opacity .16s,transform .16s,color .16s,background .16s;display:inline-flex;position:absolute;top:-11px;right:-10px;transform:translateY(3px)scale(.96);box-shadow:inset 0 1px #ffffffb8,0 5px 15px #22201d14}.desktop-mobile-hint:hover .mobile-hint-minimize,.desktop-mobile-hint:focus-within .mobile-hint-minimize,.mobile-hint-minimize:hover,.mobile-hint-minimize:focus-visible{opacity:1;transform:translate(0,0)scale(1)}.mobile-hint-minimize:hover{color:#22201dc7;background:linear-gradient(#fffffff5,#ffffffd1),#ffffffe6}.desktop-mobile-hint.is-minimizing .mobile-hint-minimize{opacity:0}.mobile-qr-minimize-proxy{top:var(--qr-source-top);left:var(--qr-source-left);z-index:30;width:var(--qr-marker-size);height:var(--qr-marker-size);opacity:0;pointer-events:none;transform-origin:50%;backface-visibility:hidden;will-change:transform, opacity;contain:strict;isolation:isolate;-webkit-user-select:none;user-select:none;background:radial-gradient(circle at 34% 28%,#ffffffd6,#30a46c70),#22201d1f;border-radius:50%;animation:.52s cubic-bezier(.2,.82,.22,1) both mobile-qr-genie-minimize;position:fixed;transform:translate(0,0);box-shadow:0 0 0 1px #22201d14}.desktop-mobile-hint img{border:1px solid var(--line);-webkit-user-drag:none;background:#fff;border-radius:6px;width:74px;height:74px;padding:5px;display:block}@supports (view-transition-name:mobile-qr-hint){.desktop-mobile-hint{view-transition-name:mobile-qr-hint}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-group(mobile-qr-hint){z-index:40;animation-duration:.52s;animation-timing-function:cubic-bezier(.2,.82,.22,1)}::view-transition-old(mobile-qr-hint){animation:.52s cubic-bezier(.2,.82,.22,1) both mobile-qr-vt-old}::view-transition-new(mobile-qr-hint){animation:.52s cubic-bezier(.2,.82,.22,1) both mobile-qr-vt-new}}.mobile-hint-copy{z-index:1;gap:2px;display:grid;position:relative}.mobile-hint-title{color:#22201da3;font-size:12px;font-weight:500;line-height:1.2}.mobile-hint-body{color:#22201d6b;font-size:11px;font-weight:400;line-height:1.25}}@keyframes mobile-qr-genie-minimize{0%{opacity:.86;transform:translate(0,0)scale(1.14)}32%{opacity:.76;transform:translate3d(calc(var(--qr-translate-x) * .34), calc(var(--qr-translate-y) * .42), 0) scale(.96)}72%{opacity:.42;transform:translate3d(calc(var(--qr-translate-x) * .86), calc(var(--qr-translate-y) * .88), 0) scale(.74)}to{opacity:0;transform:translate3d(var(--qr-translate-x), var(--qr-translate-y), 0) scale(.56)}}@keyframes mobile-qr-vt-old{0%{opacity:.92}58%{opacity:.72}to{opacity:0}}@keyframes mobile-qr-vt-new{0%{opacity:0}62%{opacity:0}to{opacity:1}}@keyframes mobile-qr-icon-arrive{0%{opacity:0;transform:scale(.9)}54%{opacity:0;transform:scale(.9)}82%{opacity:.88;transform:scale(1.035)}to{opacity:1;transform:scale(1)}}@keyframes mobile-qr-popover-in{0%{opacity:0;transform:translateY(-5px)scale(.985)}to{opacity:1;transform:translate(0,0)scale(1)}}@media (width>=940px) and (height<=700px){.desktop-mobile-hint{top:auto;bottom:24px;transform:none}.desktop-mobile-hint.is-minimizing{transform:none}}@media (prefers-reduced-motion:reduce){.mobile-qr-minimize-proxy,.mobile-qr-trigger.is-arriving,.mobile-qr-popover{animation-duration:1ms}}@media (height<=760px){.app-shell{gap:10px;padding-top:12px;padding-bottom:14px}.card{--card-width:min(100%, 334px);--card-height:clamp(424px, calc(100dvh - 214px), 506px)}.answer-block{min-height:136px;padding:16px 18px 17px;bottom:12px;left:12px;right:12px}.completion-card{gap:15px;padding:22px 22px 20px}.completion-emoji{font-size:44px}.completion-copy h1{font-size:24px}.completion-avatars{min-height:52px}.completion-avatar{width:50px;height:50px}}
