Spaces:
Running
Running
| :root { | |
| --default-font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; | |
| --rose: #ff0069ff; | |
| --violet-jtc: #542344ff; | |
| --steel-blue: #2d82b7ff; | |
| --magnolia: #fcf7ffff; | |
| --pearl: #e6e1c5ff; | |
| --card-size: 0.6; | |
| --card-effect: linear-gradient(45deg, #0006, #fff3 70%); | |
| font-family: var(--default-font-family); | |
| } | |
| body { | |
| margin: 0; | |
| background-size: 50%; | |
| background-repeat: no-repeat; | |
| background-position: left bottom; | |
| background-color: #111; | |
| height: 100vh; | |
| } | |
| dialog a { | |
| text-decoration: none; | |
| font-weight: bold; | |
| color: white; | |
| } | |
| dialog#welcome { | |
| max-width: 50vw; | |
| } | |
| body.background-01 { | |
| /* background-image: url("./images/background-02.png"), linear-gradient(270deg, #111 0%, #3c5462 90%); */ | |
| background-image: linear-gradient(270deg, #111 0%, #607d8b 90%); | |
| } | |
| body.background-02 { | |
| /* background-image: url("./images/background-02.png"), linear-gradient(270deg, #111 0%, #3c5462 90%); */ | |
| background-image: linear-gradient(270deg, #111 0%, #3c5462 90%); | |
| } | |
| body.background-03 { | |
| /* background-image: url("./images/background-02.png"), linear-gradient(270deg, #111 0%, #3c5462 90%); */ | |
| background-image: linear-gradient(270deg, #111 0%, #3c5462 90%); | |
| } | |
| body.background-04 { | |
| background-image: linear-gradient(270deg, #111 0%, #009688 90%); | |
| } | |
| body.background-05 { | |
| background-image: linear-gradient(270deg, #111 0%, #ac1444 90%); | |
| } | |
| body.background-06 { | |
| background-image: linear-gradient(270deg, #111 0%, #795548 90%); | |
| } | |
| #fortune-tellers { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr 1fr; | |
| gap: 1rem; | |
| } | |
| /* | |
| .fortune-teller-profile { | |
| grid-template-rows: 30vh; | |
| grid-template-columns: 1fr 1fr; | |
| grid-template-areas:'picture deck' | |
| 'bio bio'; | |
| max-width: min-content; | |
| margin-block: 1rem; | |
| display: grid; | |
| overflow: auto; | |
| align-self: center; | |
| justify-items: center; | |
| } */ | |
| .fortune-teller-profile { | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| opacity: 0.3; | |
| filter: grayscale(); | |
| border-radius: 50%; | |
| border: 3px solid #fff3; | |
| box-shadow: 0 0 20px #fff0; | |
| transition: opacity 0.5s allow-discrete, box-shadow 1s; | |
| aspect-ratio: 1; | |
| position: relative; | |
| width: 100%; | |
| max-height: 20vh; | |
| overflow: hidden; | |
| cursor: url("./icons/hand.png") 19 4, default; | |
| } | |
| .fortune-teller-profile.selected { | |
| opacity: 1; | |
| filter: grayscale(0); | |
| box-shadow: 0 0 20px #ffff; | |
| } | |
| textarea { | |
| background-color: transparent; | |
| border: 0; | |
| border-right: 1px solid #fff6; | |
| font-size: 1rem; | |
| min-width: 60lvw; | |
| max-width: 80lvw; | |
| font-size: clamp(1rem, 5vh, 2rem); | |
| color: inherit; | |
| } | |
| textarea:focus-visible { | |
| outline: 0; | |
| border-right: 1px solid #fff9; | |
| } | |
| .fortune-teller-profile p { | |
| grid-area: bio; | |
| } | |
| .fortune-teller-profile .fortune-teller-avatar { | |
| display: block; | |
| aspect-ratio: 1; | |
| height: 100%; | |
| border-radius: 50%; | |
| } | |
| .fortune-teller-profile .fortune-teller-deck-back { | |
| display: none; | |
| grid-area: deck; | |
| border-radius: 10%; | |
| } | |
| /* | |
| .fortune-teller-profile img { | |
| display: block; | |
| height: 100%; | |
| width: auto; | |
| } */ | |
| .fortune-teller-buttons { | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| } | |
| #cards-container { | |
| position: absolute; | |
| inset: 0; | |
| overflow: hidden; | |
| } | |
| .card { | |
| display: flex; | |
| justify-content: flex-start; | |
| align-items: center; | |
| flex-direction: column-reverse; | |
| transition: top 0.7s, left 0.7s, rotate 0.5s; | |
| transition-timing-function: cubic-bezier(0, -0.28, 0.75, -0.21); | |
| width: 512px; | |
| height: 768px; | |
| background-image: linear-gradient(0deg, #000, #fff); | |
| border-radius: 6%; | |
| position: absolute; | |
| transform: translate(-50%, -50%) scale(var(--card-size)) rotateY(0deg); | |
| border: 3px solid wheat; | |
| box-shadow: 0 0 10px black; | |
| top: 50vh; | |
| left: 50lvw; | |
| } | |
| .card.rotated { | |
| transform: translate(-50%, -50%) scale(var(--card-size)) rotateY(90deg); | |
| } | |
| .card.flipped h2 { | |
| display: none; | |
| } | |
| button { | |
| cursor: url("./icons/hand.png") 19 4, default; | |
| width: 4rem; | |
| height: 4rem; | |
| background-color: #3336; | |
| border-radius: 50%; | |
| border: 0; | |
| backdrop-filter: blur(10px); | |
| background-image: none; | |
| font-size: 2rem; | |
| color: white; | |
| background-size: 3rem; | |
| background-position: center; | |
| } | |
| button.continue-button { | |
| background-image: url(./icons/play.svg); | |
| } | |
| div.toolbar { | |
| display: flex; | |
| align-items: center; | |
| justify-content: flex-end; | |
| padding: 1rem 0; | |
| } | |
| #settings-button { | |
| letter-spacing: 3px; | |
| font-size: 1rem; | |
| } | |
| #close-settings-button { | |
| font-size: 1.5rem; | |
| color: #fff9; | |
| } | |
| div.horizontal-buttons { | |
| display: flex; | |
| justify-content: space-between; | |
| } | |
| .card h2 { | |
| text-align: center; | |
| background-image: linear-gradient(0deg, #fff 0%, #fff3 140%); | |
| border-radius: 15%; | |
| padding: 4px 5px; | |
| text-shadow: 0 0 3px #333; | |
| color: #111; | |
| border: 1px solid #fff6; | |
| } | |
| body.background-01 .card { | |
| background-image: var(--card-effect), url(./images/deck-01.jpg) | |
| } | |
| body.background-01 .card.flipped { | |
| background-image: linear-gradient(45deg, #0006, #fff3 70%), url(./images/deck-01-back.png); | |
| } | |
| body.background-02 .card { | |
| background-image: linear-gradient(45deg, #0006, #fff3 70%), url(./images/deck-02.jpg) | |
| } | |
| body.background-02 .card.flipped { | |
| background-image: linear-gradient(45deg, #0006, #fff3 70%), url('./images/deck-02-back.png'); | |
| } | |
| body.background-03 .card { | |
| background-image: linear-gradient(45deg, #0006, #fff3 70%), url(./images/deck-03.jpg) | |
| } | |
| body.background-03 .card.flipped { | |
| background-image: linear-gradient(45deg, #0006, #fff3 70%), url('./images/deck-03-back.png'); | |
| } | |
| body.background-05 .card { | |
| background-image: linear-gradient(45deg, #0006, #fff3 70%), url(./images/deck-05.jpg) | |
| } | |
| body.background-05 .card.flipped { | |
| background-image: linear-gradient(45deg, #0006, #fff3 70%), url('./images/deck-05-back.png'); | |
| } | |
| body.background-04 .card { | |
| background-image: url(./images/deck-04.jpg) | |
| } | |
| body.background-04 .card.flipped { | |
| background-image: url('./images/deck-04-back.png'); | |
| } | |
| body.background-06 .card { | |
| background-image: url(./images/deck-06.jpg) | |
| } | |
| body.background-06 .card.flipped { | |
| background-image: url('./images/deck-06-back.png'); | |
| } | |
| body.background-07 .card { | |
| background-image: url(./images/deck-07.jpg) | |
| } | |
| body.background-07 .card.flipped { | |
| background-image: url('./images/deck-07-back.png'); | |
| } | |
| dialog { | |
| cursor: url("./icons/hand-soft.png") 19 4, default; | |
| font-size: 1rem; | |
| backdrop-filter: blur(10px); | |
| background-image: linear-gradient(0deg, #fff3, transparent); | |
| border-radius: 2rem; | |
| border: #fff1 solid 2px; | |
| background-color: transparent; | |
| padding: 1rem 2rem 2rem 2rem; | |
| text-align: center; | |
| color: white; | |
| text-shadow: 0 0 5px #fffc; | |
| } | |
| div.tag { | |
| position: absolute; | |
| bottom: 10px; | |
| font-size: 1rem; | |
| background-image: linear-gradient(45deg, #CDDC39, #8BC34A); | |
| padding: 0.2rem 1rem; | |
| border-radius: 1rem; | |
| font-family: monospace; | |
| color: #333; | |
| text-shadow: 0 0 1px #444; | |
| } | |
| div.tag.human { | |
| background-image: linear-gradient(45deg, #FFEB3B, #ff9800); | |
| } | |
| div.tag.cpu { | |
| background-image: linear-gradient(45deg, #2196F3, #00BCD4); | |
| } | |
| /* DIALOGS */ | |
| /* Open state of the dialog */ | |
| dialog[open] { | |
| opacity: 1; | |
| } | |
| /* Closed state of the dialog */ | |
| dialog { | |
| opacity: 0; | |
| transition: all 0.7s allow-discrete; | |
| } | |
| /* Before-open state */ | |
| /* Needs to be after the previous dialog[open] rule to take effect, | |
| as the specificity is the same */ | |
| @starting-style { | |
| dialog[open] { | |
| opacity: 0; | |
| } | |
| } | |
| /* Transition the :backdrop when the dialog modal is promoted to the top layer */ | |
| dialog::backdrop { | |
| background-color: rgba(0, 0, 0, 0); | |
| transition: all 0.7s allow-discrete; | |
| } | |
| dialog[open]::backdrop { | |
| background-color: rgb(0 0 0 / 25%); | |
| } | |
| /* This starting-style rule cannot be nested inside the above selector | |
| because the nesting selector cannot represent pseudo-elements. */ | |
| @starting-style { | |
| dialog[open]::backdrop { | |
| background-color: rgb(0 0 0 / 0%); | |
| } | |
| } | |
| dialog div { | |
| text-align: center; | |
| color: white; | |
| } | |
| #settings div { | |
| text-align: left; | |
| font-size: 1.3rem; | |
| } | |
| #settings h2 { | |
| font-weight: 400; | |
| font-size: 1.2rem; | |
| } | |
| div.setting { | |
| margin: 2rem 0; | |
| } | |
| div.setting label { | |
| display: block; | |
| } | |
| div.setting input { | |
| display: block; | |
| font-size: 1.3rem; | |
| width: 42ch; | |
| background: #fff1; | |
| color: #cddc39; | |
| padding: 0.5rem 1rem; | |
| border: 0; | |
| font-family: 'Courier New', Courier, monospace; | |
| } | |
| /* response dialog */ | |
| #response { | |
| margin-bottom: 1vh; | |
| } | |
| div.response-container { | |
| grid-template-columns: 2fr 3fr 1fr; | |
| align-items: center; | |
| max-width: 80lvw; | |
| display: grid; | |
| } | |
| #response-output span { | |
| display: inline-block; | |
| } | |
| @keyframes bounce { | |
| 0% { | |
| transform: translateY(0); | |
| } | |
| 50% { | |
| transform: translateY(-10px); | |
| } | |
| 100% { | |
| transform: translateY(0); | |
| } | |
| } | |
| #response-output span:nth-child(1) { | |
| animation: bounce 3s infinite 0.5s; | |
| } | |
| #response-output span:nth-child(2) { | |
| animation: bounce 3s infinite 1.0s; | |
| } | |
| #response-output span:nth-child(3) { | |
| animation: bounce 3s infinite 1.5s; | |
| } | |
| div.current-fortune-teller { | |
| aspect-ratio: 1; | |
| background-size: cover; | |
| height: 30vh; | |
| display: flex; | |
| margin: auto; | |
| border-radius: 10%; | |
| } | |
| body.background-01 div.current-fortune-teller { | |
| background-image: url(./images/avatar-01.png); | |
| } | |
| body.background-02 div.current-fortune-teller { | |
| background-image: url(./images/avatar-02.png); | |
| } | |
| body.background-03 div.current-fortune-teller { | |
| background-image: url(./images/avatar-03.png); | |
| } | |
| body.background-04 div.current-fortune-teller { | |
| background-image: url(./images/avatar-04.png); | |
| } | |
| body.background-05 div.current-fortune-teller { | |
| background-image: url(./images/avatar-05.png); | |
| } | |
| body.background-06 div.current-fortune-teller { | |
| background-image: url(./images/avatar-06.png); | |
| } | |
| body.background-07 div.current-fortune-teller { | |
| background-image: url(./images/avatar-07.png); | |
| } | |
| .mystic-warning { | |
| animation: fadeIn 0.5s ease-in-out; | |
| } | |
| h1::before { | |
| content: '✨'; | |
| margin-right: 5px; | |
| } | |
| h1::after { | |
| content: '✨'; | |
| margin-left: 5px; | |
| } | |
| @keyframes fadeIn { | |
| from { | |
| opacity: 0; | |
| transform: translateY(20px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| /* Media query per schermi fino a 768px di larghezza (tipicamente tablet e smartphone in modalità landscape) */ | |
| @media screen and (max-width: 768px) { | |
| :root { | |
| --card-size: 0.4; | |
| /* Riduce la dimensione delle carte */ | |
| } | |
| #fortune-tellers { | |
| grid-template-columns: 1fr 1fr; | |
| /* Cambia il layout a 2 colonne */ | |
| gap: 0.5rem; | |
| } | |
| .fortune-teller-profile { | |
| max-height: 15vh; | |
| } | |
| dialog { | |
| padding: 0.5rem 1rem 1rem 1rem; | |
| font-size: 0.9rem; | |
| } | |
| textarea { | |
| min-width: 80lvw; | |
| font-size: clamp(0.9rem, 4vh, 1.5rem); | |
| } | |
| button { | |
| width: 3rem; | |
| height: 3rem; | |
| font-size: 1.5rem; | |
| } | |
| } | |
| /* Media query per schermi fino a 480px di larghezza (tipicamente smartphone in modalità portrait) */ | |
| @media screen and (max-width: 480px) { | |
| :root { | |
| --card-size: 0.3; | |
| /* Riduce ulteriormente la dimensione delle carte */ | |
| } | |
| #fortune-tellers { | |
| grid-template-columns: 1fr; | |
| /* Cambia il layout a 1 colonna */ | |
| } | |
| .fortune-teller-profile { | |
| max-height: 12vh; | |
| } | |
| dialog { | |
| font-size: 0.8rem; | |
| border-radius: 1rem; | |
| } | |
| div.response-container { | |
| grid-template-columns: 1fr; | |
| /* Cambia il layout a 1 colonna */ | |
| gap: 1rem; | |
| } | |
| div.current-fortune-teller { | |
| height: 20vh; | |
| } | |
| #settings div { | |
| font-size: 1rem; | |
| } | |
| div.setting input { | |
| font-size: 1rem; | |
| width: 100%; | |
| box-sizing: border-box; | |
| } | |
| } | |
| /* Media query per gestire l'altezza dello schermo su dispositivi molto piccoli */ | |
| @media screen and (max-height: 600px) { | |
| .fortune-teller-profile { | |
| max-height: 25vh; | |
| } | |
| dialog { | |
| max-height: 80vh; | |
| overflow-y: auto; | |
| } | |
| } |