*{box-sizing:border-box}body,html{margin:0;min-height:100vh;font-family:Noto Sans JP,Noto Sans TC,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:linear-gradient(160deg,#fbf8f4,#f5ede5 40%,#ede5dd);background-attachment:fixed;color:#3d3d3d;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 80%,hsla(30,27%,71%,.08) 0,transparent 50%),radial-gradient(circle at 80% 20%,hsla(30,21%,63%,.06) 0,transparent 50%);pointer-events:none;z-index:-1}.chat-page{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;max-width:520px;margin:0 auto;padding:.75rem 1rem calc(72px + .75rem);position:relative}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 0 1rem;border-bottom:1px solid hsla(29,23%,72%,.2)}.chat-header h1{margin:0;font-size:1.5rem;font-weight:600;color:#4a4540}.chat-header p{margin:.25rem 0 0;font-size:.9rem;color:#7a7570}.chat-header-main{display:flex;flex-direction:column;gap:.1rem}.chat-header-actions{display:flex;gap:.5rem;align-items:center}.chat-reset-button,.chat-signout-button{border:none;background:transparent;color:#9a9590;font-size:.8rem;padding:.35rem .75rem;border-radius:999px;cursor:pointer;white-space:nowrap;transition:all .2s}.chat-reset-button:hover:not(:disabled),.chat-signout-button:hover{background:hsla(29,23%,72%,.15);color:#7a7570}.chat-reset-button:disabled{opacity:.4;cursor:default}.chat-messages{flex:1 1;overflow-y:auto;padding:1.5rem .25rem;display:flex;flex-direction:column;gap:1.1rem;scroll-behavior:smooth}.welcome{padding:2rem 1.5rem;color:#6a6560;font-size:.95rem;line-height:1.7;background:hsla(29,23%,72%,.08);border-radius:1rem}.welcome p{margin:0 0 .5rem}.welcome p:last-child{margin-bottom:0}.bubble{max-width:80%;padding:.85rem 1.05rem;border-radius:1.15rem;line-height:1.85;font-size:1rem;letter-spacing:.01em;animation:bubbleIn .3s cubic-bezier(.34,1.56,.64,1);position:relative}@keyframes bubbleIn{0%{opacity:0;transform:translateY(12px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.bubble.user{align-self:flex-end;background:linear-gradient(135deg,#d4c4b0,#c8b8a5);color:#3d3530;border-bottom-right-radius:.3rem;box-shadow:0 2px 8px hsla(30,17%,47%,.15);margin-left:2.5rem}.bubble.assistant{align-self:flex-start;background:#fff;border:none;box-shadow:0 2px 16px hsla(30,17%,47%,.1);border-bottom-left-radius:.3rem;margin-right:2.5rem}.message-row{display:flex;align-items:flex-end;gap:.6rem;width:100%}.message-row.user{flex-direction:row-reverse}.message-row .mini-avatar{width:28px;height:28px;border-radius:50%;flex-shrink:0;margin-bottom:.2rem}.bubble-wrapper{display:flex;flex-direction:column;align-items:flex-end;max-width:calc(100% - 3rem)}.message-row.assistant .bubble-wrapper{align-items:flex-start}.read-marker{font-size:.65rem;color:#7a9888;margin-top:.2rem;margin-right:.25rem;opacity:.8}.grammar-hint{display:flex;align-items:flex-start;gap:.4rem;margin-top:.4rem;padding:.5rem .65rem;background:linear-gradient(135deg,#f0f7f4,#e8f2ec);border-radius:10px;border-left:3px solid #7a9888;font-size:.78rem;line-height:1.5;animation:hintSlideIn .3s ease-out;max-width:90%;margin-left:auto}.grammar-hint-icon{flex-shrink:0;font-size:.85rem}.grammar-hint-content{display:flex;flex-direction:column;gap:.2rem}.grammar-hint-correction{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.grammar-original{color:#b07070;text-decoration:line-through;opacity:.8}.grammar-arrow{color:#7a9888;font-weight:600}.grammar-corrected{color:#507060;font-weight:600}.grammar-hint-explanation{color:#5a7a6a;font-size:.72rem}@keyframes hintSlideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.bubble.assistant[data-emotion=gentle]{border-left:3px solid #c9b8a8}.bubble.assistant[data-emotion=calm]{border-left:3px solid #9cb4a8}.bubble.assistant[data-emotion=concerned]{border-left:3px solid #c4a898}.bubble.proactive{background:rgba(156,180,168,.12)}.proactive-indicator{font-size:.7rem;color:#7a9488;margin-bottom:.35rem;font-weight:500}.bubble-content{white-space:pre-wrap;word-break:break-word}.suggested-step{margin-top:.85rem;padding-top:.85rem;border-top:1px dashed hsla(29,23%,72%,.4);font-size:.88rem;color:#6a6560}.suggested-step .label{display:block;margin-bottom:.25rem;font-weight:500;color:#5a5550}.typing-indicator{display:flex;align-items:center;gap:4px;padding:4px 0}.typing-dot{width:8px;height:8px;background:linear-gradient(135deg,#b8a898,#a89888);border-radius:50%;animation:typingBounce 1.4s ease-in-out infinite}.typing-dot:first-child{animation-delay:0s}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}.bubble.assistant.streaming .bubble-content:after{content:"▋";animation:cursorBlink .8s step-end infinite;color:#b8a898;margin-left:1px}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}.chat-input{display:flex;gap:.5rem;background:linear-gradient(180deg,transparent,hsla(35,55%,96%,.98) 40%);position:-webkit-sticky;position:sticky;bottom:72px;margin-bottom:-.75rem;padding:1.25rem 0 .85rem}.chat-input input{flex:1 1;padding:.9rem 1.1rem;border:1px solid hsla(29,23%,72%,.25);border-radius:1.25rem;font-size:1rem;font-family:inherit;background:#fffcf9;color:#3d3d3d;transition:all .2s ease;box-shadow:0 2px 8px hsla(30,17%,55%,.04)}.chat-input input:focus{outline:none;border-color:#c9b8a8;background:#fff;box-shadow:0 0 0 3px hsla(29,23%,72%,.12),0 4px 12px hsla(30,17%,55%,.08)}.chat-input input::placeholder{color:#b8b0a8;font-weight:300}.chat-input input:disabled{background:#f8f5f0;cursor:not-allowed;opacity:.7}.chat-input button{padding:.9rem 1.25rem;border:none;border-radius:1.25rem;background:linear-gradient(135deg,#c9b8a8,#b8a898);color:#fff;font-size:.9rem;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px hsla(30,21%,63%,.2)}.chat-input button:hover:not(:disabled){background:linear-gradient(135deg,#b8a898,#a89888);transform:translateY(-1px);box-shadow:0 4px 12px hsla(30,21%,63%,.25)}.chat-input button:active:not(:disabled){transform:translateY(0)}.chat-input button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.voice-button{padding:0!important;width:3.25rem!important;height:3.25rem!important;background:linear-gradient(145deg,#fff,#f5f0ea)!important;border:2px solid hsla(30,21%,63%,.25)!important;border-radius:50%!important;color:#8a7a70;font-size:1.3rem;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 12px hsla(30,17%,47%,.12),inset 0 1px 0 hsla(0,0%,100%,.8)!important;transition:all .25s cubic-bezier(.34,1.56,.64,1)!important}.voice-button:hover:not(:disabled){background:linear-gradient(145deg,#fff,#ede5dd)!important;border-color:#c0a898!important;transform:scale(1.08)!important;box-shadow:0 6px 20px hsla(30,17%,47%,.18),inset 0 1px 0 hsla(0,0%,100%,.9)!important}.voice-button:active:not(:disabled){transform:scale(.95)!important}.voice-button.listening{background:linear-gradient(145deg,#e8f5ec,#d0e8d8)!important;border-color:#7cb890!important;animation:listenPulse 1.2s ease-in-out infinite;color:#5a9068}.voice-button.transcribing{background:linear-gradient(145deg,#f5ede5,#e8ddd0)!important;border-color:#c8b8a0!important;cursor:wait;animation:transcribeWait .8s ease-in-out infinite;color:#9a8a78}@keyframes listenPulse{0%,to{box-shadow:0 0 0 0 rgba(124,184,144,.5),0 4px 16px rgba(100,160,120,.2);transform:scale(1)}50%{box-shadow:0 0 0 12px rgba(124,184,144,0),0 6px 20px rgba(100,160,120,.25);transform:scale(1.05)}}@keyframes transcribeWait{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.98)}}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1rem}.login-card{background:#fffcf8;border:1px solid hsla(29,23%,72%,.2);border-radius:1.25rem;box-shadow:0 4px 20px hsla(30,17%,55%,.1);padding:2.5rem 2rem;width:100%;max-width:380px}.login-header{text-align:center;margin-bottom:2rem}.login-header h1{margin:0;font-size:1.85rem;font-weight:600;color:#4a4540}.login-header p{margin:.5rem 0 0;font-size:.95rem;color:#7a7570}.login-loading{text-align:center;color:#9a9590;font-size:.95rem}.login-form{display:flex;flex-direction:column;gap:1rem}.login-form input{padding:.95rem 1.15rem;border:1px solid hsla(29,23%,72%,.3);border-radius:.85rem;font-size:.95rem;font-family:inherit;background:#fffcf8;color:#3d3d3d;transition:all .2s}.login-form input:focus{outline:none;border-color:#c9b8a8;box-shadow:0 0 0 3px hsla(29,23%,72%,.15)}.login-form input:disabled{background:#f5f0ea;cursor:not-allowed}.login-error{margin:0;padding:.75rem 1rem;background:hsla(12,48%,59%,.1);border:1px solid hsla(12,48%,59%,.2);border-radius:.65rem;color:#a85a4a;font-size:.88rem;line-height:1.5}.login-button{padding:1rem 1.25rem;border:none;border-radius:.85rem;background:#c9b8a8;color:#fff;font-size:1rem;font-weight:500;font-family:inherit;cursor:pointer;margin-top:.5rem;transition:all .2s}.login-button:hover:not(:disabled){background:#b8a898;transform:translateY(-1px)}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-divider{display:flex;align-items:center;gap:.85rem;margin:1.5rem 0;color:#a8a098;font-size:.88rem}.login-divider:after,.login-divider:before{content:"";flex:1 1;height:1px;background:hsla(29,23%,72%,.3)}.login-google-button{width:100%;padding:1rem 1.25rem;border:1px solid hsla(29,23%,72%,.3);border-radius:.85rem;background:#fffcf8;color:#4a4540;font-size:.95rem;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s}.login-google-button:hover:not(:disabled){background:#faf7f2;border-color:#c9b8a8}.login-google-button:disabled{opacity:.6;cursor:not-allowed}.login-toggle{text-align:center;margin:1.75rem 0 0;font-size:.9rem;color:#7a7570}.login-toggle-button{border:none;background:none;color:#c9b8a8;font-size:.9rem;font-weight:500;font-family:inherit;cursor:pointer;padding:0;margin-left:.25rem;text-decoration:underline;text-underline-offset:2px;transition:color .2s}.login-toggle-button:hover:not(:disabled){color:#b8a898}.login-toggle-button:disabled{opacity:.6;cursor:not-allowed}.bottom-nav-container{position:fixed;bottom:0;left:0;right:0;z-index:1000;isolation:isolate;pointer-events:auto}.bottom-nav{background:rgba(255,252,248,.95);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid hsla(29,23%,72%,.2);justify-content:space-around;padding:.5rem .5rem max(.5rem,env(safe-area-inset-bottom));height:72px;box-shadow:0 -4px 20px hsla(30,17%,55%,.06)}.bottom-nav,.bottom-nav-item{display:flex;align-items:center}.bottom-nav-item{flex-direction:column;justify-content:center;flex:1 1;position:relative;padding:.5rem 0;height:100%;border:none;background:transparent;cursor:pointer;transition:all .2s;color:#b8b0a8;text-decoration:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:auto}.bottom-nav-item.active{color:#c9b8a8}.bottom-nav-item:hover{color:#9a9590}.bottom-nav-indicator{position:absolute;top:0;width:2rem;height:.15rem;background:#c9b8a8;border-radius:999px;animation:fadeIn .3s ease}.bottom-nav-icon{font-size:1.5rem;margin-bottom:.25rem;transition:all .2s;filter:grayscale(0)}.bottom-nav-icon.grayscale{filter:grayscale(1);opacity:.6}.bottom-nav-item.active .bottom-nav-icon{transform:scale(1.1) translateY(-2px)}.bottom-nav-label{font-size:.65rem;font-weight:600;letter-spacing:-.02em;transition:opacity .2s}.bottom-nav-item.active .bottom-nav-label{opacity:1}.bottom-nav-item:not(.active) .bottom-nav-label{opacity:.6}@keyframes fadeIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem}.error-boundary-card{text-align:center;background:rgba(255,252,248,.95);border-radius:1.5rem;padding:3rem 2rem;max-width:360px;box-shadow:0 4px 24px hsla(30,17%,55%,.1)}.error-boundary-emoji{font-size:3rem;margin:0 0 1rem}.error-boundary-card h2{margin:0 0 .5rem;font-size:1.2rem;color:#4a4540}.error-boundary-detail{font-size:.85rem;color:#8a8580;margin:0 0 1.5rem}.error-boundary-button{background:#c9b8a8;color:#fff;border:none;border-radius:1rem;padding:.75rem 2rem;font-size:.95rem;font-weight:500;cursor:pointer;transition:background .2s}.error-boundary-button:hover{background:#b8a898}.page-container{display:flex;flex-direction:column;min-height:100vh;max-width:560px;margin:0 auto;padding:1rem 1rem calc(72px + 1rem)}.page-header{padding:1.25rem 0;border-bottom:1px solid hsla(29,23%,72%,.2)}.page-header h1{margin:0;font-size:1.5rem;font-weight:600;color:#4a4540}.page-header p{margin:.25rem 0 0;font-size:.9rem;color:#7a7570}.page-content{flex:1 1;padding:1.5rem 0}.text-muted{color:#9a9590;font-size:.95rem;text-align:center;margin:2rem 0}.text-muted-small{color:#a8a098;font-size:.85rem;margin-top:.5rem}.chat-header-simple{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;border-bottom:1px solid hsla(29,23%,72%,.2)}.chat-header-simple h1{margin:0;font-size:1.25rem;font-weight:600;color:#4a4540}.settings-content{display:flex;flex-direction:column;gap:1.5rem}.settings-section{padding:1.5rem;background:#fffcf8;border:1px solid hsla(29,23%,72%,.2);border-radius:1rem}.settings-section h2{margin:0 0 .85rem;font-size:1rem;font-weight:600;color:#4a4540}.user-email{color:#7a7570;font-size:.95rem;margin:0}.button-danger{width:100%;padding:.95rem 1.25rem;border:none;border-radius:.85rem;background:#d8a898;color:#fff;font-size:.95rem;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s}.button-danger:hover{background:#c89888}.version-info{text-align:center;font-size:.75rem;color:#a8a098;margin-top:2rem;padding:1rem}.progress-content{display:flex;flex-direction:column;gap:1.5rem}.progress-card{padding:1.75rem;background:#fffcf8;border:1px solid hsla(29,23%,72%,.2);border-radius:1.25rem;text-align:center}.streak-card{background:linear-gradient(135deg,#fff8f0,#fff5eb);border-color:rgba(255,157,77,.2)}.streak-display{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:.75rem}.streak-fire{font-size:2.5rem}.streak-number{font-size:3.5rem;font-weight:700;color:#ff7b3d;line-height:1}.streak-unit{font-size:1.25rem;color:#ff9d4d;font-weight:500;align-self:flex-end;margin-bottom:.5rem}.streak-subtitle{margin:0;font-size:.95rem;color:#8a7a70}.streak-record{margin:.5rem 0 0;font-size:.8rem;color:#a89a90}.progress-stats{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem}.stat-card{display:flex;flex-direction:column;align-items:center;padding:1.25rem;background:#fffcf8;border:1px solid hsla(29,23%,72%,.2);border-radius:1rem}.stat-number{font-size:2rem;font-weight:700;color:#5a8a6a}.stat-label{font-size:.8rem;color:#8a8a80;margin-top:.25rem}.progress-ruri-comment{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:rgba(140,184,156,.1);border-radius:1rem}.progress-ruri-comment .comment-bubble{font-size:.95rem;color:#5a7a6a;font-style:italic}.progress-milestone{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem;color:#9a8a80;font-size:.85rem}.milestone-icon{font-size:1.1rem}.memories-content{display:flex;flex-direction:column;gap:1.5rem}.memories-intro{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:linear-gradient(135deg,rgba(140,184,156,.1),rgba(120,160,140,.08));border-radius:1rem}.memories-intro-text p{margin:0;font-size:.95rem;color:#5a7a6a}.memories-list{display:flex;flex-direction:column;gap:.75rem}.memory-card{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:#fffcf8;border:1px solid hsla(29,23%,72%,.15);border-radius:.85rem;transition:all .2s}.memory-card:hover{background:#fffaf5;border-color:hsla(29,23%,72%,.25)}.memory-icon{font-size:1.5rem;width:2.5rem;text-align:center}.memory-content{display:flex;flex-direction:column;gap:.15rem}.memory-label{font-size:.75rem;color:#a8a098;text-transform:uppercase;letter-spacing:.03em}.memory-value{font-size:1rem;color:#4a4540;font-weight:500}.memories-empty{text-align:center;padding:2rem;color:#9a9590}.memories-empty p{margin:0}.memories-empty-hint{margin-top:.5rem!important;font-size:.85rem;color:#a8a098}.memories-link-card{text-decoration:none;display:block}.memories-card-inner{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;border-radius:1rem;transition:all .2s}.memories-card-inner:hover{transform:translateY(-1px)}.memories-card-inner.sns-theme{background:linear-gradient(135deg,#fff8f2,#fff5eb);border:1px solid rgba(255,157,77,.2)}.memories-card-inner.sns-theme:hover{border-color:rgba(255,157,77,.4);box-shadow:0 4px 16px rgba(255,157,77,.1)}.memories-card-inner.sns-theme .memories-card-arrow{color:#ff9d4d}.memories-card-inner.album-theme{background:linear-gradient(135deg,#f8f5ff,#f2eeff);border:1px solid rgba(140,120,200,.2)}.memories-card-inner.album-theme:hover{border-color:rgba(140,120,200,.4);box-shadow:0 4px 16px rgba(140,120,200,.1)}.memories-card-inner.album-theme .memories-card-arrow{color:#9080c0}.memories-card-icon{font-size:1.75rem}.memories-card-info{flex:1 1;display:flex;flex-direction:column;gap:.1rem}.memories-card-title{font-size:1rem;font-weight:600;color:#4a4540}.memories-card-subtitle{font-size:.8rem;color:#9a8a80}.memories-card-arrow{font-size:1.25rem}.memories-coming-soon{padding:1.25rem;background:hsla(29,23%,72%,.08);border-radius:1rem;text-align:center}.memories-coming-soon h3{margin:0 0 .75rem;font-size:.95rem;color:#7a7570}.memories-coming-soon ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.35rem}.memories-coming-soon li{font-size:.85rem;color:#9a9590}.sns-page{padding-top:.5rem}.sns-back-button{display:inline-block;padding:.5rem 0;color:#7a9888;font-size:.9rem;text-decoration:none;margin-bottom:.5rem}.sns-back-button:hover{color:#5a7868}.sns-profile-header{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:linear-gradient(135deg,#fffcf8,#fff8f2);border:1px solid hsla(29,23%,72%,.2);border-radius:1rem;margin-bottom:1rem}.sns-profile-info{flex:1 1}.sns-profile-info h1{margin:0;font-size:1.1rem;font-weight:600;color:#4a4540}.sns-profile-name{margin:.15rem 0 0;font-size:.85rem;color:#7a7570}.sns-profile-bio{margin:.35rem 0 0;font-size:.8rem;color:#9a9590}.sns-tabs{display:flex;gap:.5rem;margin-bottom:1rem;border-bottom:1px solid hsla(29,23%,72%,.2);padding-bottom:.5rem}.sns-tab{padding:.5rem 1rem;border:none;background:transparent;font-size:.9rem;color:#9a9590;cursor:pointer;font-family:inherit;border-radius:.5rem;transition:all .2s}.sns-tab.active{background:rgba(140,184,156,.15);color:#5a7a6a;font-weight:500}.sns-tab:disabled{opacity:.5;cursor:not-allowed}.sns-posts{display:flex;flex-direction:column;gap:1rem}.sns-post{background:#fffcf8;border:1px solid hsla(29,23%,72%,.15);border-radius:1rem;padding:1rem;transition:all .2s}.sns-post:hover{border-color:hsla(29,23%,72%,.3);box-shadow:0 2px 12px hsla(30,17%,47%,.06)}.sns-post-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.sns-post-meta{display:flex;flex-direction:column;gap:.1rem}.sns-post-name{font-size:.9rem;font-weight:600;color:#4a4540}.sns-post-time{font-size:.75rem;color:#a8a098}.sns-post-content{font-size:.95rem;color:#3d3835;line-height:1.6;white-space:pre-wrap;margin-bottom:.5rem}.sns-post-location{font-size:.8rem;color:#7a9888;margin-bottom:.75rem}.sns-post-actions{display:flex;gap:1rem;padding-top:.5rem;border-top:1px solid hsla(29,23%,72%,.1)}.sns-action-button{display:flex;align-items:center;gap:.35rem;padding:.35rem .5rem;border:none;background:transparent;font-size:.85rem;color:#8a8580;cursor:pointer;font-family:inherit;border-radius:.5rem;transition:all .2s}.sns-action-button:hover{background:hsla(29,23%,72%,.1)}.sns-action-button.liked{color:#e85a5a}.sns-locked-hint{display:flex;flex-direction:column;align-items:center;padding:2rem 1rem;background:hsla(29,23%,72%,.08);border-radius:1rem;text-align:center}.sns-locked-icon{font-size:2rem;margin-bottom:.5rem}.sns-locked-hint p{margin:0;color:#7a7570;font-size:.95rem}.sns-locked-subtitle{margin-top:.25rem!important;font-size:.8rem!important;color:#a8a098!important}.album-page{padding-top:.5rem}.album-back-button{display:inline-block;padding:.5rem 0;color:#7a9888;font-size:.9rem;text-decoration:none;margin-bottom:.5rem}.album-back-button:hover{color:#5a7868}.album-header{margin-bottom:1.25rem}.album-header h1{margin:0;font-size:1.35rem;font-weight:600;color:#4a4540}.album-count{margin:.25rem 0 0;font-size:.85rem;color:#9a9590}.album-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.75rem;gap:.75rem;margin-bottom:1.5rem}.album-photo-card{position:relative;aspect-ratio:1;border-radius:.75rem;overflow:hidden;cursor:pointer;transition:all .2s;background:#f5f0eb}.album-photo-card:hover{transform:scale(1.03);box-shadow:0 4px 16px hsla(30,17%,47%,.15)}.album-photo-card.locked{cursor:default;background:linear-gradient(135deg,#f0ebe5,#e8e3dd)}.album-photo-card.locked:hover{transform:none;box-shadow:none}.album-photo-wrapper{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.album-photo-image{width:100%;height:100%;object-fit:cover}.album-locked-icon{font-size:1.5rem;opacity:.5}.album-photo-category{position:absolute;bottom:.35rem;right:.35rem;font-size:.75rem;background:hsla(0,0%,100%,.9);padding:.15rem .35rem;border-radius:.35rem}.album-unlock-hint{text-align:center;padding:1.25rem;background:hsla(29,23%,72%,.1);border-radius:1rem}.album-locked-count{margin:0;font-size:.95rem;color:#7a7570;font-weight:500}.album-hint-text{margin:.35rem 0 0;font-size:.85rem;color:#a8a098}.album-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem;animation:modalFadeIn .2s ease}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.album-modal-content{background:#fffcf8;border-radius:1.25rem;max-width:360px;width:100%;overflow:hidden;animation:modalSlideUp .3s cubic-bezier(.34,1.56,.64,1)}@keyframes modalSlideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.album-modal-close{position:absolute;top:1rem;right:1rem;width:2.5rem;height:2.5rem;border:none;background:hsla(0,0%,100%,.9);border-radius:50%;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:101;transition:all .2s}.album-modal-close:hover{background:#fff;transform:scale(1.1)}.album-modal-image-wrapper{width:100%;aspect-ratio:1;background:#f5f0eb}.album-modal-image{width:100%;height:100%;object-fit:cover}.album-modal-info{padding:1rem 1.25rem}.album-modal-caption{display:flex;align-items:flex-start;gap:.75rem}.album-modal-caption p{margin:0;font-size:.95rem;color:#4a4540;line-height:1.5}.album-modal-time{display:block;margin-top:.5rem;font-size:.75rem;color:#a8a098;text-align:right}.task-list-container{display:flex;flex-direction:column;gap:1rem}.task-list-summary{padding:1.15rem;text-align:center;background:hsla(29,23%,72%,.1);border-radius:1rem}.task-summary-text{margin:0;color:#6a6560;font-size:.95rem}.task-list-filters{display:flex;gap:.5rem;padding:.5rem 0}.task-filter-button{flex:1 1;padding:.6rem .85rem;border:1px solid hsla(29,23%,72%,.3);border-radius:.65rem;background:#fffcf8;color:#7a7570;font-size:.85rem;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s}.task-filter-button.active{background:#c9b8a8;color:#fff;border-color:#c9b8a8}.task-filter-button:hover:not(.active){border-color:#c9b8a8;background:hsla(29,23%,72%,.08)}.task-category-filter{padding:.25rem 0}.task-category-select{width:100%;border:1px solid hsla(29,23%,72%,.3);border-radius:.65rem;background:#fffcf8;color:#6a6560;font-size:.9rem;font-family:inherit;cursor:pointer;transition:all .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%237a7570' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .85rem center;padding:.7rem 2.25rem .7rem .95rem}.task-category-select:focus{outline:none;border-color:#c9b8a8;box-shadow:0 0 0 3px hsla(29,23%,72%,.15)}.task-category-select:hover{border-color:#c9b8a8}.task-add-button{width:100%;padding:1rem;border:2px dashed hsla(29,23%,72%,.4);border-radius:1rem;background:transparent;color:#9a9590;font-size:.9rem;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s}.task-add-button:hover{border-color:#c9b8a8;color:#c9b8a8;background:hsla(29,23%,72%,.05)}.task-form-wrapper{padding:1.25rem;background:#fffcf8;border:1px solid hsla(29,23%,72%,.2);border-radius:1rem}.task-form{gap:1rem}.task-form,.task-form-field{display:flex;flex-direction:column}.task-form-field{gap:.4rem}.task-form-label{font-size:.8rem;font-weight:500;color:#7a7570}.task-form-input,.task-form-select,.task-form-textarea{padding:.85rem;border:1px solid hsla(29,23%,72%,.3);border-radius:.65rem;font-size:.95rem;font-family:inherit;background:#fffcf8;color:#3d3d3d;transition:all .2s}.task-form-input:focus,.task-form-select:focus,.task-form-textarea:focus{outline:none;border-color:#c9b8a8;box-shadow:0 0 0 3px hsla(29,23%,72%,.15)}.task-form-textarea{resize:vertical;min-height:70px}.task-form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:.85rem;gap:.85rem}.task-form-actions{display:flex;gap:.65rem;margin-top:.5rem}.task-form-button-primary,.task-form-button-secondary{flex:1 1;padding:.85rem;border:none;border-radius:.65rem;font-size:.9rem;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s}.task-form-button-secondary{background:hsla(29,23%,72%,.15);color:#6a6560}.task-form-button-secondary:hover{background:hsla(29,23%,72%,.25)}.task-form-button-primary{background:#c9b8a8;color:#fff}.task-form-button-primary:hover:not(:disabled){background:#b8a898}.task-form-button-primary:disabled{opacity:.5;cursor:not-allowed}.task-list{display:flex;flex-direction:column;gap:.85rem}.task-list-empty{padding:3.5rem 1.5rem;text-align:center;color:#a8a098;font-size:.95rem;background:hsla(29,23%,72%,.05);border-radius:1rem}.task-list-empty p{margin:0}.task-item{position:relative;display:flex;align-items:flex-start;justify-content:space-between;padding:1.15rem;background:#fffcf8;border:1px solid hsla(29,23%,72%,.2);border-radius:1rem;transition:all .2s}.task-item:hover{box-shadow:0 2px 12px hsla(30,17%,55%,.08)}.task-item.completed{opacity:.6;background:#faf7f2}.task-item.completed .task-title{text-decoration:line-through;color:#a8a098}.task-item.just-completed{animation:warmGlow 1.5s ease-out;opacity:1;background:#fffcf8}@keyframes warmGlow{0%{background:rgba(156,180,168,.2);box-shadow:0 0 0 0 rgba(156,180,168,.4)}30%{background:rgba(156,180,168,.25);box-shadow:0 0 16px 6px rgba(156,180,168,.2)}to{background:#faf7f2;box-shadow:none}}.task-checkbox.celebrate{animation:checkCelebrate .5s ease-out}@keyframes checkCelebrate{0%{transform:scale(1)}30%{transform:scale(1.3);background:rgba(156,180,168,.25);border-color:#9cb4a8}to{transform:scale(1)}}.completion-message{position:absolute;top:-1.75rem;left:50%;transform:translateX(-50%);background:rgba(156,180,168,.95);color:#fff;font-size:.8rem;font-weight:500;padding:.4rem 1rem;border-radius:999px;white-space:nowrap;animation:messageFloat 1.5s ease-out forwards;z-index:10;box-shadow:0 2px 8px rgba(156,180,168,.3)}@keyframes messageFloat{0%{opacity:0;transform:translateX(-50%) translateY(8px)}20%{opacity:1;transform:translateX(-50%) translateY(0)}80%{opacity:1;transform:translateX(-50%) translateY(0)}to{opacity:0;transform:translateX(-50%) translateY(-8px)}}.task-item-main{display:flex;align-items:flex-start;gap:.85rem;flex:1 1}.task-checkbox{width:1.5rem;height:1.5rem;border:2px solid hsla(29,23%,72%,.5);border-radius:.4rem;background:#fffcf8;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0;margin-top:.1rem}.task-checkbox:hover{border-color:#c9b8a8;background:hsla(29,23%,72%,.1)}.task-checkbox .checkmark{color:#9cb4a8;font-size:1rem;font-weight:700}.task-item-content{flex:1 1;display:flex;flex-direction:column;gap:.5rem}.task-title{font-size:.95rem;font-weight:500;color:#3d3d3d;line-height:1.45}.task-description{font-size:.85rem;color:#7a7570;line-height:1.5}.task-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.task-category,.task-due-date{font-size:.75rem;padding:.3rem .6rem;border-radius:.4rem;font-weight:500}.task-category{background:hsla(29,23%,72%,.15);color:#7a7570}.task-due-date{background:rgba(156,180,168,.15);color:#6b8176}.task-due-date.urgent{background:hsla(28,71%,72%,.25);color:#b87333;font-weight:600}.task-due-date.past{background:hsla(0,27%,71%,.2);color:#a07070}.task-delete-button{width:1.75rem;height:1.75rem;border:none;background:transparent;color:#c9b8a8;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:.4rem;transition:all .2s;flex-shrink:0;line-height:1;margin-top:-.25rem}.task-delete-button:hover{background:hsla(15,45%,72%,.15);color:#d8a898}.journey-container{display:flex;flex-direction:column;gap:1.5rem}.journey-card{padding:1.5rem;background:#fffcf8;border:1px solid hsla(29,23%,72%,.2);border-radius:1rem;display:flex;align-items:center;gap:1.15rem}.journey-streak{border-left:4px solid #9cb4a8}.journey-steps{border-left:4px solid #c9b8a8}.journey-card-icon{font-size:2.25rem;flex-shrink:0}.journey-card-content{flex:1 1}.journey-card-title{font-size:.85rem;color:#7a7570;margin-bottom:.35rem}.journey-card-value{font-size:1.85rem;font-weight:600;color:#4a4540;margin-bottom:.25rem}.journey-card-subtitle{font-size:.85rem;color:#9a9590}.journey-section{display:flex;flex-direction:column;gap:1rem}.journey-section-title{font-size:1.1rem;font-weight:600;color:#4a4540;margin:0}.journey-empty{text-align:center;padding:2.5rem 1rem;color:#9a9590;background:hsla(29,23%,72%,.05);border-radius:1rem}.journey-empty p{margin:0;font-size:.95rem}.journey-empty-hint{margin-top:.5rem!important;font-size:.85rem!important;color:#a8a098!important}.journey-milestones{display:flex;flex-direction:column;gap:.85rem}.journey-milestone-item{padding:1.15rem;background:hsla(29,23%,72%,.08);border:1px solid hsla(29,23%,72%,.15);border-radius:1rem;display:flex;align-items:flex-start;gap:.85rem}.journey-milestone-icon{font-size:1.5rem;flex-shrink:0}.journey-milestone-content{flex:1 1}.journey-milestone-title{font-size:.95rem;font-weight:500;color:#4a4540;margin-bottom:.3rem}.journey-milestone-description{font-size:.85rem;color:#7a7570;line-height:1.5}.journey-footer{text-align:center;padding:2.5rem 1rem;color:#a8a098;font-size:.85rem}.journey-footer p{margin:.25rem 0}.header-actions{display:flex;gap:.35rem;align-items:center}.chat-clear-button,.conversation-mode-button{border:none;background:transparent;font-size:1.15rem;padding:.5rem;cursor:pointer;opacity:.45;transition:all .2s ease;border-radius:.6rem;display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem}.chat-clear-button:hover:not(:disabled),.conversation-mode-button:hover{opacity:.75;background:hsla(30,21%,63%,.12)}.conversation-mode-button.active{opacity:1;background:linear-gradient(135deg,rgba(140,180,156,.2),rgba(120,160,136,.25))}.chat-clear-button:disabled{opacity:.2;cursor:default}.conversation-mode-banner{padding:.65rem 1rem;background:rgba(156,180,168,.15);font-size:.8rem;margin-bottom:.5rem}.playing-indicator{padding:.5rem 1rem;background:hsla(29,23%,72%,.15);border-radius:999px;font-size:.8rem;color:#7a7570;text-align:center;align-self:center;animation:pulse 1.5s ease-in-out infinite}.bubble.assistant .bubble-content{font-family:Noto Sans JP,Noto Sans TC,system-ui,sans-serif}.ruri-avatar{position:relative}.ruri-avatar,.ruri-avatar-inner{display:flex;align-items:center;justify-content:center}.ruri-avatar-inner{background:linear-gradient(135deg,#f8f3ed,#e8ddd0);border-radius:50%;box-shadow:0 3px 12px hsla(30,17%,55%,.15);border:2px solid hsla(0,0%,100%,.8);overflow:hidden;transition:all .3s ease}.ruri-avatar-small .ruri-avatar-inner{width:2.25rem;height:2.25rem}.ruri-avatar-medium .ruri-avatar-inner{width:3.25rem;height:3.25rem}.ruri-avatar-large .ruri-avatar-inner{width:8rem;height:8rem;box-shadow:0 8px 32px hsla(30,17%,55%,.2)}.ruri-welcome .ruri-avatar-large .ruri-avatar-inner{width:10rem;height:10rem}.ruri-avatar-image{border-radius:50%;object-fit:cover;object-position:center 15%;transition:transform .3s ease}.ruri-avatar-large .ruri-avatar-image{object-position:center 20%}.ruri-avatar:hover .ruri-avatar-image{transform:scale(1.03)}.ruri-avatar-pulse{position:absolute;inset:-6px;border-radius:50%;background:radial-gradient(circle,rgba(156,180,168,.4) 0,rgba(156,180,168,0) 70%);animation:avatarPulse 1.5s ease-in-out infinite}@keyframes avatarPulse{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.15);opacity:.3}}.ruri-avatar.speaking .ruri-avatar-inner{box-shadow:0 0 0 3px rgba(156,180,168,.5),0 4px 16px rgba(140,160,148,.25);border-color:rgba(156,180,168,.3)}.ruri-header{justify-content:space-between;padding:.85rem 1rem;background:linear-gradient(180deg,rgba(255,253,250,.97),rgba(255,253,250,.92));margin:-.75rem -1rem 0;position:-webkit-sticky;position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid hsla(29,23%,72%,.12);box-shadow:0 2px 12px hsla(30,17%,55%,.04)}.ruri-header,.ruri-profile{display:flex;align-items:center}.ruri-profile{gap:.75rem;cursor:pointer;padding:.25rem;border-radius:1rem;transition:background .2s ease}.ruri-profile:hover{background:hsla(29,23%,72%,.08)}.ruri-info{display:flex;flex-direction:column;gap:.1rem}.ruri-info h1{margin:0;font-size:1.05rem;font-weight:600;color:#3d3835;font-family:Noto Sans JP,sans-serif;letter-spacing:.01em}.ruri-info p{margin:0;font-size:.72rem;color:#7a9888;font-weight:500;display:flex;align-items:center;gap:.35rem}.ruri-info p:before{content:"";display:inline-block;width:7px;height:7px;background:linear-gradient(135deg,#8cb89c,#7aa88a);border-radius:50%;box-shadow:0 0 4px rgba(140,184,156,.5)}.ruri-header.speaking .ruri-info p{color:#6b9878}.ruri-header.speaking .ruri-info p:before{background:linear-gradient(135deg,#7ac090,#5aa878);animation:speakingPulse .8s ease-in-out infinite}@keyframes speakingPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.8}}.ruri-info p[data-status=busy]:before{background:linear-gradient(135deg,#d4a84c,#c49a3c);box-shadow:0 0 4px rgba(212,168,76,.5)}.ruri-info p[data-status=sleeping]:before{background:linear-gradient(135deg,#c47060,#b46050);box-shadow:0 0 4px rgba(196,112,96,.5);animation:none}.streak-badge{display:flex;align-items:center;gap:.25rem;padding:.35rem .75rem;background:linear-gradient(135deg,#ff9d4d,#ff7b3d);color:#fff;font-size:.85rem;font-weight:600;border-radius:999px;box-shadow:0 2px 8px rgba(255,123,61,.3);animation:streakPop .4s cubic-bezier(.34,1.56,.64,1)}@keyframes streakPop{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.streak-message{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;margin:0 -1rem;background:linear-gradient(135deg,rgba(255,157,77,.15),rgba(255,123,61,.1));border-bottom:1px solid rgba(255,157,77,.2);cursor:pointer;animation:slideDown .4s cubic-bezier(.34,1.56,.64,1)}.streak-message:hover{background:linear-gradient(135deg,rgba(255,157,77,.2),rgba(255,123,61,.15))}.streak-message span{font-size:.9rem;color:#5a4a40;font-weight:500}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.ruri-welcome{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2.5rem 1.5rem 3rem;gap:1rem;animation:welcomeIn .6s cubic-bezier(.34,1.56,.64,1)}@keyframes welcomeIn{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.ruri-welcome .ruri-avatar-large .ruri-avatar-inner{width:7rem;height:7rem;box-shadow:0 8px 32px hsla(30,17%,47%,.2),0 0 0 4px hsla(0,0%,100%,.8)}.ruri-welcome-text{display:flex;flex-direction:column;gap:.3rem;margin-top:.5rem}.ruri-welcome-text h2{margin:0;font-size:1.5rem;font-weight:600;color:#3d3835;font-family:Noto Sans JP,sans-serif;letter-spacing:.02em}.ruri-welcome-subtitle{margin:0;font-size:.78rem;color:#9a9590;font-weight:400;letter-spacing:.03em}.ruri-welcome-message{margin-top:1rem;padding:1.1rem 1.35rem;background:#fff;border:none;border-radius:1.15rem;border-bottom-left-radius:.3rem;box-shadow:0 4px 20px hsla(30,17%,47%,.1);position:relative;max-width:280px}.ruri-welcome-message:before{display:none}.ruri-welcome-message-row{display:flex;align-items:flex-end;gap:.6rem}.ruri-welcome-message p{margin:0;font-size:1rem;color:#3d3835;font-family:Noto Sans JP,sans-serif;line-height:1.7}.ruri-welcome-message p+p{margin-top:.35rem}.ruri-welcome-hint{margin-top:1.5rem;font-size:.8rem;color:#a8a098;display:flex;align-items:center;gap:.5rem}.ruri-welcome-hint .mic-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:linear-gradient(145deg,#e8f5ec,#d8e8dc);border-radius:50%;font-size:.85rem}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:1.5rem;animation:fadeIn .5s ease-out}.loading-screen p{color:#9a9590;font-size:1rem;font-family:Noto Sans JP,sans-serif;animation:loadingText 1.5s ease-in-out infinite}@keyframes loadingText{0%,to{opacity:1}50%{opacity:.5}}.usage-indicator{padding:.35rem .75rem;font-size:.72rem;color:#a8a098;text-align:center;transition:all .3s ease;border-radius:.5rem;margin:.25rem 0}.usage-indicator.low{color:#c4a060;background:rgba(196,160,96,.08)}.usage-indicator.exhausted{color:#c47060;font-weight:500;background:rgba(196,112,96,.1);padding:.5rem .85rem}.voice-fallback-notice{padding:.6rem 1rem;background:hsla(29,23%,72%,.15);border-radius:.85rem;font-size:.85rem;color:#6a6560;text-align:center;margin:.25rem 0;font-family:Noto Sans JP,sans-serif;animation:noticeSlideIn .3s ease-out,noticeSlideOut .3s ease-in 4.7s}@keyframes noticeSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes noticeSlideOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}.conversation-mode-banner{padding:.5rem .85rem;background:linear-gradient(135deg,rgba(156,180,168,.12),rgba(140,164,152,.15));border-radius:.75rem;font-size:.78rem;color:#6b8176;text-align:center;margin:.25rem 0;animation:fadeIn .3s ease;border:1px solid rgba(156,180,168,.15)}.annotated-text{white-space:pre-wrap;word-break:break-word}.annotated-word{cursor:pointer;border-radius:2px;transition:background .15s ease,color .15s ease;position:relative}.annotated-word:hover{background:rgba(140,184,156,.15)}.annotated-word.active{background:rgba(140,184,156,.25);border-radius:3px}.annotated-word.jlpt-n1{text-decoration:underline;-webkit-text-decoration-color:hsla(0,35%,55%,.3);text-decoration-color:hsla(0,35%,55%,.3);-webkit-text-decoration-style:dotted;text-decoration-style:dotted;text-underline-offset:3px}.annotated-word.jlpt-n2{text-decoration:underline;-webkit-text-decoration-color:rgba(180,140,80,.3);text-decoration-color:rgba(180,140,80,.3);-webkit-text-decoration-style:dotted;text-decoration-style:dotted;text-underline-offset:3px}.annotated-word.jlpt-n3{text-decoration:underline;-webkit-text-decoration-color:rgba(100,160,120,.3);text-decoration-color:rgba(100,160,120,.3);-webkit-text-decoration-style:dotted;text-decoration-style:dotted;text-underline-offset:3px}.word-tooltip{z-index:200;transform:translate(-50%,-100%);margin-top:-8px;pointer-events:auto;animation:tooltipIn .2s cubic-bezier(.34,1.56,.64,1)}@keyframes tooltipIn{0%{opacity:0;transform:translate(-50%,-100%) translateY(4px) scale(.95)}to{opacity:1;transform:translate(-50%,-100%) translateY(0) scale(1)}}.word-tooltip-inner{background:#2d2a28;color:#fff;border-radius:10px;padding:.6rem .85rem;box-shadow:0 8px 24px rgba(0,0,0,.25);display:flex;flex-direction:column;align-items:center;gap:.25rem;min-width:100px;max-width:220px;text-align:center}.word-tooltip-arrow{width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #2d2a28;margin:0 auto}.word-tooltip-reading{font-size:.85rem;color:hsla(0,0%,100%,.7);font-family:Noto Sans JP,sans-serif;letter-spacing:.05em}.word-tooltip-meaning{font-size:.8rem;color:#fff;font-weight:500;line-height:1.4}.word-tooltip-jlpt{display:inline-block;font-size:.65rem;font-weight:600;padding:.1rem .4rem;border-radius:4px;margin-top:.15rem;letter-spacing:.03em}.jlpt-badge-n1{background:hsla(0,35%,55%,.8);color:#fff}.jlpt-badge-n2{background:rgba(180,140,80,.85);color:#fff}.jlpt-badge-n3{background:rgba(90,150,110,.85);color:#fff}.jlpt-badge-n4{background:rgba(100,130,180,.85);color:#fff}.jlpt-badge-n5{background:hsla(0,0%,55%,.7);color:#fff}.history-content{display:flex;flex-direction:column;gap:1.5rem}.history-back-link{display:inline-block;color:#7a9888;font-size:.85rem;text-decoration:none;margin-bottom:.5rem}.history-back-link:hover{color:#5a7868}.history-empty{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:3rem 1.5rem;text-align:center}.history-empty p{margin:0;font-size:1rem;color:#7a7570;font-family:Noto Sans JP,sans-serif}.history-empty-hint{font-size:.85rem!important;color:#a8a098!important}.history-list{gap:.85rem}.history-list,.history-session-card-wrapper{display:flex;flex-direction:column}.history-session-card{width:100%;padding:1rem 1.25rem;background:#fffcf8;border:1px solid hsla(29,23%,72%,.2);border-radius:1rem;cursor:pointer;transition:all .2s;text-align:left;font-family:inherit;color:inherit}.history-session-card:hover{border-color:hsla(29,23%,72%,.4);box-shadow:0 2px 12px hsla(30,17%,47%,.08)}.history-session-card.expanded{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent}.history-session-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.history-session-date{font-size:.8rem;color:#7a7570;font-weight:500}.history-session-count{font-size:.72rem;color:#a8a098;background:hsla(29,23%,72%,.12);padding:.2rem .5rem;border-radius:999px}.history-session-preview{margin:0;font-size:.95rem;color:#4a4540;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-session-actions{display:flex;justify-content:space-between;align-items:center;margin-top:.5rem}.history-session-toggle{font-size:.75rem;color:#9a9590}.history-delete-button{border:none;background:transparent;font-size:.9rem;cursor:pointer;padding:.25rem .5rem;border-radius:.4rem;opacity:.5;transition:all .2s}.history-delete-button:hover{opacity:1;background:hsla(15,45%,72%,.15)}.history-session-expanded{padding:1rem;background:#faf7f2;border:1px solid hsla(29,23%,72%,.2);border-top:none;border-bottom-left-radius:1rem;border-bottom-right-radius:1rem;display:flex;flex-direction:column;gap:.85rem;max-height:60vh;overflow-y:auto;animation:expandIn .25s ease-out}@keyframes expandIn{0%{opacity:0;max-height:0}to{opacity:1;max-height:60vh}}.history-expand-loading{text-align:center;padding:1.5rem;color:#9a9590;font-size:.9rem}.memories-card-inner.history-theme{background:linear-gradient(135deg,#f5f8f2,#edf2ea);border:1px solid rgba(140,184,156,.2)}.memories-card-inner.history-theme:hover{border-color:rgba(140,184,156,.4);box-shadow:0 4px 16px rgba(140,184,156,.1)}.memories-card-inner.history-theme .memories-card-arrow{color:#7a9888}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.bottom-nav,.ruri-header{-webkit-backdrop-filter:none;backdrop-filter:none}}