Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
.conv-frame {
--conv-primary: #3b82f6;
--conv-secondary: #64748b;
--conv-bg: #f7f7f7;
--conv-text: #1e293b;
--conv-border: #e2e8f0;
--conv-link: #2563eb;
--conv-header-bg: #f1f5f9;
border: 2px solid var(--conv-border);
border-radius: 1em;
background-color: var(--conv-bg);
color: var(--conv-text);
margin-bottom: 1.5rem;
overflow: hidden;
font-size: 14px;
line-height: 1.5;
}
.conv-header,
.conv-footer {
background-color: var(--conv-header-bg);
color: var(--conv-text);
padding: .5rem;
text-align: center;
font-weight: bold;
text-transform: uppercase;
font-size: .85rem;
border: 2px solid var(--conv-border);
}
.conv-header { border-width: 0 0 2px 0; }
.conv-footer { border-width: 2px 0 0 0; }
.conv-body {
max-height: 600px;
overflow-y: auto;
overflow-x: hidden;
padding: 1rem;
}
.conv-row {
display: flex;
gap: .75rem;
margin-bottom: 1rem;
width: 100%;
align-items: flex-start;
}
.conv-npc .conv-bubble {
background-color: rgb(255 255 255 / 90%);
border: 1px solid var(--conv-secondary);
border-radius: .65em;
padding: .5rem 1rem;
flex: 1;
animation: conv-slick-up .25s ease-out;
will-change: opacity, transform;
}
.conv-portrait {
flex: none;
width: 64px;
height: 64px;
border-radius: .65em;
overflow: hidden;
border: 1px solid var(--conv-secondary);
background-color: #000;
}
.conv-portrait img {
width: 100%;
height: 100%;
object-fit: cover;
}
.conv-name {
display: block;
color: var(--conv-link);
font-size: .85rem;
margin-bottom: .25rem;
font-weight: bold;
}
.conv-player {
justify-content: flex-end;
}
.conv-player .conv-bubble {
background-color: var(--conv-primary);
color: #fff;
padding: .5rem 1rem;
border-radius: .65em;
max-width: 80%;
animation: conv-slick-up .25s ease-out;
}
.conv-action {
text-align: center;
color: var(--conv-secondary);
font-size: .85rem;
margin-bottom: 1rem;
width: 100%;
font-style: italic;
}
.conv-spacer {
height: 1rem;
}
.conv-options-list {
display: flex;
flex-direction: column;
align-items: flex-end;
gap: .5rem;
margin-top: .5rem;
}
.conv-option {
background-color: var(--conv-secondary);
border: 1px solid var(--conv-border);
color: #fff;
padding: .5rem .75rem;
border-radius: .65em;
text-align: right;
font-size: .85rem;
cursor: pointer;
max-width: 80%;
position: relative;
transition: background-color .25s, border-color .25s, transform .25s;
animation: conv-pulse 3s infinite ease-in-out;
}
.conv-option::after {
content: "↩";
position: absolute;
top: 50%;
right: -1.5em;
transform: translateY(-50%);
opacity: 0;
transition: opacity .25s ease-in, right .35s cubic-bezier(0.34, 1.56, 0.64, 1);
color: var(--conv-primary);
font-size: 1.5em;
line-height: 1;
}
.conv-option:hover {
animation: none;
background-color: #5a6268;
border-color: #fff;
transform: translateX(-2em) scale(.95);
}
.conv-option:hover::after {
opacity: 1;
right: -1.2em;
}
.conv-option-selected {
background-color: var(--conv-primary);
color: #fff;
padding: .5rem .75rem;
border-radius: .65em;
text-align: right;
font-size: .85rem;
font-weight: bold;
max-width: 80%;
margin-left: auto;
animation: conv-pop-in .25s cubic-bezier(0.34, 1.56, 0.64, 0.777);
transition: opacity .25s;
}
.conv-option-selected:hover {
opacity: .75;
}
.conv-response-wrapper {
display: flex;
flex-direction: column;
gap: .5rem;
margin-top: .5rem;
width: 100%;
}
.conv-frame .mw-collapsible:not(.mw-collapsed) {
padding: 0 !important;
}
@keyframes conv-pulse {
0% {
border-color: var(--conv-secondary);
box-shadow: 0 0 0px transparent;
}
50% {
border-color: var(--conv-border);
box-shadow: 0 0 8px var(--conv-secondary);
}
100% {
border-color: var(--conv-secondary);
box-shadow: 0 0 0px transparent;
}
}
@keyframes conv-pop-in {
0% {
opacity: 0;
transform: scale(.9) translateX(1em);
}
100% {
opacity: 1;
transform: scale(1) translateX(0);
}
}
@keyframes conv-slick-up {
from {
opacity: 0;
transform: translateY(6px);
}
80% {
transform: translateY(-1px);
}
to {
opacity: 1;
transform: translateY(0);
}
}