.editors_section {
margin-block-start: 1rem;
margin-block-end: 1rem;
}
.editors_carousel {
display: flex;
gap: 1rem;
overflow-x: auto;
scroll-behavior: smooth;
scrollbar-width: none;
-webkit-overflow-scrolling: touch;
padding: 0.5rem;
scroll-behavior: auto !important;
cursor: grab;
}
.editors_carousel::-webkit-scrollbar {
display: none;
}
.editor_card_wrapper {
position: relative;
flex-shrink: 0;
}
.editor_card {
display: flex;
flex-direction: column;
align-items: center;
gap: 0.5rem;
text-decoration: none;
color: inherit;
cursor: pointer;
}
.editor_avatar {
width: 80px;
height: 80px;
border-radius: 50%;
overflow: hidden;
border: 3px solid transparent;
padding: 2px;
background: var(--color-eee);
}
.editor_card.has-story .editor_avatar {
background: linear-gradient(45deg, #3b82f6, #8b5cf6);
}
.editor_avatar img {
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 50%;
}
.editor_name {
font-size: 0.875rem;
text-align: center;
max-width: 80px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.add_story_btn {
position: absolute;
bottom: 23px;
inset-inline-end: -2px;
width: 30px;
height: 30px;
border-radius: 50%;
background: var(--color-2196f3);
color: var(--color-fff);
border: 2px solid var(--color-fff);
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: transform 0.2s;
}
.add_story_btn:hover {
transform: scale(1.1);
}
.story_modal, .add_story_modal, .story_editor_modal {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.95);
z-index: 101;
}
.story_container {
position: relative;
width: 100%;
height: 100%;
max-width: 500px;
margin: 0 auto;
display: flex;
align-items: center;
justify-content: center;
}
.story_close {
position: absolute;
top: 20px;
inset-inline-end: 20px;
width: 40px;
height: 40px;
background: rgba(255, 255, 255, 0.1);
border: none;
border-radius: 50%;
color: #fff;
font-size: 24px;
cursor: pointer;
z-index: 10;
display: flex;
align-items: center;
justify-content: center;
}
.story_nav {
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 40px;
height: 40px;
background: rgba(255, 255, 255, 0.1);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
color: #fff;
transition: opacity 0.3s;
}
.story_nav.prev {
left: 0;
}
.story_nav.next {
right: 0;
}
.story_nav:hover, .story_close:hover {
background: rgba(255, 255, 255, 0.2);
}
.story_nav.disabled {
opacity: 0.3;
cursor: not-allowed;
}
.story_content {
position: relative;
width: 100%;
height: 90vh;
height: 90dvh;
max-width: 400px;
background: #1a1a1a;
border-radius: 10px;
overflow: hidden;
transition: transform 0.4s cubic-bezier(0.4, 0.0, 0.2, 1);
transform-style: preserve-3d;
}
.story_content.slide-out-left {
transform: rotateY(-90deg) translateX(-100%);
}
.story_content.slide-in-right {
transform: rotateY(90deg) translateX(100%);
}
.story_content.slide-out-right {
transform: rotateY(90deg) translateX(100%);
}
.story_content.slide-in-left {
transform: rotateY(-90deg) translateX(-100%);
}
.story_header {
position: absolute;
top: 0;
left: 0;
right: 0;
padding: 30px 15px 15px 15px;
background: linear-gradient(to bottom, rgba(0,0,0,0.7), transparent);
z-index: 5;
display: flex;
justify-content: space-between;
align-items: center;
}
.story_user_info {
display: flex;
align-items: center;
gap: 10px;
text-decoration: none;
color: inherit;
}
.story_user_avatar {
width: 32px;
height: 32px;
border-radius: 50%;
object-fit: cover;
}
.story_user_name {
color: #fff;
font-size: 14px;
}
.story_time {
color: rgba(255, 255, 255, 0.7);
font-size: 14px;
}
.story_controls {
display: flex;
gap: 0;
}
.story_play_btn,
.story_pause_btn,
.story_sound_toggle,
.story_menu_btn {
width: 30px;
height: 30px;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
}
.story_progress_container {
position: absolute;
top: 15px;
left: 15px;
right: 15px;
height: 3px;
display: flex;
gap: 4px;
}
.story_progress_bar {
flex: 1;
height: 100%;
background: rgba(255, 255, 255, 0.3);
border-radius: 2px;
overflow: hidden;
}
.story_progress {
height: 100%;
background: #fff;
width: 0;
transition: width linear;
}
.story_media_container {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
}
.story_media_container img,
.story_media_container video {
max-width: 100%;
max-height: 100%;
object-fit: contain;
}
.story_overlay_content {
position: absolute;
top: 80px;
left: 0;
right: 0;
bottom: 80px;
pointer-events: none;
}
.story_text_element {
position: absolute;
font-weight: 600;
text-shadow: 0 1px 3px rgba(0,0,0,0.8);
pointer-events: none;
transform-origin: center;
}
.story_text_element.typewriter {
animation: typewriter 2s steps(30, end);
}
.story_text_element.fade {
animation: fadeIn 1s ease-in;
}
.story_text_element.slide {
animation: slideIn 0.5s ease-out;
}
@keyframes typewriter {
from { width: 0; }
to { width: 100%; }
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes slideIn {
from { transform: translateY(20px); opacity: 0; }
to { transform: translateY(0); opacity: 1; }
}
.story_sticker_element {
position: absolute;
pointer-events: auto;
cursor: move;
transform-origin: center;
transition: transform 0.2s;
}
.story_sticker_element.dragging {
z-index: 102;
cursor: grabbing;
}
.story_footer {
position: absolute;
bottom: 0;
left: 0;
right: 0;
padding: 20px 15px;
background: linear-gradient(to top, rgba(0,0,0,0.7), transparent);
display: flex;
align-items: center;
justify-content: space-between;
}
.story_like_btn {
display: flex;
align-items: center;
gap: 8px;
color: #fff;
transition: all 0.3s;
}
.story_like_btn.liked {
color: var(--color-e60000);
}
.story_like_btn.liked svg {
fill: var(--color-e60000);
}
.like_count, .view_count {
font-size: 14px;
color: #fff;
}
.story_stats {
display: flex;
align-items: center;
gap: 12px;
color: var(--color-fff);
font-size: 14px;
}
.story_caption {
position: absolute;
bottom: 70px;
left: 15px;
right: 15px;
color: #fff;
text-align: center;
font-size: 14px;
text-shadow: 0 1px 3px rgba(0,0,0,0.8);
}
.story_menu_dropdown {
position: absolute;
top: 60px;
inset-inline-end: 15px;
background: var(--color-fff);
border-radius: 8px;
padding: 8px 0;
min-width: 180px;
box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.story_menu_dropdown button {
width: 100%;
padding: 12px 16px;
border: none;
background: none;
text-align: left;
cursor: pointer;
display: flex;
align-items: center;
gap: 12px;
color: var(--color-333);
font-size: 14px;
}
.story_menu_dropdown button:hover {
background: rgba(0,0,0,0.05);
}
.add_story_modal {
display: none;
align-items: center;
justify-content: center;
}
.add_story_container {
background: var(--color-fff);
border-radius: 12px;
width: 90%;
max-width: 450px;
max-height: 90vh;
overflow-y: auto;
}
.add_story_header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 20px;
border-bottom: 1px solid var(--color-eee);
}
.add_story_header h3 {
margin: 0;
font-size: 20px;
}
.add_story_close {
background: none;
border: none;
font-size: 28px;
cursor: pointer;
color: var(--color-999);
width: 32px;
height: 32px;
display: flex;
align-items: center;
justify-content: center;
}
#storyUploadForm {
padding: 20px;
}
.story_creation_options {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 15px;
margin-bottom: 20px;
}
.creation_option {
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
padding: 20px;
border: 2px solid var(--color-eee);
border-radius: 12px;
background: none;
cursor: pointer;
transition: all 0.3s;
}
.creation_option:hover {
border-color: var(--color-2196f3);
background: rgba(33, 150, 243, 0.15);
}
.creation_option.active {
border-color: var(--color-2196f3);
background: rgba(33, 150, 243, 0.25);
}
.text_story_display {
background: linear-gradient(45deg, #405de6, #5851db);
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
padding: 20px;
box-sizing: border-box;
}
.text_story_textContent {
color: #ffffff;
font-size: 24px;
font-family: Arial, sans-serif;
text-align: center;
max-width: 90%;
word-break: break-word;
line-height: 1.4;
}
.file_upload_label {
display: block;
cursor: pointer;
position: relative;
}
.file_upload_label input {
display: none;
}
.upload_placeholder {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 10px;
padding: 40px;
border: 2px dashed var(--color-999);
border-radius: 8px;
text-align: center;
color: var(--color-999);
}
.upload_preview {
position: relative;
border-radius: 8px;
overflow: hidden;
}
.upload_preview img,
.upload_preview video {
width: 100%;
height: auto;
max-height: 400px;
object-fit: contain;
}
.camera_container {
position: relative;
width: 100%;
aspect-ratio: 9/16;
max-height:300px;
background: #000;
border-radius: 8px;
overflow: hidden;
}
#cameraVideo {
width: 100%;
height: 100%;
object-fit: contain;
background: #000;
}
.camera_controls {
position: absolute;
bottom: 20px;
left: 0;
right: 0;
display: flex;
justify-content: center;
align-items: center;
gap: 30px;
}
.camera_capture_btn {
width: 70px;
height: 70px;
border-radius: 50%;
border: 4px solid var(--color-fff);
background: var(--color-fff);
cursor: pointer;
position: relative;
transition: all 0.3s;
}
.camera_capture_btn:active {
transform: scale(0.95);
}
.capture_icon {
width: 56px;
height: 56px;
border-radius: 50%;
background: var(--color-e60000);
margin: 2px;
}
.camera_capture_btn.recording .capture_icon {
border-radius: 20%;
background: var(--color-e60000);
animation: pulse 1s infinite;
}
@keyframes pulse {
0% { opacity: 1; }
50% { opacity: 0.7; }
100% { opacity: 1; }
}
.camera_switch_btn,
.camera_flash_btn {
width: 44px;
height: 44px;
border-radius: 50%;
border: none;
background: rgba(255, 255, 255, 0.3);
color: var(--color-fff);
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
}
.text_story_canvas {
width: 100%;
aspect-ratio: 9/16;
max-height: 400px;
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
padding: 20px;
background: linear-gradient(45deg, #405de6, #5851db);
position: relative;
overflow: hidden;
}
.text_story_content {
width: 100%;
text-align: center;
font-size: 24px;
color: var(--color-fff);
font-weight: 600;
min-height: 50px;
outline: none;
}
.text_story_content:empty:before {
content: attr(placeholder);
color: rgba(255, 255, 255, 0.7);
}
.text_story_controls {
margin-top: 15px;
}
.text_bg_colors {
display: flex;
gap: 10px;
margin-bottom: 15px;
justify-content: center;
}
.bg_color {
width: 40px;
height: 37px;
border-radius: 50%;
border: 3px solid transparent;
cursor: pointer;
transition: all 0.3s;
}
@media (max-width: 400px) {
.bg_color {
width: 28px;
min-width: 28px;
height: 28px;
min-height: 28px;
}
}
.bg_color:hover,
.bg_color.active {
border-color: var(--color-2196f3);
transform: scale(1.1);
}
.text_font_selector {
width: 100%;
padding: 10px;
color: var(--color-333);
background: var(--color-eee);
border: 1px solid var(--color-999);
border-radius: 8px;
}
.story_caption_section {
margin-top: 20px;
position: relative;
}
.story_caption_section textarea {
width: 100%;
padding: 12px;
border: 1px solid var(--color-eee);
border-radius: 8px;
resize: vertical;
min-height: 80px;
font-family: inherit;
}
.caption_counter {
position: absolute;
bottom: 8px;
right: 12px;
font-size: 12px;
color: var(--color-999);
}
.story_submit_btn {
width: 100%;
padding: 14px;
margin-top: 20px;
background: var(--color-2196f3);
color: var(--color-fff);
border: none;
border-radius: 8px;
font-size: 16px;
font-weight: 600;
cursor: pointer;
transition: background 0.3s;
}
.story_submit_btn:hover {
background: #0960a8;
}
.story_editor_modal {
z-index: 101;
align-items: center;
justify-content: center;
}
.story_editor_container {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
background: #000;
max-width: 600px;
margin: 0 auto;
}
.story_editor_header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 15px 20px;
background: rgba(0,0,0,0.8);
z-index: 10;
}
.editor_back_btn,
.editor_done_btn {
background: none;
border: none;
color: #fff;
font-size: 16px;
cursor: pointer;
padding: 8px 16px;
}
.editor_done_btn {
background: var(--color-2196f3);
border-radius: 20px;
}
.editor_tools {
display: flex;
gap: 12px;
}
.tool_text_btn,
.tool_sticker_btn,
.tool_draw_btn,
.tool_music_btn,
.tool_duration_btn {
width: 40px;
height: 40px;
border-radius: 50%;
background: rgba(255,255,255,0.1);
border: none;
color: #fff;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.3s;
}
.tool_text_btn:hover,
.tool_sticker_btn:hover,
.tool_draw_btn:hover,
.tool_music_btn:hover,
.tool_duration_btn:hover {
background: rgba(255,255,255,0.2);
transform: scale(1.1);
}
.story_editor_canvas {
flex: 1;
position: relative;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
touch-action: pan-y pinch-zoom;
}
.canvas_container {
position: relative;
max-width: 400px;
width: 100%;
height: 90vh;
overflow: hidden;
transition: filter 0.3s;
}
.canvas_container img,
.canvas_container video {
width: 100%;
height: 100%;
object-fit: contain;
}
#drawingCanvas {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 5;
pointer-events: auto;
}
.editor_overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
pointer-events: none;
z-index: 10;
}
.editor_overlay .story_text_element,
.editor_overlay .story_sticker_element {
pointer-events: auto;
cursor: move;
transition: none;
}
.editor_overlay .story_text_element.editing,
.editor_overlay .story_sticker_element.editing {
outline: 2px solid var(--color-2196f3);
outline-offset: 5px;
}
.resize_handle {
position: absolute;
width: 20px;
height: 20px;
background: var(--color-2196f3);
border: 2px solid var(--color-fff);
border-radius: 50%;
cursor: nwse-resize;
}
.resize_handle.tl { top: -10px; left: -10px; cursor: nw-resize; }
.resize_handle.tr { top: -10px; right: -10px; cursor: ne-resize; }
.resize_handle.bl { bottom: -10px; left: -10px; cursor: sw-resize; }
.resize_handle.br { bottom: -10px; right: -10px; cursor: se-resize; }
.rotate_handle {
position: absolute;
top: -30px;
left: 50%;
transform: translateX(-50%);
width: 24px;
height: 24px;
background: var(--color-2196f3);
border: 2px solid var(--color-fff);
border-radius: 50%;
cursor: pointer;
}
.text_controls {
position: absolute;
bottom: 20px;
left: 20px;
right: 20px;
background: rgba(0,0,0,0.9);
border-radius: 12px;
padding: 20px;
max-height: 50vh;
overflow-y: auto;
}
.text_input {
width: 100%;
padding: 12px;
border: 1px solid var(--color-555);
background: var(--color-333);
color: var(--color-fff);
border-radius: 8px;
margin-bottom: 15px;
}
.text_style_controls {
display: flex;
gap: 8px;
margin-bottom: 15px;
flex-wrap: wrap;
}
.text_style_controls button {
width: 36px;
height: 36px;
border: 1px solid var(--color-555);
background: var(--color-333);
color: var(--color-fff);
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
}
.text_style_controls button.active {
background: var(--color-2196f3);
border-color: var(--color-2196f3);
}
.text_font_select {
width: 100%;
padding: 8px;
margin-bottom: 15px;
border: 1px solid var(--color-555);
background: var(--color-333);
color: var(--color-fff);
border-radius: 8px;
}
.text_animation_select {
display: flex;
gap: 8px;
margin-bottom: 15px;
flex-wrap: wrap;
}
.anim_option {
padding: 6px 12px;
border: 1px solid var(--color-555);
background: var(--color-333);
color: var(--color-fff);
border-radius: 20px;
cursor: pointer;
font-size: 12px;
}
.anim_option.active {
background: var(--color-2196f3);
border-color: var(--color-2196f3);
}
.color_picker {
display: flex;
gap: 8px;
margin-bottom: 15px;
flex-wrap: wrap;
}
.color_option {
width: 32px;
height: 32px;
border-radius: 50%;
border: 2px solid transparent;
cursor: pointer;
}
.color_option.active {
border-color: var(--color-fff);
}
.text_size_slider {
width: 100%;
margin-bottom: 15px;
}
.add_text_btn {
width: 100%;
padding: 12px;
background: var(--color-2196f3);
color: var(--color-fff);
border: none;
border-radius: 8px;
cursor: pointer;
}
.sticker_panel {
z-index: 102;
position: absolute;
bottom: 0;
left: 0;
right: 0;
background: rgba(0,0,0,0.95);
border-radius: 12px 12px 0 0;
max-height: 60vh;
display: flex;
flex-direction: column;
}
.sticker_categories {
display: flex;
gap: 8px;
padding: 15px;
overflow-x: auto;
border-bottom: 1px solid var(--color-555);
flex-wrap: nowrap;
}
.sticker_categories::-webkit-scrollbar {
height: 4px;
}
.sticker_categories::-webkit-scrollbar-track {
background: rgba(255, 255, 255, 0.1);
}
.sticker_categories::-webkit-scrollbar-thumb {
background: rgba(255, 255, 255, 0.3);
border-radius: 2px;
}
.sticker_cat {
padding: 8px 16px;
background: var(--color-333);
border: none;
border-radius: 20px;
color: var(--color-fff);
white-space: nowrap;
cursor: pointer;
font-size: 14px;
flex-shrink: 0;
}
.sticker_cat.active {
background: var(--color-2196f3);
}
.sticker_content {
padding: 15px;
overflow-y: auto;
flex: 1;
}
.sticker_input {
width: 100%;
padding: 12px;
border: 1px solid var(--color-555);
background: var(--color-333);
color: var(--color-fff);
border-radius: 8px;
margin-bottom: 10px;
}
.gif_grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
}
.gif_item {
aspect-ratio: 1;
background: var(--color-333);
border-radius: 8px;
overflow: hidden;
cursor: pointer;
transition: transform 0.2s;
}
.gif_item:hover {
transform: scale(1.05);
}
.gif_item img {
width: 100%;
height: 100%;
object-fit: cover;
}
.poll_creator,
.question_creator,
.quiz_creator {
background: var(--color-333);
padding: 15px;
border-radius: 8px;
}
.poll_options input,
.quiz_options input {
width: 100%;
padding: 8px;
margin-bottom: 8px;
border: 1px solid var(--color-555);
background: var(--color-222);
color: var(--color-fff);
border-radius: 4px;
}
.add_option_btn {
width: 100%;
padding: 8px;
border: 1px dashed var(--color-555);
background: none;
color: var(--color-999);
cursor: pointer;
margin-bottom: 10px;
}
.create_sticker_btn {
width: 100%;
padding: 12px;
background: var(--color-2196f3);
color: var(--color-fff);
border: none;
border-radius: 8px;
cursor: pointer;
margin-top: 10px;
}
.countdown_picker {
display: flex;
gap: 10px;
margin-bottom: 10px;
}
.countdown_picker input {
flex: 1;
padding: 8px;
border: 1px solid var(--color-555);
background: var(--color-333);
color: var(--color-fff);
border-radius: 4px;
}
.music_item {
display: flex;
justify-content: space-between;
align-items: center;
padding: 12px;
background: var(--color-333);
border-radius: 8px;
margin-bottom: 8px;
}
.music_info {
display: flex;
flex-direction: column;
}
.music_title {
color: var(--color-fff);
font-size: 14px;
font-weight: 600;
}
.music_artist {
color: var(--color-999);
font-size: 12px;
}
.music_select_btn {
padding: 6px 16px;
background: var(--color-2196f3);
color: var(--color-fff);
border: none;
border-radius: 20px;
cursor: pointer;
font-size: 12px;
}
.filter_indicator {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
z-index: 100;
pointer-events: none;
opacity: 0;
transition: opacity 0.3s ease;
}
.filter_indicator.show {
opacity: 1;
}
.filter_name {
background: rgba(0, 0, 0, 0.8);
color: #fff;
padding: 12px 24px;
border-radius: 25px;
font-size: 16px;
font-weight: 600;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
backdrop-filter: blur(10px);
white-space: nowrap;
}
@media (max-width: 768px) {
.story_close {
display: none;
}
}

