/* === TEMA "GLASSMORPHISM" (Vetro Smerigliato ed Etere) - Gocce d'Etere === *//* =================================================================DESIGN & STYLESHEET - Gocce d'EtereAutore: Stefani MihaiNote: Layout custom e ottimizzazione UI/UX.Tutti i diritti riservati - Vietata la riproduzione del design.=================================================================*/:root {    --colore-sfondo-profondo: #0a0118;    --colore-testo-primario: #f0f8ff;    --colore-testo-secondario: #b0c4de;    --colore-accento-neon: #be93fd;    --colore-accento-secondario: #00d4ff;    --colore-risonanza: #f0e68c;    /* Proprietà per il Glassmorphism */    --colore-vetro: rgba(200, 200, 255, 0.1);    --sfocatura-vetro: 15px;    --bordo-vetro: 1px solid rgba(255, 255, 255, 0.18);    --gradiente-flusso: linear-gradient(120deg, var(--colore-accento-secondario), var(--colore-accento-neon), var(--colore-accento-secondario));    --ombra-testo-luce: 0 0 6px rgba(190, 147, 253, 0.8);    --ombra-box-luce: 0 0 20px rgba(0, 212, 255, 0.3), 0 0 30px rgba(190, 147, 253, 0.2);    --font-primario: 'Quicksand', sans-serif;    --font-titoli: 'Josefin Sans', sans-serif;    --raggio-bordi: 16px;     --transizione-base: all 0.4s ease-out;}* {    box-sizing: border-box;    margin: 0;    padding: 0;}body {    font-family: var(--font-primario);    background-color: var(--colore-sfondo-profondo);    color: var(--colore-testo-primario);    line-height: 1.7;    padding: 20px;    overflow-x: hidden;    background-image:        radial-gradient(at 10% 20%, hsla(269, 97%, 78%, 0.2) 0px, transparent 50%),        radial-gradient(at 80% 20%, hsla(190, 98%, 50%, 0.2) 0px, transparent 50%),        radial-gradient(at 20% 80%, hsla(269, 97%, 78%, 0.3) 0px, transparent 50%),        radial-gradient(at 90% 90%, hsla(190, 98%, 50%, 0.25) 0px, transparent 50%);    background-attachment: fixed;}.particles { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: transparent; z-index: -1; }.container {    max-width: 900px;    margin: 20px auto;    padding: 30px;    background: var(--colore-vetro);    border: var(--bordo-vetro);    border-radius: var(--raggio-bordi);    box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37);    backdrop-filter: blur(var(--sfocatura-vetro));    -webkit-backdrop-filter: blur(var(--sfocatura-vetro));}header { text-align: center; margin-bottom: 40px; }header h1 {    font-family: var(--font-titoli);    font-size: 3.2em;    font-weight: 600;    background-image: var(--gradiente-flusso);    background-size: 200% auto;    color: transparent;    -webkit-background-clip: text;    background-clip: text;    animation: textFlow 8s linear infinite;    margin: 0;}header .subtitle { font-size: 1.1em; color: var(--colore-testo-secondario); margin-top: 10px; }main { display: grid; grid-template-columns: 1fr; gap: 40px; }.section-header {    display: flex;    justify-content: space-between;    align-items: center;    border-bottom: 1px solid rgba(255, 255, 255, 0.1);    margin-bottom: 20px;    padding-bottom: 10px;}.section-header.centered { justify-content: center; border-bottom: none; }.section-header h2 { font-family: var(--font-titoli); color: var(--colore-testo-primario); font-weight: 500; margin: 0; font-size: 1.8em; }.info-icon {    font-size: 1.1em;    font-weight: bold;    color: var(--colore-accento-neon);    border: 1px solid var(--colore-accento-neon);    border-radius: 50%;    width: 28px;    height: 28px;    display: flex;    justify-content: center;    align-items: center;    cursor: pointer;    transition: var(--transizione-base);}.info-icon:hover { background-color: var(--colore-accento-neon); color: var(--colore-sfondo-profondo); box-shadow: 0 0 15px var(--colore-accento-neon); transform: translateY(-2px); }.section-header.collapsible { cursor: pointer; position: relative; padding-right: 30px; }.section-header.collapsible::after { content: '↓'; position: absolute; right: 0; top: 50%; transform: translateY(-50%) rotate(0deg); font-size: 1.2em; color: var(--colore-accento-neon); transition: transform 0.4s ease; }.section-header.collapsible.active::after { transform: translateY(-50%) rotate(180deg); }.collapsible-content { max-height: 0; overflow: hidden; transition: max-height 0.6s cubic-bezier(0.16, 1, 0.3, 1), padding 0.6s cubic-bezier(0.16, 1, 0.3, 1); padding: 0 5px; }.collapsible-content.open { max-height: 1000px; padding: 20px 5px 0 5px; }.form-section .subtitle { font-size: 0.9em; color: var(--colore-testo-secondario); margin-bottom: 20px; text-align: center; }.input-field {    width: 100%;    padding: 14px 18px;    background-color: rgba(0, 0, 30, 0.4);    border: 1px solid rgba(255, 255, 255, 0.1);    border-radius: var(--raggio-bordi);    color: var(--colore-testo-primario);    font-family: var(--font-primario);    font-size: 1em;    margin-bottom: 15px;    transition: var(--transizione-base);}.input-field.textarea { resize: vertical; min-height: 120px; }.input-field::placeholder { color: var(--colore-testo-secondario); opacity: 0.8; }.input-field:focus { outline: none; border-color: rgba(190, 147, 253, 0.8); box-shadow: 0 0 10px rgba(190, 147, 253, 0.5); }.typewriter-wrapper {    position: relative;    width: 100%;    margin-bottom: 15px;    background-color: rgba(0, 0, 30, 0.4);    border: 1px solid rgba(255, 255, 255, 0.1);    border-radius: var(--raggio-bordi);    transition: var(--transizione-base);    min-height: 120px;    padding: 14px 18px;}.typewriter-wrapper:focus-within {    border-color: rgba(190, 147, 253, 0.8);    box-shadow: 0 0 10px rgba(190, 147, 253, 0.5);}#typewriter-placeholder {    position: absolute;    top: 14px;    left: 18px;    color: var(--colore-testo-secondario);    opacity: 0.8;    pointer-events: none;    z-index: 1;    font-size: 1em;    font-family: var(--font-primario);}.real-textarea {    position: absolute;    top: 0;    left: 0;    width: 100%;    height: 100%;    padding: 14px 18px;    z-index: 2;    background-color: transparent !important;    border: none !important;    box-shadow: none !important;    outline: none !important;    resize: none;    margin-bottom: 0;    caret-color: var(--colore-accento-neon);    color: var(--colore-testo-primario);    font-family: var(--font-primario);    font-size: 1em;}.typed-cursor { display: none; }.date-selector-wrapper { display: grid; grid-template-columns: 1fr 2fr 1fr; gap: 10px; }.action-button, .action-button-secondary {    width: 100%;    padding: 14px 20px;    border: 1px solid transparent;    background-image: var(--gradiente-flusso);    background-size: 250% auto;    background-position: left;    color: var(--colore-sfondo-profondo);    font-family: var(--font-titoli);    font-weight: 600;    text-transform: uppercase;    letter-spacing: 1px;    border-radius: var(--raggio-bordi);    cursor: pointer;    transition: all 0.5s cubic-bezier(.25,.8,.25,1);    box-shadow: 0 4px 15px rgba(0,0,0,0.2);}.action-button:hover, .action-button-secondary:hover { background-position: right; box-shadow: var(--ombra-box-luce); transform: translateY(-3px); }.category-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 15px; margin-bottom: 20px; }.search-box-wrapper { display: grid; grid-template-columns: 1fr; gap: 20px; margin-top: 20px; }.search-box { display: flex; gap: 10px; }.search-box .input-field { flex-grow: 1; margin: 0; }.search-box .action-button-secondary { width: auto; flex-shrink: 0; }/* =================================================================== *//* ============== NUOVO STILE "CARD ETEREE" PER LE GOCCE ============= *//* =================================================================== */.table-wrapper {     overflow-x: hidden; /* Nascondiamo lo scroll orizzontale non necessario */}.gocce-table {    width: 100%;    border-collapse: separate; /* Cruciale per avere spazio tra le "card" */    border-spacing: 0 20px; /* Spazio verticale di 20px tra ogni riga/card */    margin-top: 20px;}.gocce-table thead {    display: none; /* Nascondiamo le intestazioni della tabella, non servono più */}.goccia-row {    display: block; /* Trattiamo ogni riga come un blocco a sé stante */    background: var(--colore-vetro);    border: var(--bordo-vetro);    border-radius: var(--raggio-bordi);    padding: 20px 25px;    box-shadow: 0 4px 15px rgba(0,0,0,0.2);    transition: var(--transizione-base);    animation: fadeIn 0.8s ease-out forwards;}.goccia-row:hover {    transform: translateY(-5px) scale(1.02);    box-shadow: var(--ombra-box-luce);    border-color: rgba(255, 255, 255, 0.3);}.gocce-table td {    display: block; /* Ogni cella diventa un blocco */    width: 100%;    padding: 0;    border: none;    text-align: left; /* Reset allineamento */}.goccia-details-cell {    display: flex;    justify-content: space-between;    align-items: center;    flex-wrap: wrap;    gap: 10px;    font-size: 0.9em;    color: var(--colore-testo-secondario);    border-bottom: 1px solid rgba(255, 255, 255, 0.1);    padding-bottom: 15px;    margin-bottom: 15px;}.goccia-details-cell p { margin: 0; }.goccia-category { /* Adesso si riferisce a "Luogo:" e "Giorno:" */    font-weight: bold;    color: var(--colore-accento-secondario);    text-transform: none; /* Rimuoviamo il capitalize se presente */}.goccia-pensiero-cell p {    font-size: 1.1em;    line-height: 1.7;    color: var(--colore-testo-primario);    font-style: normal;    font-weight: 500;    margin: 0;}.goccia-actions-cell {    padding-top: 15px;    display: flex;    justify-content: flex-end; /* Allinea la risonanza a destra */}.resonance-wrapper {    display: flex;    align-items: center;    gap: 10px;    flex-direction: row-reverse; /* Stella a sx, numero a dx */}.resonance-count {    font-size: 1.2em;    font-weight: 500;}.resonance-trigger {    font-size: 2em; /* Stella più grande e invitante */    color: var(--colore-testo-secondario);    cursor: pointer;    transition: var(--transizione-base);    text-shadow: 0 0 10px transparent;}.resonance-trigger:hover {    color: var(--colore-risonanza);    transform: scale(1.2);}.resonance-trigger.resonated {    color: var(--colore-risonanza);    text-shadow: 0 0 8px var(--colore-risonanza), 0 0 15px var(--colore-risonanza);    animation: pulse 1.5s infinite;}/* =================================================================== *//* ============== FINE NUOVO STILE PER LE GOCCE ====================== *//* =================================================================== */.no-gocce-message {    text-align: center;    padding: 50px 20px;    border: 1px dashed rgba(255, 255, 255, 0.2);    border-radius: var(--raggio-bordi);    margin-top: 20px;    color: var(--colore-testo-secondario);}.modal-overlay {    position: fixed;    top: 0; left: 0;    width: 100%; height: 100%;    background: rgba(10, 1, 24, 0.6);    backdrop-filter: blur(8px);    display: flex; justify-content: center; align-items: center;    padding: 20px; z-index: 1000;    opacity: 0; visibility: hidden;    transition: opacity 0.4s ease, visibility 0.4s ease;}.modal-overlay.visible { opacity: 1; visibility: visible; }.modal-content {    background: var(--colore-vetro);    border: var(--bordo-vetro);    padding: 30px;    border-radius: var(--raggio-bordi);    box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37);    backdrop-filter: blur(var(--sfocatura-vetro));    -webkit-backdrop-filter: blur(var(--sfocatura-vetro));    max-width: 500px;    width: 100%;    position: relative;    max-height: 90vh;    overflow-y: auto;    transform: translateY(20px);    transition: transform 0.4s ease-out;}.modal-overlay.visible .modal-content { transform: translateY(0); }.modal-close { position: absolute; top: 10px; right: 15px; font-size: 2em; color: var(--colore-testo-secondario); cursor: pointer; transition: var(--transizione-base); }.modal-close:hover { color: var(--colore-accento-neon); transform: rotate(90deg); }.modal-text { display: none; }.modal-text h3 { margin-bottom: 15px; color: var(--colore-accento-neon); font-family: var(--font-titoli); }.notification-popup {    position: fixed;    bottom: 20px; left: 50%;    transform: translateX(-50%);    padding: 15px 25px;    background-image: var(--gradiente-flusso);    color: var(--colore-sfondo-profondo);    font-weight: bold;    border-radius: var(--raggio-bordi);    box-shadow: var(--ombra-box-luce);    z-index: 1001;    display: none;    animation: popUp 0.5s ease-out forwards;}.countdown-container {    border: var(--bordo-vetro);    border-radius: var(--raggio-bordi);    padding: 20px;    margin-top: 20px;    text-align: center;    background: rgba(0,0,0,0.2);}.countdown-title { font-family: var(--font-titoli); font-size: 1.2em; color: var(--colore-accento-neon); margin-bottom: 15px; text-transform: uppercase; letter-spacing: 1px; }#countdown-timer { display: flex; justify-content: center; gap: 20px; }.time-block { display: flex; flex-direction: column; min-width: 70px; }.time-block span { font-family: var(--font-titoli); font-size: 2.8em; font-weight: 600; line-height: 1; color: var(--colore-testo-primario); text-shadow: var(--ombra-testo-luce); }.countdown-ended { font-size: 1.5em; color: var(--colore-risonanza); animation: pulse 2s infinite; }#backToTopBtn {    display: none; position: fixed; bottom: 20px; right: 30px; z-index: 9999;    border: none; outline: none; background-color: var(--colore-accento-neon);    color: var(--colore-sfondo-profondo); cursor: pointer; padding: 10px;    border-radius: 50%; font-size: 24px; width: 50px; height: 50px;    text-align: center; line-height: 30px; text-decoration: none;    opacity: 0; transition: opacity 0.4s, visibility 0.4s; visibility: hidden;}#backToTopBtn.show { display: block; visibility: visible; opacity: 0.8; }#backToTopBtn:hover { background-color: white; opacity: 1; }.header-link, .header-link:visited, .header-link:hover, .header-link:active {    text-decoration: none;    color: inherit;    cursor: pointer;}@keyframes textFlow { to { background-position: 200% center; } }@keyframes popUp { from { transform: translate(-50%, 100px); opacity: 0; } to { transform: translate(-50%, 0); opacity: 1; } }@keyframes pulse { 0% { text-shadow: 0 0 8px var(--colore-risonanza), 0 0 15px var(--colore-risonanza); } 50% { text-shadow: 0 0 12px var(--colore-risonanza), 0 0 25px var(--colore-risonanza); } 100% { text-shadow: 0 0 8px var(--colore-risonanza), 0 0 15px var(--colore-risonanza); } }@keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }@media (max-width: 768px) {    body { padding: 10px; }    header h1 { font-size: 2.2em; }    .container { padding: 20px; }    /* La responsività della tabella/card è già gestita dalle regole principali, non servono media query specifiche */}@media (max-width: 480px) {    .time-block span { font-size: 2em; }    .time-block { min-width: 50px; }    #countdown-timer { gap: 10px; }}#webgl-background {    position: fixed;    top: 0;    left: 0;    width: 100%;    height: 100%;    z-index: -2;    pointer-events: none;    outline: none;}