@import url('https://fonts.googleapis.com/css2?family=Special+Elite&family=IBM+Plex+Mono:wght@400;500&display=swap'); /* Memo appearance animation */ @keyframes memo-appear { from { opacity: 0; transform: translateY(10px); filter: blur(2px); } to { opacity: 1; transform: translateY(0); filter: blur(0); } } /* Typing animation for text content */ @keyframes typing-cursor { from, to { border-right-color: transparent; } 50% { border-right-color: rgba(234, 179, 8, 0.7); } } .expert-memo { background-color: #131219; background-image: linear-gradient(rgba(255, 255, 255, 0.02) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px), repeating-linear-gradient( 45deg, rgba(255, 255, 255, 0.008) 0px, rgba(255, 255, 255, 0.008) 1px, transparent 1px, transparent 4px ); background-size: 20px 20px, 20px 20px, 4px 4px; padding: 1rem; border: 1px solid rgba(255, 255, 255, 0.08); font-family: 'IBM Plex Mono', monospace; box-shadow: 0 0 15px rgba(17, 24, 39, 0.4), inset 0 0 80px rgba(0, 0, 0, 0.7); width: 100%; max-width: 1200px; max-height: none; margin: 0 auto; position: relative; color: #e8e8e8; display: flex; flex-direction: column; border-radius: 2px; animation: memo-appear 0.6s ease-out; letter-spacing: 0.02em; } .expert-memo::before { content: ''; position: absolute; top: 0; bottom: 0; left: 0; width: 6px; background: linear-gradient( 180deg, rgba(234, 179, 8, 0.85), rgba(234, 179, 8, 0.45) ); border-radius: 2px 0 0 2px; pointer-events: none; } @media (min-width: 640px) { .expert-memo { padding: 2rem; } } .expert-memo.alert { border-color: rgb(239 68 68); box-shadow: 0 0 20px rgba(239, 68, 68, 0.2), inset 0 0 80px rgba(0, 0, 0, 0.7); } .expert-memo.alert::before { background: linear-gradient( 180deg, rgba(239, 68, 68, 0.9), rgba(239, 68, 68, 0.5) ); } .memo-header { border-bottom: 1px solid rgba(255, 255, 255, 0.15); padding-bottom: 1.25rem; margin-bottom: 1.25rem; background-color: rgba(0, 0, 0, 0.2); margin: -1rem -1rem 1.25rem -1rem; padding: 1.25rem 1.25rem 1.25rem 1.25rem; border-bottom: 1px solid rgba(234, 179, 8, 0.3); } @media (min-width: 640px) { .memo-header { margin: -2rem -2rem 1.25rem -2rem; padding: 1.5rem 2rem 1.5rem 2rem; } } .memo-label { font-family: 'Special Elite', cursive; font-weight: bold; margin-bottom: 1.25rem; text-align: center; letter-spacing: 0.15em; padding: 0.5rem; font-size: 1.25rem; text-transform: uppercase; position: relative; overflow: hidden; } @media (min-width: 640px) { .memo-label { padding: 0.75rem; font-size: 1.5rem; } } .memo-label.standard { background-color: rgb(234 179 8); color: #111111; box-shadow: 0 3px 8px rgba(0, 0, 0, 0.3); position: relative; } .memo-label.standard::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent); transform: translateX(-100%); animation: shine 2.5s infinite; } @keyframes shine { 100% { transform: translateX(100%); } } .memo-label.urgent { background-color: rgb(239 68 68); color: white; box-shadow: 0 3px 8px rgba(0, 0, 0, 0.3); } .memo-field { margin-bottom: 0.75rem; transition: all 0.2s ease; } .memo-field:hover { background-color: rgba(255, 255, 255, 0.03); } .field-label { font-weight: 500; margin-right: 0.5rem; min-width: 140px; display: inline-block; text-transform: uppercase; font-size: 0.9rem; letter-spacing: 0.05em; } .field-content { font-weight: normal; display: inline-block; } .memo-body { white-space: pre-wrap; line-height: 1.7; text-shadow: 0 0 1px rgba(255, 255, 255, 0.1); overflow-y: visible; max-height: none; flex: 1; padding-right: 0.75rem; position: relative; -webkit-overflow-scrolling: touch; font-size: 0.95rem; } /* Gradient container */ .memo-gradient { display: none; } /* Remove the old gradient and padding styles */ .memo-body p { margin-bottom: 1.5rem; } .memo-body p:last-child { margin-bottom: 1rem; } /* Memo footer styles for the secure chat button */ .memo-footer { border-top: 1px solid rgba(255, 255, 255, 0.15); margin-top: 1rem; padding-top: 1rem; background-color: rgba(0, 0, 0, 0.15); margin: 1rem -1rem -1rem -1rem; padding: 1rem; } @media (min-width: 640px) { .memo-footer { margin: 1rem -2rem -2rem -2rem; padding: 1rem 2rem; } } /* Highlight for important keywords */ .keyword { position: relative; color: rgb(234, 179, 8); cursor: help; border-bottom: 1px dashed rgba(234, 179, 8, 0.4); padding-bottom: 1px; transition: all 0.2s ease; } .keyword:hover { background-color: rgba(234, 179, 8, 0.1); } .keyword:hover::after { content: attr(data-tooltip); position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); background: rgba(0, 0, 0, 0.9); padding: 0.5rem 0.75rem; border-radius: 4px; font-size: 0.8rem; white-space: nowrap; z-index: 10; border: 1px solid rgba(234, 179, 8, 0.3); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5); } /* Audio button styling */ .audio-button { padding: 0.25rem 0.5rem !important; background-color: rgba(0, 0, 0, 0.3) !important; border: 1px solid rgba(234, 179, 8, 0.3) !important; border-radius: 3px !important; transition: all 0.2s ease !important; display: flex !important; align-items: center !important; gap: 0.25rem !important; } .audio-button:hover { background-color: rgba(234, 179, 8, 0.1) !important; border-color: rgba(234, 179, 8, 0.5) !important; } .audio-button:focus { outline: none !important; box-shadow: 0 0 0 2px rgba(234, 179, 8, 0.3) !important; } /* Typing indicator animation for dialog response */ .typing-indicator { display: inline-block; width: 0.5rem; height: 1rem; margin-left: 0.2rem; border-right: 2px solid rgba(234, 179, 8, 0.7); animation: typing-cursor 0.8s infinite; }