.story_content {
will-change: transform, opacity;
}

@media (max-width: 768px) {
.story_editor_canvas::after {
content: '';
position: absolute;
bottom: 20px;
left: 50%;
transform: translateX(-50%);
width: 40px;
height: 4px;
background: rgba(255, 255, 255, 0.3);
border-radius: 2px;
opacity: 0;
transition: opacity 0.3s;
}
.story_editor_modal:not(.has-active-tool) .story_editor_canvas::after {
opacity: 1;
}
}
.story_editor_modal.has-active-tool .canvas_container {
touch-action: none;
}
.drawing_panel {
position: absolute;
bottom: 0;
left: 0;
right: 0;
background: rgba(0,0,0,0.95);
padding: 20px;
}
.drawing_tools {
display: flex;
flex-direction: column;
gap: 15px;
}
.brush_types {
display: flex;
gap: 10px;
justify-content: center;
}
.brush_type,
.eraser_btn {
width: 44px;
height: 44px;
border: 1px solid var(--color-555);
background: var(--color-333);
color: var(--color-fff);
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
}
.brush_type.active,
.eraser_btn.active {
background: var(--color-2196f3);
border-color: var(--color-2196f3);
}
.brush_colors {
display: flex;
gap: 10px;
justify-content: center;
}
.brush_color {
width: 32px;
height: 32px;
border-radius: 50%;
border: 2px solid transparent;
cursor: pointer;
}
.brush_color.active {
border-color: var(--color-fff);
}
.brush_size_slider {
width: 100%;
}
.clear_drawing_btn,
.undo_drawing_btn {
padding: 8px 16px;
background: var(--color-333);
color: var(--color-fff);
border: 1px solid var(--color-555);
border-radius: 8px;
cursor: pointer;
}
.duration_panel {
position: absolute;
bottom: 20px;
left: 20px;
right: 20px;
background: rgba(0,0,0,0.9);
border-radius: 12px;
padding: 20px;
}
.duration_panel h4 {
margin: 0 0 15px;
color: var(--color-fff);
font-size: 16px;
}
.duration_options {
display: flex;
gap: 10px;
justify-content: center;
}
.duration_option {
width: 60px;
height: 40px;
border: 1px solid var(--color-555);
background: var(--color-333);
color: var(--color-fff);
border-radius: 8px;
cursor: pointer;
font-size: 14px;
}
.duration_option.active {
background: var(--color-2196f3);
border-color: var(--color-2196f3);
}
.music_panel {
position: absolute;
bottom: 0;
left: 0;
right: 0;
background: rgba(0,0,0,0.95);
border-radius: 12px 12px 0 0;
max-height: 60vh;
display: flex;
flex-direction: column;
}
.music_search {
padding: 15px;
border-bottom: 1px solid var(--color-555);
}
.music_search_input {
width: 100%;
padding: 10px;
border: 1px solid var(--color-555);
background: var(--color-333);
color: var(--color-fff);
border-radius: 8px;
}
.music_list {
padding: 15px;
overflow-y: auto;
flex: 1;
}
.sticker_location,
.sticker_mention,
.sticker_hashtag,
.sticker_link,
.sticker_poll,
.sticker_question,
.sticker_quiz,
.sticker_countdown,
.sticker_music,
.sticker_addyours {
padding: 8px 16px;
background: var(--color-fff);
color: var(--color-333);
border-radius: 8px;
font-weight: 600;
display: inline-block;
text-decoration: none;
box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.sticker_gif {
max-width: 150px;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
@media (max-width: 768px) {
.editors_carousel {
padding-inline-start: 1rem;
padding-inline-end: 1rem;
}
.story_nav {
display: none;
}
.story_content {
border-radius: 0;
height: 100vh;
height: 100dvh;
max-width: 100%;
}
.canvas_container {
height: 100vh;
height: 100dvh;
}
.story_creation_options {
grid-template-columns: repeat(2, 1fr);
}
}
.story_creation_options {
position: fixed;
top: 10px;
left: 50%;
transform: translateX(-50%);
display: flex;
gap: 10px;
background: #fff;
padding: 10px;
border-radius: 25px;
z-index: 100;
}
.creation_option {
width: 40px;
height: 40px;
padding: 8px;
border: none;
font-size: 10px;
gap: 4px;
}
.creation_option span {
display: none;
}
.text_editor_toolbar {
background: rgba(0,0,0,0.95);
border-radius: 12px;
padding: 15px;
max-height: 70vh;
overflow-y: auto;
}
.text_toolbar_row {
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 12px;
flex-wrap: wrap;
}
.text_align_buttons {
display: flex;
gap: 4px;
background: rgba(255,255,255,0.1);
padding: 4px;
border-radius: 6px;
}
.align_btn {
width: 32px;
height: 32px;
border: none;
background: transparent;
color: #fff;
border-radius: 4px;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
}
.align_btn.active {
background: var(--color-2196f3);
}
.text_bg_toggle,
.clear_text_style {
width: 36px;
height: 36px;
border: 1px solid var(--color-555);
background: transparent;
color: #fff;
border-radius: 8px;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
}
.text_bg_toggle.active {
background: var(--color-2196f3);
border-color: var(--color-2196f3);
}
.text_size_control {
display: flex;
align-items: center;
gap: 10px;
flex: 1;
}
.size_label,
.size_value {
color: #fff;
font-size: 14px;
}
.text_size_slider {
flex: 1;
}
.text_animations,
.text_effects {
display: flex;
gap: 6px;
flex-wrap: wrap;
}
.anim_btn,
.effect_btn {
padding: 6px 12px;
border: 1px solid var(--color-555);
background: transparent;
color: #fff;
border-radius: 20px;
cursor: pointer;
font-size: 12px;
}
.anim_btn.active,
.effect_btn.active {
background: var(--color-2196f3);
border-color: var(--color-2196f3);
}
.color_picker_advanced {
display: flex;
align-items: center;
gap: 10px;
flex: 1;
}
.color_input {
width: 50px;
height: 36px;
border: 1px solid var(--color-555);
border-radius: 6px;
cursor: pointer;
}
.preset_colors {
display: flex;
gap: 6px;
}
.color_preset {
width: 28px;
height: 28px;
border-radius: 50%;
border: 2px solid transparent;
cursor: pointer;
}
.color_preset:hover {
border-color: #fff;
}
.text-glow {
text-shadow: 0 0 10px currentColor, 0 0 20px currentColor;
}
.text-neon {
text-shadow: 0 0 10px currentColor, 0 0 20px currentColor, 0 0 30px currentColor, 0 0 40px currentColor;
}
.text-sparkle {
animation: sparkle 1.5s linear infinite;
}
@keyframes sparkle {
0%, 100% { opacity: 1; }
50% { opacity: 0.5; }
}
.text-pixel {
font-family: 'Courier New', monospace;
image-rendering: pixelated;
letter-spacing: 2px;
}
.story_text_element.pop {
animation: pop 0.5s ease-out;
}
@keyframes pop {
0% { transform: scale(0); }
80% { transform: scale(1.1); }
100% { transform: scale(1); }
}
.story_text_element.jump {
animation: jump 0.8s ease-in-out infinite;
}
@keyframes jump {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-10px); }
}
/* Drag & Drop */
.story_upload_section.drag-over .upload_placeholder {
border-color: var(--color-2196f3);
background: rgba(33, 150, 243, 0.1);
}
/* Responsive */
@media (min-width: 769px) {
.camera_flash_btn,
.camera_switch_btn {
display: none !important;
}
}
/* Text Editor Overlay */
.text_controls_overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.95);
z-index: 102;
display: flex;
align-items: center;
justify-content: center;
}
.text_editor_container {
position: relative;
width: 100%;
height: 100%;
max-width: 450px;
display: flex;
flex-direction: column;
}
.text_editing_area {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
padding: 60px 20px 120px 20px;
position: relative;
}
.text_element_preview {
font-size: 24px;
color: #FFFFFF;
text-align: center;
outline: none;
min-width: 200px;
max-width: 100%;
padding: 10px 20px;
cursor: move;
user-select: none;
position: relative;
transform-origin: center;
transition: none;
white-space: pre-wrap;
word-break: break-word;
}
.text_element_preview:empty:before {
content: attr(placeholder);
color: rgba(255, 255, 255, 0.5);
}
.text_element_preview.with-background {
background: rgba(0, 0, 0, 0.8);
border-radius: 8px;
}
.text_size_slider_vertical {
position: absolute;
right: 20px;
top: 50%;
transform: translateY(-50%);
height: 300px;
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
}
.size_indicator {
background: rgba(255, 255, 255, 0.1);
padding: 8px 16px;
border-radius: 20px;
margin-bottom: 10px;
}
.size_value {
color: #fff;
font-size: 14px;
font-weight: 600;
}
.vertical_size_slider {
direction: rtl; 
width: 4px;
height: 200px;
background: rgba(255, 255, 255, 0.2);
outline: none;
cursor: pointer;
}
.vertical_size_slider::-webkit-slider-thumb {
-webkit-appearance: none;
width: 20px;
height: 20px;
background: #FFFFFF;
border-radius: 50%;
cursor: pointer;
}
.size_visual {
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
margin-top: 10px;
}
.size_small {
font-size: 14px;
color: rgba(255, 255, 255, 0.5);
}
.size_large {
font-size: 24px;
color: rgba(255, 255, 255, 0.5);
}
.text_editor_bottom_controls {
position: absolute;
bottom: 30px;
left: 50%;
transform: translateX(-50%);
display: flex;
gap: 15px;
background: rgba(255, 255, 255, 0.1);
padding: 10px;
border-radius: 30px;
backdrop-filter: blur(10px);
}
.text_control_btn {
width: 50px;
height: 50px;
border-radius: 50%;
border: none;
background: rgba(255, 255, 255, 0.2);
color: #fff;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.3s;
font-size: 16px;
font-weight: 600;
}
.text_control_btn:hover {
background: rgba(255, 255, 255, 0.3);
transform: scale(1.1);
}
.text_control_btn.active {
background: var(--color-2196f3);
}
.color_preview_btn {
width: 30px;
height: 30px;
border-radius: 50%;
background: linear-gradient(45deg, #fff 50%, #000 50%);
border: 2px solid #fff;
}
.bg_icon {
padding: 2px 6px;
background: #000;
color: #fff;
border-radius: 4px;
font-size: 14px;
}
.text_control_panels {
position: absolute;
bottom: 100px;
left: 50%;
transform: translateX(-50%);
width: 90%;
max-width: 400px;
}
.control_panel {
background: rgba(0, 0, 0, 0.9);
padding: 20px;
border-radius: 16px;
backdrop-filter: blur(10px);
}
.align_options {
display: flex;
gap: 10px;
justify-content: center;
}
.align_option {
width: 50px;
height: 50px;
border: 2px solid rgba(255, 255, 255, 0.3);
background: transparent;
border-radius: 12px;
color: #fff;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
transition: all 0.3s;
}
.align_option.active {
background: var(--color-2196f3);
border-color: var(--color-2196f3);
}
.effect_options {
display: flex;
gap: 10px;
flex-wrap: wrap;
justify-content: center;
}
.effect_option {
padding: 8px 20px;
border: 2px solid rgba(255, 255, 255, 0.3);
background: transparent;
border-radius: 20px;
color: #fff;
cursor: pointer;
font-size: 14px;
transition: all 0.3s;
}
.effect_option.active {
background: var(--color-2196f3);
border-color: var(--color-2196f3);
}
.color_presets {
display: grid;
grid-template-columns: repeat(6, 1fr);
gap: 10px;
}
.color_preset {
width: 50px;
height: 50px;
border-radius: 12px;
cursor: pointer;
border: 3px solid transparent;
transition: all 0.3s;
position: relative;
overflow: hidden;
}
.color_preset::before {
content: 'Aa';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-weight: 600;
font-size: 16px;
}
.color_preset.active {
border-color: #fff;
transform: scale(1.1);
}
.color_preset:nth-child(1) { background: #000; }
.color_preset:nth-child(1)::before { color: #fff; }
.color_preset:nth-child(2) { background: #fff; }
.color_preset:nth-child(2)::before { color: #000; }
.color_preset:nth-child(3) { background: #FF0066; }
.color_preset:nth-child(3)::before { color: #fff; }
.color_preset:nth-child(4) { background: #0066FF; }
.color_preset:nth-child(4)::before { color: #fff; }
.color_preset:nth-child(5) { background: #FFD700; }
.color_preset:nth-child(5)::before { color: #000; }
.color_preset:nth-child(6) { background: #00D4AA; }
.color_preset:nth-child(6)::before { color: #fff; }
.text_done_btn {
position: absolute;
top: 20px;
right: 20px;
padding: 10px 24px;
background: var(--color-2196f3);
color: #fff;
border: none;
border-radius: 25px;
font-weight: 600;
cursor: pointer;
transition: all 0.3s;
}
.text_done_btn:hover {
background: #1976D2;
transform: scale(1.05);
}
.text-shadow {
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}
.text-outline {
text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
}
.text-neon {
text-shadow: 0 0 10px currentColor, 0 0 20px currentColor, 0 0 30px currentColor;
}
@media (max-width: 768px) {
.text_editing_area {
padding: 60px 20px 120px 20px;
}
.text_size_slider_vertical {
right: 10px;
}
.text_editor_bottom_controls {
bottom: 20px;
gap: 10px;
}
.text_control_btn {
width: 45px;
height: 45px;
}
}
.delete_zone {
position: absolute;
bottom: 30px;
left: 50%;
transform: translateX(-50%) translateY(100px);
width: 80px;
height: 80px;
background: rgba(244, 67, 54, 0.9);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
opacity: 0;
pointer-events: none;
z-index: 102;
}
.delete_zone.show {
opacity: 1;
transform: translateX(-50%) translateY(0);
pointer-events: auto;
}
.delete_zone.active {
transform: translateX(-50%) translateY(0) scale(1.2);
background: rgba(244, 67, 54, 1);
}
.delete_zone svg {
width: 40px;
height: 40px;
}
.story_text_element.ready-to-drag {
box-shadow: 0 0 0 2px var(--color-2196f3);
cursor: grab;
}
.story_text_element.dragging,
.story_sticker_element.dragging {
transition: none !important;
will-change: transform;
}
.text_element_preview {
cursor: text !important;
}
