CI / Generate TypeScript types (push) Successful in 10s
CI / Server unit tests (push) Successful in 26s
CI / Build server (push) Successful in 28s
CI / Build client (push) Successful in 42s
CI / Playwright E2E tests (push) Successful in 1m54s
CI / Build and push Docker image (push) Successful in 45s
CI / Notify (push) Successful in 2s
4181 lines
89 KiB
SCSS
4181 lines
89 KiB
SCSS
// Barvy výsečí — jednoduchý styl odvozuje odstíny od primární barvy,
|
||
// styl Umamusume je přebíjí vlastní paletou (viz níže)
|
||
:root {
|
||
--wheel-c0: var(--luncher-primary);
|
||
--wheel-c1: #0ea5e9;
|
||
--wheel-c2: #f59e0b;
|
||
--wheel-c3: #8b5cf6;
|
||
--wheel-c4: #ec4899;
|
||
--wheel-c5: #14b8a6;
|
||
--wheel-label: #ffffff;
|
||
--wheel-rim: var(--luncher-text);
|
||
--wheel-hub: var(--luncher-bg-card);
|
||
}
|
||
|
||
.spin-wheel-modal {
|
||
.spin-steps {
|
||
display: flex;
|
||
gap: 8px;
|
||
margin-bottom: 12px;
|
||
font-size: 0.85rem;
|
||
font-weight: 700;
|
||
|
||
span {
|
||
padding: 4px 12px;
|
||
border-radius: 999px;
|
||
background: var(--luncher-bg-hover);
|
||
color: var(--luncher-text-muted);
|
||
|
||
&.active {
|
||
background: var(--luncher-primary);
|
||
color: #fff;
|
||
}
|
||
|
||
&.done {
|
||
background: var(--luncher-primary-light);
|
||
color: var(--luncher-primary);
|
||
}
|
||
}
|
||
}
|
||
|
||
.spin-source-info {
|
||
align-self: center;
|
||
margin-left: 4px;
|
||
color: var(--luncher-text-muted);
|
||
font-weight: 600;
|
||
}
|
||
|
||
.spin-steps {
|
||
flex-wrap: wrap;
|
||
}
|
||
|
||
// Přepínač zdroje jako segmentovaná „pilulka"
|
||
.spin-source {
|
||
display: inline-flex;
|
||
gap: 2px;
|
||
padding: 3px;
|
||
border-radius: 999px;
|
||
background: var(--luncher-bg-hover);
|
||
|
||
> .btn {
|
||
padding: 6px 16px;
|
||
font-size: 0.9rem;
|
||
border: none !important;
|
||
border-radius: 999px !important;
|
||
box-shadow: none !important;
|
||
margin: 0 !important;
|
||
transform: none !important;
|
||
}
|
||
|
||
> .btn-outline-primary {
|
||
background: transparent;
|
||
color: var(--luncher-text-secondary);
|
||
|
||
&:hover {
|
||
background: var(--luncher-bg-card);
|
||
color: var(--luncher-primary);
|
||
}
|
||
}
|
||
}
|
||
|
||
.spin-layout {
|
||
display: grid;
|
||
grid-template-columns: minmax(0, 1fr) 240px;
|
||
gap: 20px;
|
||
align-items: start;
|
||
|
||
@media (max-width: 768px) {
|
||
grid-template-columns: minmax(0, 1fr);
|
||
}
|
||
}
|
||
|
||
.spin-wheel-column {
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
gap: 12px;
|
||
min-width: 0;
|
||
}
|
||
|
||
.spin-empty {
|
||
width: 100%;
|
||
max-width: 380px;
|
||
aspect-ratio: 1;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
text-align: center;
|
||
padding: 24px;
|
||
border: 2px dashed var(--luncher-border);
|
||
border-radius: 50%;
|
||
color: var(--luncher-text-muted);
|
||
}
|
||
|
||
.spin-result {
|
||
min-height: 1.6em;
|
||
font-size: 1.15rem;
|
||
text-align: center;
|
||
opacity: 0;
|
||
transform: translateY(6px);
|
||
transition: opacity 0.3s ease, transform 0.3s ease;
|
||
|
||
&.visible {
|
||
opacity: 1;
|
||
transform: none;
|
||
}
|
||
|
||
small {
|
||
color: var(--luncher-text-muted);
|
||
}
|
||
}
|
||
|
||
.spin-actions {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
gap: 8px;
|
||
justify-content: center;
|
||
}
|
||
|
||
.spin-button {
|
||
min-width: 160px;
|
||
}
|
||
|
||
.spin-options {
|
||
border: 1px solid var(--luncher-border);
|
||
border-radius: var(--luncher-radius);
|
||
background: var(--luncher-bg);
|
||
max-height: 440px;
|
||
display: flex;
|
||
flex-direction: column;
|
||
min-width: 0;
|
||
|
||
ul {
|
||
list-style: none;
|
||
margin: 0;
|
||
padding: 4px;
|
||
overflow-y: auto;
|
||
}
|
||
|
||
li {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 8px;
|
||
padding: 4px 6px;
|
||
border-radius: var(--luncher-radius-sm);
|
||
font-size: 0.85rem;
|
||
|
||
&:hover {
|
||
background: var(--luncher-bg-hover);
|
||
}
|
||
}
|
||
}
|
||
|
||
.spin-options-header {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
padding: 8px 10px;
|
||
border-bottom: 1px solid var(--luncher-border);
|
||
font-weight: 700;
|
||
font-size: 0.85rem;
|
||
}
|
||
|
||
.spin-restore {
|
||
background: none;
|
||
border: none;
|
||
color: var(--luncher-primary);
|
||
font-size: 0.8rem;
|
||
font-weight: 600;
|
||
padding: 0;
|
||
}
|
||
|
||
.spin-dot {
|
||
flex: none;
|
||
width: 10px;
|
||
height: 10px;
|
||
border-radius: 50%;
|
||
}
|
||
|
||
.spin-option-label {
|
||
flex: 1;
|
||
min-width: 0;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.spin-option-kind {
|
||
color: var(--luncher-text-muted);
|
||
font-size: 0.7rem;
|
||
}
|
||
|
||
.spin-remove {
|
||
flex: none;
|
||
background: none;
|
||
border: none;
|
||
color: var(--luncher-text-muted);
|
||
padding: 2px 6px;
|
||
border-radius: 4px;
|
||
|
||
&:hover:not(:disabled) {
|
||
color: var(--luncher-danger);
|
||
background: var(--luncher-bg-hover);
|
||
}
|
||
}
|
||
}
|
||
|
||
.spin-wheel {
|
||
position: relative;
|
||
width: 100%;
|
||
max-width: 380px;
|
||
aspect-ratio: 1;
|
||
}
|
||
|
||
.spin-wheel-svg {
|
||
width: 100%;
|
||
height: 100%;
|
||
display: block;
|
||
filter: drop-shadow(0 6px 12px rgb(0 0 0 / 0.18));
|
||
}
|
||
|
||
.spin-wheel-pointer {
|
||
position: absolute;
|
||
top: -6px;
|
||
left: 50%;
|
||
transform: translateX(-50%);
|
||
z-index: 2;
|
||
width: 0;
|
||
height: 0;
|
||
border-left: 14px solid transparent;
|
||
border-right: 14px solid transparent;
|
||
border-top: 26px solid var(--luncher-danger);
|
||
filter: drop-shadow(0 2px 2px rgb(0 0 0 / 0.3));
|
||
}
|
||
|
||
.spin-wheel-rim {
|
||
fill: var(--wheel-rim);
|
||
}
|
||
|
||
.spin-wheel-hub {
|
||
fill: var(--wheel-hub);
|
||
stroke: var(--wheel-rim);
|
||
stroke-width: 4;
|
||
}
|
||
|
||
.spin-seg {
|
||
stroke: var(--wheel-hub);
|
||
stroke-width: 1.5;
|
||
}
|
||
|
||
.spin-seg-label {
|
||
fill: var(--wheel-label);
|
||
font-weight: 700;
|
||
pointer-events: none;
|
||
paint-order: stroke;
|
||
stroke: rgb(0 0 0 / 0.25);
|
||
stroke-width: 2px;
|
||
}
|
||
|
||
@for $i from 0 through 5 {
|
||
.spin-seg-#{$i} {
|
||
fill: var(--wheel-c#{$i});
|
||
background: var(--wheel-c#{$i});
|
||
}
|
||
}
|
||
|
||
@media (prefers-reduced-motion: reduce) {
|
||
.spin-wheel-svg {
|
||
transition-duration: 0.6s !important;
|
||
}
|
||
}
|
||
|
||
.spin-wheel-modal .modal-header {
|
||
gap: 12px;
|
||
flex-wrap: wrap;
|
||
|
||
.modal-title {
|
||
flex: 1;
|
||
min-width: 0;
|
||
|
||
h2 {
|
||
margin: 0;
|
||
}
|
||
}
|
||
}
|
||
|
||
// ============================================
|
||
// STYL UMAMUSUME kola štěstí (dle stylu zvoleného v nastavení).
|
||
// Trávník dostihové dráhy, růžové a nebeské akcenty, zlaté lemy,
|
||
// zaoblené tučné písmo a „herní" tlačítka s vystouplým spodkem.
|
||
// ============================================
|
||
.spin-wheel-modal.spin-theme-umamusume {
|
||
--uma-font: 'M PLUS Rounded 1c', 'Nunito', 'Inter', sans-serif;
|
||
--uma-turf: #5cc23d;
|
||
--uma-turf-deep: #2e9a3a;
|
||
--uma-turf-shadow: #1f7a2c;
|
||
--uma-pink: #ff6fa3;
|
||
--uma-pink-deep: #e84d86;
|
||
--uma-gold: #ffc531;
|
||
--uma-panel: #f4fbef;
|
||
--uma-border: #c6ebb2;
|
||
--uma-text: #1d3322;
|
||
--wheel-c0: var(--uma-turf);
|
||
--wheel-c1: var(--uma-pink);
|
||
--wheel-c2: #43b8f0;
|
||
--wheel-c3: #f2a91a;
|
||
--wheel-c4: #a078f0;
|
||
--wheel-c5: #ff8a3d;
|
||
--wheel-rim: var(--uma-gold);
|
||
--wheel-hub: #ffffff;
|
||
|
||
font-family: var(--uma-font);
|
||
|
||
.modal-content {
|
||
border: 4px solid var(--uma-border);
|
||
border-radius: 22px;
|
||
overflow: hidden;
|
||
background-color: #fff;
|
||
background-image: repeating-linear-gradient(135deg, rgb(92 194 61 / 0.06) 0 16px, transparent 16px 32px);
|
||
color: var(--uma-text);
|
||
}
|
||
|
||
.modal-header {
|
||
background:
|
||
repeating-linear-gradient(115deg, rgb(255 255 255 / 0.13) 0 12px, transparent 12px 24px),
|
||
linear-gradient(90deg, var(--uma-turf-deep), var(--uma-turf));
|
||
border-bottom: 4px solid var(--uma-gold);
|
||
|
||
h2 {
|
||
color: #fff;
|
||
font-family: var(--uma-font);
|
||
font-weight: 800;
|
||
text-shadow: 0 2px 0 var(--uma-turf-shadow);
|
||
}
|
||
|
||
.btn-close {
|
||
filter: invert(1) grayscale(1) brightness(2);
|
||
opacity: 0.9;
|
||
}
|
||
}
|
||
|
||
.modal-footer {
|
||
border-top: 3px dashed var(--uma-border);
|
||
}
|
||
|
||
.spin-steps span {
|
||
font-family: var(--uma-font);
|
||
background: #e7f3e0;
|
||
color: #7c9a82;
|
||
clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
|
||
border-radius: 0;
|
||
padding: 4px 18px;
|
||
|
||
&.active {
|
||
background: linear-gradient(90deg, var(--uma-pink-deep), var(--uma-pink));
|
||
color: #fff;
|
||
}
|
||
|
||
&.done {
|
||
background: var(--uma-turf);
|
||
color: #fff;
|
||
}
|
||
}
|
||
|
||
.btn {
|
||
font-family: var(--uma-font);
|
||
font-weight: 800;
|
||
border-radius: 999px;
|
||
transition: transform 0.08s ease, box-shadow 0.08s ease, background 0.2s ease;
|
||
|
||
&:active:not(:disabled) {
|
||
transform: translateY(3px);
|
||
box-shadow: 0 1px 0 var(--uma-btn-shadow, transparent);
|
||
}
|
||
}
|
||
|
||
.btn-primary {
|
||
--uma-btn-shadow: var(--uma-turf-shadow);
|
||
background: linear-gradient(180deg, #7ad85a, var(--uma-turf-deep));
|
||
box-shadow: 0 4px 0 var(--uma-turf-shadow);
|
||
color: #fff;
|
||
text-shadow: 0 1px 0 rgb(0 0 0 / 0.2);
|
||
|
||
&:disabled {
|
||
background: #b9cbbd;
|
||
box-shadow: 0 4px 0 #97aa9b;
|
||
}
|
||
}
|
||
|
||
.spin-button {
|
||
--uma-btn-shadow: #b8335f;
|
||
background: linear-gradient(180deg, #ff8db5, var(--uma-pink-deep));
|
||
box-shadow: 0 5px 0 #b8335f;
|
||
font-size: 1.15rem;
|
||
padding: 12px 36px;
|
||
}
|
||
|
||
.btn-outline-primary {
|
||
--uma-btn-shadow: var(--uma-border);
|
||
background: #fff;
|
||
border: 2px solid var(--uma-turf);
|
||
color: var(--uma-turf-deep);
|
||
box-shadow: 0 4px 0 var(--uma-border);
|
||
|
||
&:hover {
|
||
background: #eaf8e2;
|
||
color: var(--uma-turf-deep);
|
||
}
|
||
}
|
||
|
||
.btn-secondary {
|
||
--uma-btn-shadow: #d4ddd6;
|
||
background: #fff;
|
||
border: 2px solid #d4ddd6;
|
||
color: var(--uma-text);
|
||
box-shadow: 0 4px 0 #d4ddd6;
|
||
}
|
||
|
||
.spin-source {
|
||
background: #e7f3e0;
|
||
|
||
> .btn-primary {
|
||
background: linear-gradient(180deg, #7ad85a, var(--uma-turf-deep));
|
||
box-shadow: 0 2px 0 var(--uma-turf-shadow) !important;
|
||
}
|
||
|
||
> .btn-outline-primary {
|
||
background: transparent;
|
||
color: var(--uma-turf-deep);
|
||
|
||
&:hover {
|
||
background: #fff;
|
||
}
|
||
}
|
||
}
|
||
|
||
.spin-result {
|
||
font-weight: 800;
|
||
|
||
strong {
|
||
color: var(--uma-pink-deep);
|
||
}
|
||
}
|
||
|
||
.spin-options {
|
||
background: var(--uma-panel);
|
||
border: 3px solid var(--uma-border);
|
||
border-radius: 16px;
|
||
|
||
li:hover {
|
||
background: #fff0f6;
|
||
}
|
||
}
|
||
|
||
.spin-options-header {
|
||
border-bottom: 3px solid var(--uma-border);
|
||
color: var(--uma-turf-deep);
|
||
}
|
||
|
||
.spin-empty {
|
||
border-color: var(--uma-border);
|
||
}
|
||
|
||
.spin-wheel-pointer {
|
||
border-top-color: var(--uma-pink-deep);
|
||
}
|
||
|
||
.spin-seg {
|
||
stroke: #fff;
|
||
stroke-width: 2.5;
|
||
}
|
||
|
||
.spin-seg-label {
|
||
font-family: var(--uma-font);
|
||
font-weight: 800;
|
||
}
|
||
}
|
||
|
||
// Tmavý režim — noční dostih pod reflektory
|
||
[data-bs-theme="dark"] .spin-wheel-modal.spin-theme-umamusume {
|
||
--uma-panel: #19223d;
|
||
--uma-border: #2c3a66;
|
||
--uma-text: #f3f6ff;
|
||
--wheel-hub: #19223d;
|
||
|
||
.modal-content {
|
||
background-color: #10172b;
|
||
background-image: repeating-linear-gradient(135deg, rgb(255 255 255 / 0.03) 0 16px, transparent 16px 32px);
|
||
}
|
||
|
||
.spin-steps span:not(.active):not(.done) {
|
||
background: #222d4f;
|
||
color: #7d89ad;
|
||
}
|
||
|
||
.btn-outline-primary, .btn-secondary {
|
||
background: #19223d;
|
||
color: #f3f6ff;
|
||
}
|
||
|
||
.spin-source {
|
||
background: #222d4f;
|
||
|
||
> .btn-outline-primary {
|
||
background: transparent;
|
||
color: #b8c2e0;
|
||
|
||
&:hover {
|
||
background: #19223d;
|
||
color: #fff;
|
||
}
|
||
}
|
||
}
|
||
|
||
.spin-options li:hover {
|
||
background: #2a2344;
|
||
}
|
||
}
|
||
|
||
// ============================================
|
||
// STYL MY LITTLE PONY kola štěstí (dle stylu zvoleného v nastavení).
|
||
// Výseče v barvách Mane 6, duhový lem Rainbow Dash, fialová Twilight
|
||
// a růžová Pinkie Pie, kulatá „bonbonová" tlačítka.
|
||
// ============================================
|
||
.spin-wheel-modal.spin-theme-mlp {
|
||
--mlp-font: 'Fredoka', 'Nunito', 'Inter', sans-serif;
|
||
--mlp-twilight: #8e4fd1;
|
||
--mlp-twilight-deep: #6a35b0;
|
||
--mlp-twilight-shadow: #4b2287;
|
||
--mlp-pinkie: #f06aa6;
|
||
--mlp-pinkie-deep: #d6417f;
|
||
--mlp-panel: #faf5ff;
|
||
--mlp-border: #e5d4f7;
|
||
--mlp-text: #2e1f47;
|
||
// Mane 6: Twilight, Pinkie, Rainbow Dash, Applejack, Fluttershy, Rarity
|
||
--wheel-c0: #9b5fe0;
|
||
--wheel-c1: #f06aa6;
|
||
--wheel-c2: #1e98d3;
|
||
--wheel-c3: #f37033;
|
||
--wheel-c4: #e3b829;
|
||
--wheel-c5: #5b4fc9;
|
||
--wheel-rim: #ec3d8f;
|
||
--wheel-hub: #ffffff;
|
||
|
||
font-family: var(--mlp-font);
|
||
|
||
.modal-content {
|
||
border: 4px solid var(--mlp-border);
|
||
border-radius: 26px;
|
||
overflow: hidden;
|
||
background-color: #fff;
|
||
background-image:
|
||
radial-gradient(circle at 20% 30%, rgb(142 79 209 / 0.10) 0 2px, transparent 3px),
|
||
radial-gradient(circle at 70% 80%, rgb(240 106 166 / 0.10) 0 2px, transparent 3px);
|
||
background-size: 120px 120px, 170px 170px;
|
||
color: var(--mlp-text);
|
||
}
|
||
|
||
.modal-header {
|
||
background:
|
||
linear-gradient(90deg, #ee4144 0 16.6%, #f37033 16.6% 33.3%, #fdf6af 33.3% 50%, #62bc4d 50% 66.6%, #1e98d3 66.6% 83.3%, #672f89 83.3% 100%) bottom / 100% 5px no-repeat,
|
||
linear-gradient(90deg, var(--mlp-twilight-deep), var(--mlp-twilight) 60%, var(--mlp-pinkie));
|
||
border-bottom: none;
|
||
|
||
h2 {
|
||
color: #fff;
|
||
font-family: var(--mlp-font);
|
||
font-weight: 700;
|
||
text-shadow: 0 2px 0 var(--mlp-twilight-shadow);
|
||
}
|
||
|
||
.btn-close {
|
||
filter: invert(1) grayscale(1) brightness(2);
|
||
opacity: 0.9;
|
||
}
|
||
}
|
||
|
||
.modal-footer {
|
||
border-top: 3px dotted var(--mlp-border);
|
||
}
|
||
|
||
.spin-steps span {
|
||
font-family: var(--mlp-font);
|
||
background: #f1e6fc;
|
||
color: #9a8ab3;
|
||
border-radius: 999px;
|
||
padding: 4px 16px;
|
||
|
||
&.active {
|
||
background: linear-gradient(90deg, var(--mlp-twilight-deep), var(--mlp-pinkie));
|
||
color: #fff;
|
||
}
|
||
|
||
&.done {
|
||
background: var(--mlp-twilight);
|
||
color: #fff;
|
||
}
|
||
}
|
||
|
||
.btn {
|
||
font-family: var(--mlp-font);
|
||
font-weight: 600;
|
||
border-radius: 999px;
|
||
transition: transform 0.12s ease, box-shadow 0.12s ease, background 0.2s ease;
|
||
|
||
&:active:not(:disabled) {
|
||
transform: translateY(3px);
|
||
box-shadow: 0 1px 0 var(--mlp-btn-shadow, transparent);
|
||
}
|
||
}
|
||
|
||
.btn-primary {
|
||
--mlp-btn-shadow: var(--mlp-twilight-shadow);
|
||
background: linear-gradient(180deg, #b07ae6, var(--mlp-twilight-deep));
|
||
border: none;
|
||
box-shadow: 0 4px 0 var(--mlp-twilight-shadow);
|
||
color: #fff;
|
||
text-shadow: 0 1px 0 rgb(0 0 0 / 0.2);
|
||
|
||
&:disabled {
|
||
background: #c9bdd9;
|
||
box-shadow: 0 4px 0 #a99cbc;
|
||
}
|
||
}
|
||
|
||
.spin-button {
|
||
--mlp-btn-shadow: #a52c63;
|
||
background: linear-gradient(180deg, #ff94c4, var(--mlp-pinkie-deep));
|
||
box-shadow: 0 5px 0 #a52c63, 0 0 18px rgb(240 106 166 / 0.45);
|
||
font-size: 1.15rem;
|
||
padding: 12px 36px;
|
||
}
|
||
|
||
.btn-outline-primary {
|
||
--mlp-btn-shadow: var(--mlp-border);
|
||
background: #fff;
|
||
border: 2px solid var(--mlp-twilight);
|
||
color: var(--mlp-twilight-deep);
|
||
box-shadow: 0 4px 0 var(--mlp-border);
|
||
|
||
&:hover {
|
||
background: #f1e6fc;
|
||
color: var(--mlp-twilight-deep);
|
||
}
|
||
}
|
||
|
||
.btn-secondary {
|
||
--mlp-btn-shadow: var(--mlp-border);
|
||
background: #fff;
|
||
border: 2px solid var(--mlp-border);
|
||
color: var(--mlp-text);
|
||
box-shadow: 0 4px 0 var(--mlp-border);
|
||
}
|
||
|
||
.spin-source {
|
||
background: #f1e6fc;
|
||
|
||
> .btn-primary {
|
||
background: linear-gradient(180deg, #b07ae6, var(--mlp-twilight-deep));
|
||
box-shadow: 0 2px 0 var(--mlp-twilight-shadow) !important;
|
||
}
|
||
|
||
> .btn-outline-primary {
|
||
background: transparent;
|
||
color: var(--mlp-twilight-deep);
|
||
|
||
&:hover {
|
||
background: #fff;
|
||
}
|
||
}
|
||
}
|
||
|
||
.spin-result {
|
||
font-weight: 700;
|
||
|
||
strong {
|
||
color: var(--mlp-pinkie-deep);
|
||
}
|
||
}
|
||
|
||
.spin-options {
|
||
background: var(--mlp-panel);
|
||
border: 3px solid var(--mlp-border);
|
||
border-radius: 18px;
|
||
|
||
li:hover {
|
||
background: #fff0f7;
|
||
}
|
||
}
|
||
|
||
.spin-options-header {
|
||
border-bottom: 3px solid var(--mlp-border);
|
||
color: var(--mlp-twilight-deep);
|
||
}
|
||
|
||
.spin-empty {
|
||
border-color: var(--mlp-border);
|
||
}
|
||
|
||
.spin-wheel-pointer {
|
||
border-top-color: var(--mlp-pinkie-deep);
|
||
}
|
||
|
||
.spin-seg {
|
||
stroke: #fff;
|
||
stroke-width: 2.5;
|
||
}
|
||
|
||
.spin-seg-label {
|
||
font-family: var(--mlp-font);
|
||
font-weight: 700;
|
||
}
|
||
}
|
||
|
||
// Tmavý režim — noční obloha princezny Luny
|
||
[data-bs-theme="dark"] .spin-wheel-modal.spin-theme-mlp {
|
||
--mlp-panel: #1d1745;
|
||
--mlp-border: #362c6e;
|
||
--mlp-text: #f2edff;
|
||
--wheel-hub: #1d1745;
|
||
|
||
.modal-content {
|
||
background-color: #120e2e;
|
||
background-image:
|
||
radial-gradient(circle at 20% 30%, rgb(255 255 255 / 0.5) 0 1.5px, transparent 2.5px),
|
||
radial-gradient(circle at 70% 80%, rgb(183 198 255 / 0.35) 0 1px, transparent 2px);
|
||
}
|
||
|
||
.spin-steps span:not(.active):not(.done) {
|
||
background: #282058;
|
||
color: #8a7fb5;
|
||
}
|
||
|
||
.btn-outline-primary, .btn-secondary {
|
||
background: #1d1745;
|
||
color: #f2edff;
|
||
}
|
||
|
||
.spin-source {
|
||
background: #282058;
|
||
|
||
> .btn-outline-primary {
|
||
background: transparent;
|
||
color: #c2b6e6;
|
||
|
||
&:hover {
|
||
background: #1d1745;
|
||
color: #fff;
|
||
}
|
||
}
|
||
}
|
||
|
||
.spin-options li:hover {
|
||
background: #2e2160;
|
||
}
|
||
}
|
||
|
||
// ============================================
|
||
// STYL HELL GIRL kola štěstí (dle stylu zvoleného v nastavení).
|
||
// Výseče v barvách soumraku a pekla, rudá nit jako lem,
|
||
// černá tuš, papír washi a ostrá tlačítka s písmem mincho.
|
||
// ============================================
|
||
.spin-wheel-modal.spin-theme-hellgirl {
|
||
--hg-font: 'Shippori Mincho', 'Noto Serif JP', 'Georgia', serif;
|
||
--hg-crimson: #a3122a;
|
||
--hg-crimson-deep: #7a0c1f;
|
||
--hg-crimson-shadow: #4a0612;
|
||
--hg-panel: #fffbf5;
|
||
--hg-border: #dccbbb;
|
||
--hg-text: #1c1012;
|
||
--wheel-c0: #a3122a;
|
||
--wheel-c1: #1f1416;
|
||
--wheel-c2: #c8452a;
|
||
--wheel-c3: #4b1a4f;
|
||
--wheel-c4: #6e0b1a;
|
||
--wheel-c5: #9a6b1f;
|
||
--wheel-rim: #c8102e;
|
||
--wheel-hub: #12070a;
|
||
|
||
font-family: var(--hg-font);
|
||
|
||
.modal-content {
|
||
border: 1px solid var(--hg-crimson);
|
||
border-radius: 6px;
|
||
overflow: hidden;
|
||
background: linear-gradient(180deg, #f3d9cc, #f4ece0 220px);
|
||
color: var(--hg-text);
|
||
}
|
||
|
||
.modal-header {
|
||
background:
|
||
linear-gradient(90deg, transparent, #c8102e 12%, #e8344f 50%, #c8102e 88%, transparent) bottom / 100% 2px no-repeat,
|
||
linear-gradient(90deg, #1e0a1c, #4a0f2a 35%, #8e0f24 70%, #c8452a);
|
||
border-bottom: none;
|
||
|
||
h2 {
|
||
color: #fff4ee;
|
||
font-family: var(--hg-font);
|
||
font-weight: 800;
|
||
letter-spacing: 0.5px;
|
||
text-shadow: 0 0 10px rgb(232 52 79 / 0.5);
|
||
}
|
||
|
||
.btn-close {
|
||
filter: invert(1) grayscale(1) brightness(2);
|
||
opacity: 0.9;
|
||
}
|
||
}
|
||
|
||
.modal-footer {
|
||
border-top: 1px solid var(--hg-border);
|
||
}
|
||
|
||
.spin-steps span {
|
||
font-family: var(--hg-font);
|
||
background: #eadfd2;
|
||
color: #8c7672;
|
||
border-radius: 2px;
|
||
padding: 4px 16px;
|
||
|
||
&.active {
|
||
background: linear-gradient(90deg, #1c0a10, var(--hg-crimson-deep));
|
||
color: #fff4ee;
|
||
}
|
||
|
||
&.done {
|
||
background: var(--hg-crimson);
|
||
color: #fff4ee;
|
||
}
|
||
}
|
||
|
||
.btn {
|
||
font-family: var(--hg-font);
|
||
font-weight: 700;
|
||
border-radius: 2px;
|
||
transition: transform 0.12s ease, box-shadow 0.2s ease, background 0.2s ease;
|
||
|
||
&:active:not(:disabled) {
|
||
transform: translateY(1px);
|
||
}
|
||
}
|
||
|
||
.btn-primary {
|
||
background: linear-gradient(180deg, #c01733, var(--hg-crimson-deep));
|
||
border: 1px solid var(--hg-crimson-shadow);
|
||
color: #fff4ee;
|
||
box-shadow: inset 0 0 0 2px rgb(255 255 255 / 0.12);
|
||
|
||
&:disabled {
|
||
background: #b9a3a0;
|
||
border-color: #9c8582;
|
||
box-shadow: none;
|
||
}
|
||
}
|
||
|
||
// Tlačítko roztočení — černá deska s rudou září
|
||
.spin-button {
|
||
background: linear-gradient(180deg, #2a1216, #12070a);
|
||
border: 1px solid #c8102e;
|
||
box-shadow: 0 0 0 3px rgb(200 16 46 / 0.25), 0 0 18px rgb(200 16 46 / 0.45);
|
||
letter-spacing: 1px;
|
||
font-size: 1.15rem;
|
||
padding: 12px 36px;
|
||
|
||
&:hover:not(:disabled) {
|
||
background: linear-gradient(180deg, #3a1219, #1c0a10);
|
||
box-shadow: 0 0 0 3px rgb(200 16 46 / 0.4), 0 0 24px rgb(200 16 46 / 0.65);
|
||
}
|
||
}
|
||
|
||
.btn-outline-primary {
|
||
background: transparent;
|
||
border: 1px solid var(--hg-crimson);
|
||
color: var(--hg-crimson);
|
||
|
||
&:hover {
|
||
background: var(--hg-crimson);
|
||
color: #fff4ee;
|
||
}
|
||
}
|
||
|
||
.btn-secondary {
|
||
background: var(--hg-panel);
|
||
border: 1px solid var(--hg-border);
|
||
color: var(--hg-text);
|
||
}
|
||
|
||
.spin-source {
|
||
background: #eadfd2;
|
||
|
||
> .btn-primary {
|
||
background: linear-gradient(180deg, #c01733, var(--hg-crimson-deep));
|
||
}
|
||
|
||
> .btn-outline-primary {
|
||
background: transparent;
|
||
color: var(--hg-crimson-deep);
|
||
|
||
&:hover {
|
||
background: var(--hg-panel);
|
||
}
|
||
}
|
||
}
|
||
|
||
.spin-result {
|
||
font-weight: 700;
|
||
|
||
strong {
|
||
color: var(--hg-crimson);
|
||
}
|
||
}
|
||
|
||
.spin-options {
|
||
background: var(--hg-panel);
|
||
border: 1px solid var(--hg-border);
|
||
border-top: 3px solid var(--hg-crimson);
|
||
border-radius: 3px;
|
||
|
||
li:hover {
|
||
background: #f8e6e2;
|
||
}
|
||
}
|
||
|
||
.spin-options-header {
|
||
border-bottom: 1px solid var(--hg-border);
|
||
color: var(--hg-crimson-deep);
|
||
}
|
||
|
||
.spin-empty {
|
||
border-color: var(--hg-border);
|
||
}
|
||
|
||
.spin-wheel-pointer {
|
||
border-top-color: #c8102e;
|
||
filter: drop-shadow(0 0 4px rgb(200 16 46 / 0.7));
|
||
}
|
||
|
||
.spin-wheel-rim {
|
||
filter: drop-shadow(0 0 6px rgb(200 16 46 / 0.6));
|
||
}
|
||
|
||
.spin-seg {
|
||
stroke: #12070a;
|
||
stroke-width: 2;
|
||
}
|
||
|
||
.spin-seg-label {
|
||
font-family: var(--hg-font);
|
||
font-weight: 700;
|
||
}
|
||
}
|
||
|
||
// Tmavý režim — půlnoc Pekelné korespondence
|
||
[data-bs-theme="dark"] .spin-wheel-modal.spin-theme-hellgirl {
|
||
--hg-crimson: #e0334f;
|
||
--hg-crimson-deep: #b81c38;
|
||
--hg-panel: #170c0f;
|
||
--hg-border: #3d1c22;
|
||
--hg-text: #f3e6e2;
|
||
--wheel-c1: #2e1a1e;
|
||
|
||
.modal-content {
|
||
background:
|
||
radial-gradient(ellipse 120% 45% at 50% 115%, rgb(140 12 36 / 0.35), transparent 70%),
|
||
linear-gradient(180deg, #1c0a12, #0c0608 260px);
|
||
}
|
||
|
||
.spin-steps span:not(.active):not(.done) {
|
||
background: #221216;
|
||
color: #8a6c6a;
|
||
}
|
||
|
||
.btn-outline-primary, .btn-secondary {
|
||
background: #170c0f;
|
||
color: #f3e6e2;
|
||
}
|
||
|
||
.spin-source {
|
||
background: #221216;
|
||
|
||
> .btn-outline-primary {
|
||
background: transparent;
|
||
color: #c9aeaa;
|
||
|
||
&:hover {
|
||
background: #170c0f;
|
||
color: #fff;
|
||
}
|
||
}
|
||
}
|
||
|
||
.spin-options li:hover {
|
||
background: #2a1218;
|
||
}
|
||
}
|
||
|
||
// ============================================
|
||
// STYL K-ON! kola štěstí (dle stylu zvoleného v nastavení).
|
||
// Výseče v barvách členek Houkago Tea Time, tmavě modré školní sako,
|
||
// notový sešit a tlačítko roztočení jako kytara Gitah (cherry sunburst).
|
||
// ============================================
|
||
.spin-wheel-modal.spin-theme-kon {
|
||
--kon-font: 'Zen Maru Gothic', 'M PLUS Rounded 1c', 'Nunito', sans-serif;
|
||
--kon-blazer: #27315f;
|
||
--kon-blazer-light: #3a4782;
|
||
--kon-blazer-shadow: #171d3d;
|
||
--kon-cherry: #c43358;
|
||
--kon-cherry-deep: #a3234a;
|
||
--kon-sunburst: #f2a33a;
|
||
--kon-panel: #fffaf0;
|
||
--kon-border: #e6d8c0;
|
||
--kon-text: #222849;
|
||
// Yui, Mio, Ritsu, Azusa, Ui a tmavě modrá školní
|
||
--wheel-c0: #d43f62;
|
||
--wheel-c1: #3d6fc4;
|
||
--wheel-c2: #f2b81d;
|
||
--wheel-c3: #8a6bc7;
|
||
--wheel-c4: #e46f9a;
|
||
--wheel-c5: #27315f;
|
||
--wheel-rim: #27315f;
|
||
--wheel-hub: #fffaf0;
|
||
|
||
font-family: var(--kon-font);
|
||
|
||
.modal-content {
|
||
border: 3px solid var(--kon-border);
|
||
border-radius: 22px;
|
||
overflow: hidden;
|
||
background:
|
||
repeating-linear-gradient(180deg, transparent 0 27px, rgb(61 111 196 / 0.07) 27px 28px),
|
||
var(--kon-panel);
|
||
color: var(--kon-text);
|
||
}
|
||
|
||
.modal-header {
|
||
background:
|
||
linear-gradient(90deg, #d43f62 0 20%, #3d6fc4 20% 40%, #f2b81d 40% 60%, #e8cf7a 60% 80%, #8a6bc7 80% 100%) bottom / 100% 4px no-repeat,
|
||
linear-gradient(90deg, var(--kon-blazer-shadow), var(--kon-blazer) 40%, var(--kon-blazer-light));
|
||
border-bottom: none;
|
||
|
||
h2 {
|
||
color: #fff;
|
||
font-family: var(--kon-font);
|
||
font-weight: 900;
|
||
text-shadow: 0 2px 0 var(--kon-blazer-shadow);
|
||
}
|
||
|
||
.btn-close {
|
||
filter: invert(1) grayscale(1) brightness(2);
|
||
opacity: 0.9;
|
||
}
|
||
}
|
||
|
||
.modal-footer {
|
||
border-top: 2px dashed var(--kon-border);
|
||
}
|
||
|
||
.spin-steps span {
|
||
font-family: var(--kon-font);
|
||
background: #f3e8d4;
|
||
color: #8a8aa3;
|
||
border-radius: 10px;
|
||
padding: 4px 16px;
|
||
|
||
&.active {
|
||
background: var(--kon-blazer);
|
||
color: #fff;
|
||
}
|
||
|
||
&.done {
|
||
background: var(--kon-cherry);
|
||
color: #fff;
|
||
}
|
||
}
|
||
|
||
.btn {
|
||
font-family: var(--kon-font);
|
||
font-weight: 700;
|
||
border-radius: 10px;
|
||
transition: transform 0.12s ease, box-shadow 0.12s ease, background 0.2s ease;
|
||
|
||
&:active:not(:disabled) {
|
||
transform: translateY(3px);
|
||
box-shadow: 0 1px 0 var(--kon-btn-shadow, transparent);
|
||
}
|
||
}
|
||
|
||
.btn-primary {
|
||
--kon-btn-shadow: var(--kon-blazer);
|
||
background: linear-gradient(180deg, #e0567a, var(--kon-cherry-deep));
|
||
border: none;
|
||
box-shadow: 0 4px 0 var(--kon-blazer);
|
||
color: #fff;
|
||
text-shadow: 0 1px 0 rgb(0 0 0 / 0.2);
|
||
|
||
&:disabled {
|
||
background: #c8c3cf;
|
||
box-shadow: 0 4px 0 #a5a1b0;
|
||
}
|
||
}
|
||
|
||
// Tlačítko roztočení — lak kytary Gitah (jantarový střed, třešňové okraje)
|
||
.spin-button {
|
||
--kon-btn-shadow: var(--kon-blazer);
|
||
background: radial-gradient(ellipse 70% 130% at 50% 45%, #ffd27a, var(--kon-sunburst) 25%, var(--kon-cherry) 65%, #6e1530);
|
||
box-shadow: 0 5px 0 var(--kon-blazer), 0 0 18px rgb(242 163 58 / 0.45);
|
||
font-size: 1.15rem;
|
||
padding: 12px 36px;
|
||
}
|
||
|
||
.btn-outline-primary {
|
||
--kon-btn-shadow: var(--kon-border);
|
||
background: #fff;
|
||
border: 2px solid var(--kon-blazer);
|
||
color: var(--kon-blazer);
|
||
box-shadow: 0 4px 0 var(--kon-border);
|
||
|
||
&:hover {
|
||
background: var(--kon-blazer);
|
||
color: #fff;
|
||
}
|
||
}
|
||
|
||
.btn-secondary {
|
||
--kon-btn-shadow: var(--kon-border);
|
||
background: #fff;
|
||
border: 2px solid var(--kon-border);
|
||
color: var(--kon-text);
|
||
box-shadow: 0 4px 0 var(--kon-border);
|
||
}
|
||
|
||
.spin-source {
|
||
background: #f3e8d4;
|
||
|
||
> .btn-primary {
|
||
background: linear-gradient(180deg, #e0567a, var(--kon-cherry-deep));
|
||
box-shadow: 0 2px 0 var(--kon-blazer) !important;
|
||
}
|
||
|
||
> .btn-outline-primary {
|
||
background: transparent;
|
||
color: var(--kon-blazer);
|
||
|
||
&:hover {
|
||
background: #fff;
|
||
}
|
||
}
|
||
}
|
||
|
||
.spin-result {
|
||
font-weight: 700;
|
||
|
||
strong {
|
||
color: var(--kon-cherry);
|
||
}
|
||
}
|
||
|
||
.spin-options {
|
||
background: var(--kon-panel);
|
||
border: 2px solid var(--kon-border);
|
||
border-radius: 16px;
|
||
|
||
li:hover {
|
||
background: #fdeee0;
|
||
}
|
||
}
|
||
|
||
.spin-options-header {
|
||
border-bottom: 2px solid var(--kon-border);
|
||
color: var(--kon-blazer);
|
||
}
|
||
|
||
.spin-empty {
|
||
border-color: var(--kon-border);
|
||
}
|
||
|
||
// Ukazatel jako trsátko
|
||
.spin-wheel-pointer {
|
||
border-top-color: var(--kon-cherry);
|
||
filter: drop-shadow(0 2px 0 var(--kon-blazer));
|
||
}
|
||
|
||
.spin-seg {
|
||
stroke: #fffaf0;
|
||
stroke-width: 2.5;
|
||
}
|
||
|
||
.spin-seg-label {
|
||
font-family: var(--kon-font);
|
||
font-weight: 700;
|
||
}
|
||
}
|
||
|
||
// Tmavý režim — večerní koncert pod reflektory
|
||
[data-bs-theme="dark"] .spin-wheel-modal.spin-theme-kon {
|
||
--kon-cherry: #ff7a9a;
|
||
--kon-panel: #171c42;
|
||
--kon-border: #2c3566;
|
||
--kon-text: #f1f0ff;
|
||
--wheel-c5: #4a5ab0;
|
||
--wheel-rim: #8fb2ff;
|
||
--wheel-hub: #171c42;
|
||
|
||
.modal-content {
|
||
background:
|
||
radial-gradient(ellipse 45% 60% at 10% -10%, rgb(255 122 154 / 0.18), transparent 70%),
|
||
radial-gradient(ellipse 45% 60% at 90% -10%, rgb(255 209 102 / 0.14), transparent 70%),
|
||
#0e1230;
|
||
}
|
||
|
||
.spin-steps span:not(.active):not(.done) {
|
||
background: #212858;
|
||
color: #8085b3;
|
||
}
|
||
|
||
.btn-outline-primary, .btn-secondary {
|
||
background: #171c42;
|
||
color: #f1f0ff;
|
||
}
|
||
|
||
.btn-outline-primary {
|
||
border-color: #8fb2ff;
|
||
|
||
&:hover {
|
||
background: #2b367a;
|
||
}
|
||
}
|
||
|
||
.spin-source {
|
||
background: #212858;
|
||
|
||
> .btn-outline-primary {
|
||
background: transparent;
|
||
color: #bfc2e6;
|
||
|
||
&:hover {
|
||
background: #171c42;
|
||
color: #fff;
|
||
}
|
||
}
|
||
}
|
||
|
||
.spin-options-header {
|
||
color: #c9d6ff;
|
||
}
|
||
|
||
.spin-options li:hover {
|
||
background: #232a5c;
|
||
}
|
||
}
|
||
|
||
// ============================================
|
||
// STYL BOCCHI THE ROCK! kola štěstí (dle stylu zvoleného v nastavení).
|
||
// Výseče v barvách Kessoku Band, černé linky a tvrdé stíny jako na flyeru
|
||
// z live house STARRY, střed kola jako žlutá kostička z vlasů Bocchi.
|
||
// ============================================
|
||
.spin-wheel-modal.spin-theme-bocchi {
|
||
--bocchi-font: 'M PLUS Rounded 1c', 'Nunito', sans-serif;
|
||
--bocchi-display: 'Dela Gothic One', 'M PLUS Rounded 1c', sans-serif;
|
||
--bocchi-pink: #cc3570;
|
||
--bocchi-pink-deep: #a8245a;
|
||
--bocchi-ink: #1d1a22;
|
||
--bocchi-line: #1d1a22;
|
||
--bocchi-panel: #ffffff;
|
||
--bocchi-text: #1d1a22;
|
||
// Bocchi, Nijika, Ryo, Kita, Les Paul a světle růžová
|
||
--wheel-c0: #e0457b;
|
||
--wheel-c1: #e8b400;
|
||
--wheel-c2: #3a63c9;
|
||
--wheel-c3: #d93a30;
|
||
--wheel-c4: #2b2530;
|
||
--wheel-c5: #f07fa8;
|
||
--wheel-rim: #1d1a22;
|
||
--wheel-hub: #ffcf33;
|
||
|
||
font-family: var(--bocchi-font);
|
||
|
||
.modal-content {
|
||
border: 3px solid var(--bocchi-line);
|
||
border-radius: 12px;
|
||
overflow: hidden;
|
||
background:
|
||
radial-gradient(circle, rgb(224 69 123 / 0.12) 0 1.4px, transparent 1.9px) 0 0 / 12px 12px,
|
||
#fff6f9;
|
||
color: var(--bocchi-text);
|
||
}
|
||
|
||
.modal-header {
|
||
background:
|
||
linear-gradient(90deg, #e0457b 0 25%, #ffcf33 25% 50%, #3a63c9 50% 75%, #d93a30 75% 100%) bottom / 100% 5px no-repeat,
|
||
#0f0d12;
|
||
border-bottom: none;
|
||
|
||
h2 {
|
||
color: #fff;
|
||
font-family: var(--bocchi-display);
|
||
font-weight: 400;
|
||
}
|
||
|
||
.btn-close {
|
||
filter: invert(1) grayscale(1) brightness(2);
|
||
opacity: 0.9;
|
||
}
|
||
}
|
||
|
||
.modal-footer {
|
||
border-top: 2px solid var(--bocchi-line);
|
||
}
|
||
|
||
.spin-steps span {
|
||
font-family: var(--bocchi-font);
|
||
font-weight: 800;
|
||
background: #f3e7ed;
|
||
color: #8f8597;
|
||
border: 2px solid transparent;
|
||
border-radius: 6px;
|
||
padding: 4px 16px;
|
||
|
||
&.active {
|
||
background: #ffcf33;
|
||
color: var(--bocchi-ink);
|
||
border-color: var(--bocchi-ink);
|
||
box-shadow: 3px 3px 0 var(--bocchi-pink);
|
||
}
|
||
|
||
&.done {
|
||
background: var(--bocchi-ink);
|
||
color: #fff;
|
||
}
|
||
}
|
||
|
||
.btn {
|
||
font-family: var(--bocchi-font);
|
||
font-weight: 800;
|
||
border-radius: 6px;
|
||
transition: transform 0.1s ease, box-shadow 0.1s ease, background 0.2s ease;
|
||
|
||
&:active:not(:disabled) {
|
||
transform: translate(3px, 3px);
|
||
box-shadow: none;
|
||
}
|
||
}
|
||
|
||
.btn-primary {
|
||
background: var(--bocchi-pink);
|
||
border: 2px solid var(--bocchi-ink);
|
||
box-shadow: 3px 3px 0 var(--bocchi-ink);
|
||
color: #fff;
|
||
|
||
&:disabled {
|
||
background: #cfc6d3;
|
||
border-color: #8f8597;
|
||
box-shadow: 3px 3px 0 #8f8597;
|
||
}
|
||
}
|
||
|
||
// Tlačítko roztočení — žlutá samolepka s růžovým a černým stínem
|
||
.spin-button {
|
||
font-family: var(--bocchi-display);
|
||
font-weight: 400;
|
||
background: #ffcf33;
|
||
color: var(--bocchi-ink);
|
||
border: 3px solid var(--bocchi-ink);
|
||
box-shadow: 4px 4px 0 var(--bocchi-pink), 7px 7px 0 var(--bocchi-ink);
|
||
font-size: 1.15rem;
|
||
padding: 12px 36px;
|
||
|
||
&:hover:not(:disabled) {
|
||
background: #ffd94f;
|
||
color: var(--bocchi-ink);
|
||
}
|
||
}
|
||
|
||
.btn-outline-primary {
|
||
background: #fff;
|
||
border: 2px solid var(--bocchi-line);
|
||
color: var(--bocchi-pink);
|
||
box-shadow: 3px 3px 0 var(--bocchi-ink);
|
||
|
||
&:hover {
|
||
background: #ffe4ee;
|
||
color: var(--bocchi-pink-deep);
|
||
}
|
||
}
|
||
|
||
.btn-secondary {
|
||
background: #fff;
|
||
border: 2px solid var(--bocchi-line);
|
||
color: var(--bocchi-text);
|
||
box-shadow: 3px 3px 0 var(--bocchi-ink);
|
||
}
|
||
|
||
.spin-source {
|
||
background: #f3e7ed;
|
||
|
||
> .btn-primary {
|
||
background: var(--bocchi-pink);
|
||
box-shadow: none !important;
|
||
}
|
||
|
||
> .btn-outline-primary {
|
||
background: transparent;
|
||
box-shadow: none;
|
||
color: var(--bocchi-ink);
|
||
|
||
&:hover {
|
||
background: #fff;
|
||
}
|
||
}
|
||
}
|
||
|
||
.spin-result {
|
||
font-weight: 800;
|
||
|
||
strong {
|
||
color: var(--bocchi-pink);
|
||
}
|
||
}
|
||
|
||
.spin-options {
|
||
background: var(--bocchi-panel);
|
||
border: 2px solid var(--bocchi-line);
|
||
border-radius: 10px;
|
||
box-shadow: 4px 4px 0 var(--bocchi-ink);
|
||
|
||
li:hover {
|
||
background: #fff0f5;
|
||
}
|
||
}
|
||
|
||
.spin-options-header {
|
||
border-bottom: 2px solid var(--bocchi-line);
|
||
color: var(--bocchi-ink);
|
||
}
|
||
|
||
.spin-empty {
|
||
border-color: var(--bocchi-line);
|
||
}
|
||
|
||
.spin-wheel-pointer {
|
||
border-top-color: var(--bocchi-pink);
|
||
filter: drop-shadow(2px 2px 0 var(--bocchi-ink));
|
||
}
|
||
|
||
.spin-seg {
|
||
stroke: #1d1a22;
|
||
stroke-width: 2.5;
|
||
}
|
||
|
||
.spin-seg-label {
|
||
font-family: var(--bocchi-font);
|
||
font-weight: 800;
|
||
}
|
||
}
|
||
|
||
// Tmavý režim — koncert v live house STARRY
|
||
[data-bs-theme="dark"] .spin-wheel-modal.spin-theme-bocchi {
|
||
--bocchi-pink: #ff6fa0;
|
||
--bocchi-pink-deep: #e0457b;
|
||
--bocchi-line: #5a4d66;
|
||
--bocchi-panel: #1d1a24;
|
||
--bocchi-text: #f5eff8;
|
||
--wheel-c4: #4a3f58;
|
||
|
||
.modal-content {
|
||
background:
|
||
radial-gradient(circle, rgb(255 111 160 / 0.10) 0 1.4px, transparent 1.9px) 0 0 / 12px 12px,
|
||
radial-gradient(ellipse 40% 55% at 15% -10%, rgb(255 111 160 / 0.22), transparent 70%),
|
||
radial-gradient(ellipse 40% 55% at 85% -10%, rgb(125 156 255 / 0.20), transparent 70%),
|
||
#121016;
|
||
}
|
||
|
||
.spin-steps span:not(.active):not(.done) {
|
||
background: #282231;
|
||
color: #8f8499;
|
||
}
|
||
|
||
.spin-steps span.done {
|
||
background: #3a3246;
|
||
}
|
||
|
||
.btn-primary {
|
||
color: #1d1a22;
|
||
}
|
||
|
||
.btn-outline-primary, .btn-secondary {
|
||
background: #1d1a24;
|
||
color: #f5eff8;
|
||
box-shadow: 3px 3px 0 #8c2350;
|
||
}
|
||
|
||
.spin-source {
|
||
background: #282231;
|
||
|
||
> .btn-outline-primary {
|
||
background: transparent;
|
||
box-shadow: none;
|
||
color: #c9bfd2;
|
||
|
||
&:hover {
|
||
background: #1d1a24;
|
||
color: #fff;
|
||
}
|
||
}
|
||
}
|
||
|
||
.spin-options {
|
||
box-shadow: 4px 4px 0 #8c2350;
|
||
}
|
||
|
||
.spin-options-header {
|
||
color: #ffcf33;
|
||
}
|
||
|
||
.spin-options li:hover {
|
||
background: #2e2236;
|
||
}
|
||
}
|
||
|
||
// ============================================
|
||
// STYL NEON GENESIS EVANGELION kola štěstí (dle stylu zvoleného v nastavení).
|
||
// Výseče v barvách NERV a Evangelionů (oranžová, rudá, Unit-01 fialová a zelená,
|
||
// Unit-00 modrá), ostré hrany a výstražné pruhy, střed kola jako jádro Anděla.
|
||
// ============================================
|
||
.spin-wheel-modal.spin-theme-evangelion {
|
||
--eva-font: 'Barlow Condensed', 'Arial Narrow', sans-serif;
|
||
--eva-display: 'Shippori Mincho', 'Noto Serif JP', serif;
|
||
--eva-orange: #f26b00;
|
||
--eva-orange-text: #b84d00;
|
||
--eva-red: #d81e1e;
|
||
--eva-line: #c9c6bd;
|
||
--eva-panel: #ffffff;
|
||
--eva-text: #111214;
|
||
// NERV oranžová, Unit-01 fialová a zelená, Unit-02 rudá, Unit-00 modrá a černá velína
|
||
--wheel-c0: #f26b00;
|
||
--wheel-c1: #5b2a86;
|
||
--wheel-c2: #d81e1e;
|
||
--wheel-c3: #3f8a2a;
|
||
--wheel-c4: #2f6fb3;
|
||
--wheel-c5: #111214;
|
||
--wheel-rim: #111214;
|
||
--wheel-hub: #d81e1e;
|
||
|
||
font-family: var(--eva-font);
|
||
|
||
.modal-content {
|
||
border: 1px solid var(--eva-orange);
|
||
border-radius: 0;
|
||
overflow: hidden;
|
||
background: #f1efe9;
|
||
color: var(--eva-text);
|
||
}
|
||
|
||
.modal-header {
|
||
background:
|
||
repeating-linear-gradient(-45deg, #f26b00 0 10px, #111214 10px 20px) bottom / 100% 5px no-repeat,
|
||
#0d0e10;
|
||
border-bottom: none;
|
||
border-radius: 0;
|
||
|
||
h2 {
|
||
color: #fff;
|
||
font-family: var(--eva-display);
|
||
font-weight: 800;
|
||
}
|
||
|
||
.btn-close {
|
||
filter: invert(1) grayscale(1) brightness(2);
|
||
opacity: 0.9;
|
||
}
|
||
}
|
||
|
||
.modal-footer {
|
||
border-top: 1px solid var(--eva-line);
|
||
}
|
||
|
||
.spin-steps span {
|
||
font-family: var(--eva-font);
|
||
font-weight: 700;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.08em;
|
||
background: #e3e0d8;
|
||
color: #75777e;
|
||
border-radius: 0;
|
||
padding: 4px 16px;
|
||
|
||
&.active {
|
||
background: var(--eva-orange);
|
||
color: #000;
|
||
}
|
||
|
||
&.done {
|
||
background: #111214;
|
||
color: #fff;
|
||
}
|
||
}
|
||
|
||
.btn {
|
||
font-family: var(--eva-font);
|
||
font-weight: 700;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.06em;
|
||
border-radius: 0;
|
||
}
|
||
|
||
.btn-primary {
|
||
background: var(--eva-orange);
|
||
border: 1px solid var(--eva-orange);
|
||
color: #000;
|
||
|
||
&:hover:not(:disabled) {
|
||
background: #ff8a1f;
|
||
border-color: #ff8a1f;
|
||
color: #000;
|
||
}
|
||
|
||
&:disabled {
|
||
background: #c9c6bd;
|
||
border-color: #c9c6bd;
|
||
color: #5f6168;
|
||
}
|
||
}
|
||
|
||
// Tlačítko roztočení — aktivační spínač s výstražnými pruhy kolem
|
||
.spin-button {
|
||
font-size: 1.2rem;
|
||
letter-spacing: 0.2em;
|
||
padding: 12px 36px;
|
||
box-shadow: 0 0 0 3px #111214;
|
||
|
||
&:hover:not(:disabled) {
|
||
box-shadow: 0 0 0 3px #111214, 0 0 0 4px var(--eva-red), 0 0 16px rgb(216 30 30 / 0.5);
|
||
}
|
||
|
||
&:active:not(:disabled) {
|
||
background: var(--eva-red);
|
||
border-color: var(--eva-red);
|
||
color: #fff;
|
||
}
|
||
}
|
||
|
||
.btn-outline-primary {
|
||
background: transparent;
|
||
border: 1px solid var(--eva-orange);
|
||
color: var(--eva-orange-text);
|
||
|
||
&:hover {
|
||
background: var(--eva-orange);
|
||
color: #000;
|
||
}
|
||
}
|
||
|
||
.btn-secondary {
|
||
background: #2b2d31;
|
||
border: 1px solid #2b2d31;
|
||
color: #fff;
|
||
}
|
||
|
||
.spin-source {
|
||
background: #e3e0d8;
|
||
border-radius: 0;
|
||
|
||
> .btn {
|
||
border-radius: 0 !important;
|
||
}
|
||
|
||
> .btn-primary {
|
||
box-shadow: none !important;
|
||
}
|
||
|
||
> .btn-outline-primary {
|
||
border-color: transparent;
|
||
color: var(--eva-text);
|
||
|
||
&:hover {
|
||
background: #fff;
|
||
color: var(--eva-text);
|
||
}
|
||
}
|
||
}
|
||
|
||
.spin-result {
|
||
font-weight: 700;
|
||
letter-spacing: 0.03em;
|
||
|
||
strong {
|
||
color: var(--eva-orange-text);
|
||
}
|
||
}
|
||
|
||
.spin-options {
|
||
background: var(--eva-panel);
|
||
border: 1px solid var(--eva-line);
|
||
border-top: 3px solid var(--eva-orange);
|
||
border-radius: 0;
|
||
|
||
li:hover {
|
||
background: #fff3e6;
|
||
}
|
||
}
|
||
|
||
.spin-options-header {
|
||
border-bottom: 1px solid var(--eva-line);
|
||
color: var(--eva-orange-text);
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.1em;
|
||
}
|
||
|
||
.spin-empty {
|
||
border-color: var(--eva-line);
|
||
border-radius: 0;
|
||
}
|
||
|
||
.spin-wheel-pointer {
|
||
border-top-color: var(--eva-red);
|
||
filter: drop-shadow(0 0 4px rgb(216 30 30 / 0.6));
|
||
}
|
||
|
||
.spin-seg {
|
||
stroke: #111214;
|
||
stroke-width: 2;
|
||
}
|
||
|
||
.spin-seg-label {
|
||
font-family: var(--eva-font);
|
||
font-weight: 700;
|
||
letter-spacing: 0.04em;
|
||
}
|
||
}
|
||
|
||
// Tmavý režim — velín Central Dogma
|
||
[data-bs-theme="dark"] .spin-wheel-modal.spin-theme-evangelion {
|
||
--eva-orange: #ff8a1f;
|
||
--eva-orange-text: #ff8a1f;
|
||
--eva-red: #ff3b3b;
|
||
--eva-line: #4a2c10;
|
||
--eva-panel: #111317;
|
||
--eva-text: #f2efe6;
|
||
--wheel-c5: #2b2d31;
|
||
--wheel-rim: #000000;
|
||
|
||
.modal-content {
|
||
background:
|
||
repeating-linear-gradient(0deg, rgb(255 255 255 / 0.025) 0 1px, transparent 1px 3px),
|
||
radial-gradient(ellipse 70% 45% at 50% 110%, rgb(216 30 30 / 0.18), transparent 70%),
|
||
#08090b;
|
||
box-shadow: 0 0 30px rgb(255 138 31 / 0.18);
|
||
}
|
||
|
||
.spin-steps span:not(.active):not(.done) {
|
||
background: #1a1d22;
|
||
color: #8a8780;
|
||
}
|
||
|
||
.spin-steps span.done {
|
||
background: #2b2d31;
|
||
}
|
||
|
||
.btn-primary:disabled {
|
||
background: #2b2d31;
|
||
border-color: #2b2d31;
|
||
color: #8a8780;
|
||
}
|
||
|
||
.btn-secondary {
|
||
background: #1f2227;
|
||
border-color: #3a3c41;
|
||
}
|
||
|
||
.spin-source {
|
||
background: #1a1d22;
|
||
|
||
> .btn-outline-primary:hover {
|
||
background: #111317;
|
||
color: #fff;
|
||
}
|
||
}
|
||
|
||
.spin-options li:hover {
|
||
background: #1f1408;
|
||
}
|
||
}
|
||
|
||
// ============================================
|
||
// STYL YURU CAMP△ kola štěstí (dle stylu zvoleného v nastavení).
|
||
// Výseče v barvách lesa, podzimního listí, jezera a šál Rin a Nadeshiko,
|
||
// okraj jako dřevěná obruč a střed jako žhavé uhlíky táboráku.
|
||
// ============================================
|
||
.spin-wheel-modal.spin-theme-yurucamp {
|
||
--yc-font: 'Zen Maru Gothic', 'M PLUS Rounded 1c', sans-serif;
|
||
--yc-display: 'Kiwi Maru', 'Zen Maru Gothic', 'M PLUS Rounded 1c', sans-serif;
|
||
--yc-ember: #b5542a;
|
||
--yc-ember-bright: #e8833a;
|
||
--yc-forest: #3f6b4a;
|
||
--yc-line: #e2d5bd;
|
||
--yc-panel: #fffdf8;
|
||
--yc-text: #3a2e25;
|
||
--yc-kraft: #f3e3c3;
|
||
// Les, podzimní oranžová, javor, jezero Motosu, dřevo a růžová Nadeshiko
|
||
--wheel-c0: #3f6b4a;
|
||
--wheel-c1: #e8833a;
|
||
--wheel-c2: #c8553d;
|
||
--wheel-c3: #3b6fa8;
|
||
--wheel-c4: #8a5a3b;
|
||
--wheel-c5: #d9739b;
|
||
--wheel-rim: #5a3a24;
|
||
--wheel-hub: #f2b84b;
|
||
|
||
font-family: var(--yc-font);
|
||
|
||
.modal-content {
|
||
border: 1px solid var(--yc-line);
|
||
border-radius: 20px;
|
||
overflow: hidden;
|
||
background: linear-gradient(180deg, #eef5f8 0, #fbf6ec 160px);
|
||
color: var(--yc-text);
|
||
}
|
||
|
||
.modal-header {
|
||
background:
|
||
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 60'%3E%3Cpath d='M0 60L88 13Q96 8 104 9H136Q144 8 152 13L240 60Z' fill='%233e5374'/%3E%3Cpath d='M88 13Q96 8 104 9H136Q144 8 152 13L141 21L132 16L124 23L114 16L106 22L97 18Z' fill='%23e6edf5'/%3E%3C/svg%3E") right 60px bottom / auto 70% no-repeat,
|
||
linear-gradient(180deg, #24314a, #2b3a55);
|
||
border-bottom: 3px solid var(--yc-ember-bright);
|
||
|
||
h2 {
|
||
color: #fdf8ef;
|
||
font-family: var(--yc-display);
|
||
font-weight: 500;
|
||
}
|
||
|
||
.btn-close {
|
||
filter: invert(1) grayscale(1) brightness(2);
|
||
opacity: 0.9;
|
||
}
|
||
}
|
||
|
||
.modal-footer {
|
||
border-top: 2px dashed var(--yc-line);
|
||
}
|
||
|
||
.spin-steps span {
|
||
font-family: var(--yc-font);
|
||
font-weight: 700;
|
||
background: #efe6d5;
|
||
color: #8f8275;
|
||
border-radius: 999px;
|
||
padding: 4px 16px;
|
||
|
||
&.active {
|
||
background: var(--yc-forest);
|
||
color: #fff;
|
||
}
|
||
|
||
&.done {
|
||
background: var(--yc-kraft);
|
||
color: #5a3a24;
|
||
}
|
||
}
|
||
|
||
.btn {
|
||
font-family: var(--yc-font);
|
||
font-weight: 700;
|
||
border-radius: 999px;
|
||
}
|
||
|
||
.btn-primary {
|
||
background: linear-gradient(180deg, var(--yc-ember-bright), var(--yc-ember));
|
||
border: none;
|
||
color: #fff;
|
||
box-shadow: 0 3px 0 #7a3518;
|
||
|
||
&:hover:not(:disabled) {
|
||
background: linear-gradient(180deg, #f39a4f, #c45f2e);
|
||
color: #fff;
|
||
box-shadow: 0 3px 0 #7a3518, 0 0 14px rgb(232 131 58 / 0.55);
|
||
}
|
||
|
||
&:disabled {
|
||
background: #d9cfc2;
|
||
color: #8f8275;
|
||
box-shadow: none;
|
||
}
|
||
}
|
||
|
||
// Tlačítko roztočení — rozhořívající se táborák
|
||
.spin-button {
|
||
font-family: var(--yc-display);
|
||
font-weight: 500;
|
||
font-size: 1.2rem;
|
||
padding: 12px 38px;
|
||
}
|
||
|
||
.btn-outline-primary {
|
||
background: var(--yc-panel);
|
||
border: 2px solid var(--yc-ember-bright);
|
||
color: var(--yc-ember);
|
||
|
||
&:hover {
|
||
background: #fbe7d6;
|
||
color: var(--yc-ember);
|
||
}
|
||
}
|
||
|
||
.btn-secondary {
|
||
background: var(--yc-forest);
|
||
border: none;
|
||
color: #fff;
|
||
}
|
||
|
||
.spin-source {
|
||
background: #efe6d5;
|
||
|
||
> .btn-primary {
|
||
background: var(--yc-forest);
|
||
box-shadow: none !important;
|
||
}
|
||
|
||
> .btn-outline-primary {
|
||
background: transparent;
|
||
color: var(--yc-text);
|
||
|
||
&:hover {
|
||
background: var(--yc-panel);
|
||
}
|
||
}
|
||
}
|
||
|
||
.spin-result {
|
||
font-weight: 700;
|
||
|
||
strong {
|
||
color: var(--yc-ember);
|
||
}
|
||
}
|
||
|
||
.spin-options {
|
||
background: var(--yc-panel);
|
||
border: 1px solid var(--yc-line);
|
||
border-radius: 16px;
|
||
|
||
li:hover {
|
||
background: #f8efe0;
|
||
}
|
||
}
|
||
|
||
.spin-options-header {
|
||
border-bottom: 2px dashed var(--yc-line);
|
||
color: var(--yc-forest);
|
||
}
|
||
|
||
.spin-empty {
|
||
border-color: var(--yc-line);
|
||
}
|
||
|
||
.spin-wheel-pointer {
|
||
border-top-color: var(--yc-ember);
|
||
filter: drop-shadow(0 2px 1px rgb(90 58 36 / 0.4));
|
||
}
|
||
|
||
.spin-seg {
|
||
stroke: #fffdf8;
|
||
stroke-width: 2;
|
||
}
|
||
|
||
.spin-seg-label {
|
||
font-family: var(--yc-font);
|
||
font-weight: 700;
|
||
}
|
||
}
|
||
|
||
// Tmavý režim — noc u táboráku
|
||
[data-bs-theme="dark"] .spin-wheel-modal.spin-theme-yurucamp {
|
||
--yc-ember: #ff9a52;
|
||
--yc-ember-bright: #ffb36b;
|
||
--yc-forest: #2f5a3c;
|
||
--yc-line: #2f3a4f;
|
||
--yc-panel: #19223a;
|
||
--yc-text: #f3ece0;
|
||
--yc-kraft: #2e2519;
|
||
--wheel-c0: #2f5a3c;
|
||
--wheel-rim: #3a2618;
|
||
|
||
.modal-content {
|
||
background:
|
||
radial-gradient(1.2px 1.2px at 24px 38px, rgb(255 255 255 / 0.85), transparent) 0 0 / 180px 180px,
|
||
radial-gradient(1px 1px at 120px 100px, rgb(255 255 255 / 0.6), transparent) 0 0 / 180px 180px,
|
||
radial-gradient(ellipse 70% 45% at 50% 115%, rgb(255 140 60 / 0.25), transparent 70%),
|
||
#10172a;
|
||
}
|
||
|
||
.modal-header {
|
||
background:
|
||
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 60'%3E%3Cpath d='M0 60L88 13Q96 8 104 9H136Q144 8 152 13L240 60Z' fill='%23172038'/%3E%3Cpath d='M88 13Q96 8 104 9H136Q144 8 152 13L141 21L132 16L124 23L114 16L106 22L97 18Z' fill='%23aebbd0'/%3E%3C/svg%3E") right 60px bottom / auto 70% no-repeat,
|
||
#0b1120;
|
||
}
|
||
|
||
.spin-steps span:not(.active):not(.done) {
|
||
background: #222d48;
|
||
color: #9189a0;
|
||
}
|
||
|
||
.spin-steps span.done {
|
||
color: #ffb36b;
|
||
}
|
||
|
||
.btn-primary {
|
||
color: #2a1608;
|
||
|
||
&:hover:not(:disabled) {
|
||
color: #2a1608;
|
||
}
|
||
|
||
&:disabled {
|
||
background: #2f3a4f;
|
||
color: #9189a0;
|
||
}
|
||
}
|
||
|
||
.btn-outline-primary:hover {
|
||
background: #3a2618;
|
||
}
|
||
|
||
.spin-source {
|
||
background: #222d48;
|
||
}
|
||
|
||
.spin-options li:hover {
|
||
background: #222d48;
|
||
}
|
||
|
||
.spin-options-header {
|
||
color: #7fc28c;
|
||
}
|
||
|
||
.spin-seg {
|
||
stroke: #10172a;
|
||
}
|
||
}
|
||
|
||
// ============================================
|
||
// STYL SPY × FAMILY kola štěstí (dle stylu zvoleného v nastavení).
|
||
// Výseče v retro barvách Forgerových (petrolejová, korálová, hořčicová,
|
||
// růžová Anya, námořnická, olivová), krémové linky a střed jako hvězda Stella.
|
||
// ============================================
|
||
.spin-wheel-modal.spin-theme-spyfamily {
|
||
--sxf-font: 'Nunito', sans-serif;
|
||
--sxf-display: 'Playfair Display', Georgia, serif;
|
||
--sxf-typewriter: 'Courier Prime', 'Courier New', monospace;
|
||
--sxf-teal: #1e6f6c;
|
||
--sxf-teal-deep: #155452;
|
||
--sxf-coral: #d9483b;
|
||
--sxf-line: #e3d7bf;
|
||
--sxf-panel: #fffcf5;
|
||
--sxf-text: #2b2620;
|
||
--sxf-cream-line: #f7f0e1;
|
||
--wheel-c0: #1e6f6c;
|
||
--wheel-c1: #d9483b;
|
||
--wheel-c2: #e2a93b;
|
||
--wheel-c3: #e98aa8;
|
||
--wheel-c4: #22303c;
|
||
--wheel-c5: #6b8f4e;
|
||
--wheel-rim: #22303c;
|
||
--wheel-hub: #c9a44c;
|
||
|
||
font-family: var(--sxf-font);
|
||
|
||
.modal-content {
|
||
border: 1px solid var(--sxf-line);
|
||
border-radius: 14px;
|
||
overflow: hidden;
|
||
background: #f7f0e1;
|
||
color: var(--sxf-text);
|
||
}
|
||
|
||
.modal-header {
|
||
background:
|
||
linear-gradient(var(--sxf-coral), var(--sxf-coral)) left bottom / 100% 3px no-repeat,
|
||
linear-gradient(var(--sxf-cream-line), var(--sxf-cream-line)) left bottom 5px / 100% 2px no-repeat,
|
||
#22303c;
|
||
border-bottom: none;
|
||
|
||
h2 {
|
||
color: #fbf6ea;
|
||
font-family: var(--sxf-display);
|
||
font-weight: 800;
|
||
}
|
||
|
||
.btn-close {
|
||
filter: invert(1) grayscale(1) brightness(2);
|
||
opacity: 0.9;
|
||
}
|
||
}
|
||
|
||
.modal-footer {
|
||
border-top: 1px solid var(--sxf-line);
|
||
}
|
||
|
||
.spin-steps span {
|
||
font-family: var(--sxf-typewriter);
|
||
font-weight: 700;
|
||
background: #efe6d3;
|
||
color: #8c8274;
|
||
border-radius: 4px;
|
||
padding: 4px 16px;
|
||
|
||
&.active {
|
||
background: var(--sxf-teal);
|
||
color: #fffcf5;
|
||
}
|
||
|
||
&.done {
|
||
background: #f2e2b9;
|
||
color: #2b2418;
|
||
}
|
||
}
|
||
|
||
.btn {
|
||
font-family: var(--sxf-font);
|
||
font-weight: 800;
|
||
border-radius: 4px;
|
||
}
|
||
|
||
.btn-primary {
|
||
background: var(--sxf-teal);
|
||
border: 1px solid var(--sxf-teal-deep);
|
||
color: #fffcf5;
|
||
box-shadow: inset 0 0 0 2px rgb(255 252 245 / 0.25), 0 2px 0 var(--sxf-teal-deep);
|
||
|
||
&:hover:not(:disabled) {
|
||
background: var(--sxf-teal-deep);
|
||
color: #fffcf5;
|
||
}
|
||
|
||
&:disabled {
|
||
background: #d6ccbb;
|
||
border-color: #d6ccbb;
|
||
color: #8c8274;
|
||
box-shadow: none;
|
||
}
|
||
}
|
||
|
||
// Tlačítko roztočení — korálové jako Yořiny růže
|
||
.spin-button {
|
||
font-family: var(--sxf-display);
|
||
font-style: italic;
|
||
font-size: 1.25rem;
|
||
padding: 10px 38px;
|
||
background: var(--sxf-coral);
|
||
border-color: #a8332a;
|
||
box-shadow: inset 0 0 0 2px rgb(255 252 245 / 0.3), 0 3px 0 #a8332a;
|
||
|
||
&:hover:not(:disabled) {
|
||
background: #c23a2e;
|
||
}
|
||
}
|
||
|
||
.btn-outline-primary {
|
||
background: var(--sxf-panel);
|
||
border: 2px solid var(--sxf-teal);
|
||
color: var(--sxf-teal);
|
||
|
||
&:hover {
|
||
background: #dcefeb;
|
||
color: var(--sxf-teal);
|
||
}
|
||
}
|
||
|
||
.btn-secondary {
|
||
background: #22303c;
|
||
border: 1px solid #22303c;
|
||
color: #fbf6ea;
|
||
}
|
||
|
||
.spin-source {
|
||
background: #efe6d3;
|
||
border-radius: 6px;
|
||
|
||
> .btn {
|
||
border-radius: 4px !important;
|
||
}
|
||
|
||
> .btn-outline-primary {
|
||
background: transparent;
|
||
color: var(--sxf-text);
|
||
|
||
&:hover {
|
||
background: var(--sxf-panel);
|
||
}
|
||
}
|
||
}
|
||
|
||
.spin-result {
|
||
font-weight: 800;
|
||
|
||
strong {
|
||
color: var(--sxf-coral);
|
||
}
|
||
}
|
||
|
||
.spin-options {
|
||
background: var(--sxf-panel);
|
||
border: 1px solid var(--sxf-line);
|
||
border-radius: 10px;
|
||
|
||
li:hover {
|
||
background: #f6ecd8;
|
||
}
|
||
}
|
||
|
||
.spin-options-header {
|
||
border-bottom: 2px solid var(--sxf-coral);
|
||
color: var(--sxf-teal);
|
||
font-family: var(--sxf-typewriter);
|
||
}
|
||
|
||
.spin-empty {
|
||
border-color: var(--sxf-line);
|
||
}
|
||
|
||
.spin-wheel-pointer {
|
||
border-top-color: var(--sxf-coral);
|
||
filter: drop-shadow(0 2px 1px rgb(34 48 60 / 0.4));
|
||
}
|
||
|
||
.spin-seg {
|
||
stroke: #f7f0e1;
|
||
stroke-width: 2.5;
|
||
}
|
||
|
||
.spin-seg-label {
|
||
font-family: var(--sxf-font);
|
||
font-weight: 800;
|
||
}
|
||
}
|
||
|
||
// Tmavý režim — noční mise Thorn Princess
|
||
[data-bs-theme="dark"] .spin-wheel-modal.spin-theme-spyfamily {
|
||
--sxf-teal: #4fb3ac;
|
||
--sxf-teal-deep: #3a8f89;
|
||
--sxf-coral: #e0475a;
|
||
--sxf-line: #3a2a34;
|
||
--sxf-panel: #1f1720;
|
||
--sxf-text: #f4ece2;
|
||
--sxf-cream-line: #d8b866;
|
||
--wheel-c0: #2f8f89;
|
||
--wheel-c1: #b3263a;
|
||
--wheel-c4: #3c2a3e;
|
||
--wheel-rim: #0c080c;
|
||
--wheel-hub: #d8b866;
|
||
|
||
.modal-content {
|
||
background:
|
||
radial-gradient(ellipse 60% 45% at 85% -5%, rgb(224 71 90 / 0.18), transparent 70%),
|
||
#140e14;
|
||
}
|
||
|
||
.modal-header {
|
||
background-color: #0c080c;
|
||
}
|
||
|
||
.spin-steps span:not(.active):not(.done) {
|
||
background: #2a1f2b;
|
||
color: #968a90;
|
||
}
|
||
|
||
.spin-steps span.done {
|
||
background: #2e2418;
|
||
color: #d8b866;
|
||
}
|
||
|
||
.btn-primary {
|
||
background: #d8b866;
|
||
border-color: #a88a3f;
|
||
color: #1c1410;
|
||
box-shadow: inset 0 0 0 2px rgb(255 255 255 / 0.2), 0 2px 0 #7f682f;
|
||
|
||
&:hover:not(:disabled) {
|
||
background: #e8cc82;
|
||
color: #1c1410;
|
||
}
|
||
|
||
&:disabled {
|
||
background: #3a2e34;
|
||
border-color: #3a2e34;
|
||
color: #968a90;
|
||
}
|
||
}
|
||
|
||
.spin-button {
|
||
background: var(--sxf-coral);
|
||
border-color: #8f1d2c;
|
||
color: #fffcf5;
|
||
box-shadow: inset 0 0 0 2px rgb(255 252 245 / 0.25), 0 3px 0 #8f1d2c;
|
||
|
||
&:hover:not(:disabled) {
|
||
background: #c93a4d;
|
||
color: #fffcf5;
|
||
}
|
||
}
|
||
|
||
.btn-outline-primary {
|
||
border-color: #d8b866;
|
||
color: #d8b866;
|
||
|
||
&:hover {
|
||
background: #34281c;
|
||
color: #e8cc82;
|
||
}
|
||
}
|
||
|
||
.btn-secondary {
|
||
background: #2a1f2b;
|
||
border-color: #3a2a34;
|
||
}
|
||
|
||
.spin-source {
|
||
background: #2a1f2b;
|
||
}
|
||
|
||
.spin-options li:hover {
|
||
background: #2a1f2b;
|
||
}
|
||
|
||
.spin-options-header {
|
||
color: #d8b866;
|
||
}
|
||
|
||
.spin-seg {
|
||
stroke: #140e14;
|
||
}
|
||
}
|
||
|
||
// ============================================
|
||
// STYL APOTHECARY DIARIES kola štěstí (dle stylu zvoleného v nastavení).
|
||
// Výseče v barvách vnitřního paláce (rumělka, nefrit, zlato, inkoust,
|
||
// fialová Jinshiho, švestkový květ), zlaté linky a střed jako zlatá pečeť.
|
||
// ============================================
|
||
.spin-wheel-modal.spin-theme-apothecary {
|
||
--apo-font: 'Nunito', sans-serif;
|
||
--apo-display: 'Shippori Mincho', 'Noto Serif JP', serif;
|
||
--apo-vermilion: #a8322a;
|
||
--apo-vermilion-deep: #84241d;
|
||
--apo-jade: #2f7d62;
|
||
--apo-gold: #c9a24a;
|
||
--apo-line: #e0d4bb;
|
||
--apo-panel: #fffcf4;
|
||
--apo-text: #24201c;
|
||
--wheel-c0: #a8322a;
|
||
--wheel-c1: #2f7d62;
|
||
--wheel-c2: #c9a24a;
|
||
--wheel-c3: #24201c;
|
||
--wheel-c4: #6b5aa6;
|
||
--wheel-c5: #c76a86;
|
||
--wheel-rim: #3a1f14;
|
||
--wheel-hub: #d9b65e;
|
||
|
||
font-family: var(--apo-font);
|
||
|
||
.modal-content {
|
||
border: 1px solid var(--apo-gold);
|
||
border-radius: 10px;
|
||
overflow: hidden;
|
||
background: #f5efe1;
|
||
color: var(--apo-text);
|
||
}
|
||
|
||
.modal-header {
|
||
background:
|
||
linear-gradient(var(--apo-gold), var(--apo-gold)) left bottom / 100% 2px no-repeat,
|
||
linear-gradient(var(--apo-gold), var(--apo-gold)) left bottom 4px / 100% 1px no-repeat,
|
||
#24201c;
|
||
border-bottom: none;
|
||
|
||
h2 {
|
||
color: #fdf6e6;
|
||
font-family: var(--apo-display);
|
||
font-weight: 800;
|
||
}
|
||
|
||
.btn-close {
|
||
filter: invert(1) grayscale(1) brightness(2);
|
||
opacity: 0.9;
|
||
}
|
||
}
|
||
|
||
.modal-footer {
|
||
border-top: 3px double var(--apo-gold);
|
||
}
|
||
|
||
.spin-steps span {
|
||
font-family: var(--apo-display);
|
||
font-weight: 800;
|
||
background: #ece3d0;
|
||
color: #8b7f70;
|
||
border-radius: 3px;
|
||
padding: 4px 16px;
|
||
|
||
&.active {
|
||
background: var(--apo-vermilion);
|
||
color: #fdf6e6;
|
||
box-shadow: inset 0 0 0 2px rgb(201 162 74 / 0.6);
|
||
}
|
||
|
||
&.done {
|
||
background: var(--apo-jade);
|
||
color: #fff;
|
||
}
|
||
}
|
||
|
||
.btn {
|
||
font-family: var(--apo-font);
|
||
font-weight: 800;
|
||
border-radius: 3px;
|
||
}
|
||
|
||
.btn-primary {
|
||
background: var(--apo-vermilion);
|
||
border: 1px solid var(--apo-vermilion-deep);
|
||
color: #fdf6e6;
|
||
box-shadow: inset 0 0 0 2px rgb(201 162 74 / 0.55);
|
||
|
||
&:hover:not(:disabled) {
|
||
background: var(--apo-vermilion-deep);
|
||
color: #fdf6e6;
|
||
box-shadow: inset 0 0 0 2px var(--apo-gold), 0 0 12px rgb(201 162 74 / 0.45);
|
||
}
|
||
|
||
&:disabled {
|
||
background: #d8cfbf;
|
||
border-color: #d8cfbf;
|
||
color: #8b7f70;
|
||
box-shadow: none;
|
||
}
|
||
}
|
||
|
||
// Tlačítko roztočení — zlatá pečeť
|
||
.spin-button {
|
||
font-family: var(--apo-display);
|
||
font-size: 1.2rem;
|
||
padding: 10px 38px;
|
||
}
|
||
|
||
.btn-outline-primary {
|
||
background: var(--apo-panel);
|
||
border: 1px solid var(--apo-gold);
|
||
color: var(--apo-vermilion);
|
||
|
||
&:hover {
|
||
background: #f6e2dc;
|
||
color: var(--apo-vermilion);
|
||
}
|
||
}
|
||
|
||
.btn-secondary {
|
||
background: var(--apo-jade);
|
||
border: 1px solid #22604a;
|
||
color: #fff;
|
||
}
|
||
|
||
.spin-source {
|
||
background: #ece3d0;
|
||
border-radius: 4px;
|
||
|
||
> .btn {
|
||
border-radius: 3px !important;
|
||
}
|
||
|
||
> .btn-outline-primary {
|
||
background: transparent;
|
||
color: var(--apo-text);
|
||
|
||
&:hover {
|
||
background: var(--apo-panel);
|
||
}
|
||
}
|
||
}
|
||
|
||
.spin-result {
|
||
font-weight: 800;
|
||
|
||
strong {
|
||
color: var(--apo-vermilion);
|
||
}
|
||
}
|
||
|
||
.spin-options {
|
||
background: var(--apo-panel);
|
||
border: 1px solid var(--apo-line);
|
||
border-radius: 8px;
|
||
|
||
li:hover {
|
||
background: #f4ead6;
|
||
}
|
||
}
|
||
|
||
.spin-options-header {
|
||
border-bottom: 3px double var(--apo-gold);
|
||
color: var(--apo-vermilion);
|
||
font-family: var(--apo-display);
|
||
}
|
||
|
||
.spin-empty {
|
||
border-color: var(--apo-line);
|
||
}
|
||
|
||
.spin-wheel-pointer {
|
||
border-top-color: var(--apo-vermilion);
|
||
filter: drop-shadow(0 2px 1px rgb(58 31 20 / 0.4));
|
||
}
|
||
|
||
.spin-seg {
|
||
stroke: #d9b65e;
|
||
stroke-width: 2;
|
||
}
|
||
|
||
.spin-seg-label {
|
||
font-family: var(--apo-display);
|
||
font-weight: 800;
|
||
}
|
||
}
|
||
|
||
// Tmavý režim — noc v paláci pod lampiony
|
||
[data-bs-theme="dark"] .spin-wheel-modal.spin-theme-apothecary {
|
||
--apo-vermilion: #d6503f;
|
||
--apo-vermilion-deep: #b53b2d;
|
||
--apo-jade: #3f9474;
|
||
--apo-gold: #d9b65e;
|
||
--apo-line: #3a2e2a;
|
||
--apo-panel: #1e1a22;
|
||
--apo-text: #f2eadb;
|
||
--wheel-c0: #b53b2d;
|
||
--wheel-c3: #3a3036;
|
||
--wheel-rim: #0e0c10;
|
||
|
||
.modal-content {
|
||
background:
|
||
radial-gradient(circle at 8% 0%, rgb(214 80 63 / 0.22), transparent 35%),
|
||
radial-gradient(circle at 92% 0%, rgb(232 165 74 / 0.16), transparent 32%),
|
||
#14121a;
|
||
}
|
||
|
||
.modal-header {
|
||
background-color: #0e0c10;
|
||
}
|
||
|
||
.spin-steps span:not(.active):not(.done) {
|
||
background: #29232d;
|
||
color: #948a80;
|
||
}
|
||
|
||
.btn-primary:disabled {
|
||
background: #3a3036;
|
||
border-color: #3a3036;
|
||
color: #948a80;
|
||
}
|
||
|
||
.btn-outline-primary {
|
||
color: #e8a54a;
|
||
|
||
&:hover {
|
||
background: #3a2618;
|
||
color: #f2bd6a;
|
||
}
|
||
}
|
||
|
||
.spin-source {
|
||
background: #29232d;
|
||
}
|
||
|
||
.spin-options li:hover {
|
||
background: #29232d;
|
||
}
|
||
|
||
.spin-options-header {
|
||
color: #d9b65e;
|
||
}
|
||
}
|
||
|
||
// ============================================
|
||
// STYL FRIEREN kola štěstí (dle stylu zvoleného v nastavení).
|
||
// Výseče v barvách družiny a krajiny (fialová Fern, levandule, Himmelova
|
||
// modř, zlato, louka, růžová), zlaté linky a střed jako magický kruh.
|
||
// ============================================
|
||
.spin-wheel-modal.spin-theme-frieren {
|
||
--fr-font: 'Nunito', sans-serif;
|
||
--fr-display: 'Cormorant Garamond', Georgia, serif;
|
||
--fr-violet: #5b4a9e;
|
||
--fr-violet-deep: #463882;
|
||
--fr-lavender: #8e7cc3;
|
||
--fr-gold: #bf9b4a;
|
||
--fr-line: #dcd8ea;
|
||
--fr-panel: #ffffff;
|
||
--fr-text: #2e2a3d;
|
||
--wheel-c0: #5b4a9e;
|
||
--wheel-c1: #8e7cc3;
|
||
--wheel-c2: #5b8fc7;
|
||
--wheel-c3: #bf9b4a;
|
||
--wheel-c4: #6f9f6a;
|
||
--wheel-c5: #c76a96;
|
||
--wheel-rim: #3d3466;
|
||
--wheel-hub: #e9c86a;
|
||
|
||
font-family: var(--fr-font);
|
||
|
||
.modal-content {
|
||
border: 1px solid var(--fr-line);
|
||
border-radius: 18px;
|
||
overflow: hidden;
|
||
background: linear-gradient(180deg, #e6ecf7 0, #f6f5fb 180px);
|
||
color: var(--fr-text);
|
||
}
|
||
|
||
.modal-header {
|
||
background:
|
||
linear-gradient(var(--fr-gold), var(--fr-gold)) left bottom / 100% 1px no-repeat,
|
||
linear-gradient(90deg, #3d3466, #4b4380);
|
||
border-bottom: none;
|
||
|
||
h2 {
|
||
color: #f6f3ff;
|
||
font-family: var(--fr-display);
|
||
font-weight: 700;
|
||
}
|
||
|
||
.btn-close {
|
||
filter: invert(1) grayscale(1) brightness(2);
|
||
opacity: 0.9;
|
||
}
|
||
}
|
||
|
||
.modal-footer {
|
||
border-top: 1px solid var(--fr-line);
|
||
}
|
||
|
||
.spin-steps span {
|
||
font-family: var(--fr-display);
|
||
font-weight: 700;
|
||
font-size: 1.05rem;
|
||
background: #ebe8f3;
|
||
color: #8a869b;
|
||
border-radius: 999px;
|
||
padding: 2px 16px;
|
||
|
||
&.active {
|
||
background: var(--fr-violet);
|
||
color: #fff;
|
||
box-shadow: 0 0 10px rgb(142 124 195 / 0.5);
|
||
}
|
||
|
||
&.done {
|
||
background: #e4def6;
|
||
color: var(--fr-violet-deep);
|
||
}
|
||
}
|
||
|
||
.btn {
|
||
font-family: var(--fr-font);
|
||
font-weight: 800;
|
||
border-radius: 999px;
|
||
}
|
||
|
||
.btn-primary {
|
||
background: linear-gradient(135deg, var(--fr-violet), var(--fr-lavender));
|
||
border: none;
|
||
color: #fff;
|
||
box-shadow: 0 3px 10px rgb(91 74 158 / 0.25);
|
||
|
||
&:hover:not(:disabled) {
|
||
background: linear-gradient(135deg, var(--fr-violet-deep), var(--fr-violet));
|
||
color: #fff;
|
||
box-shadow: 0 0 0 3px rgb(191 155 74 / 0.35), 0 0 18px rgb(142 124 195 / 0.55);
|
||
}
|
||
|
||
&:disabled {
|
||
background: #d9d6e4;
|
||
color: #8a869b;
|
||
box-shadow: none;
|
||
}
|
||
}
|
||
|
||
// Tlačítko roztočení — seslání kouzla
|
||
.spin-button {
|
||
font-family: var(--fr-display);
|
||
font-weight: 700;
|
||
font-size: 1.35rem;
|
||
padding: 8px 40px;
|
||
}
|
||
|
||
.btn-outline-primary {
|
||
background: var(--fr-panel);
|
||
border: 1px solid var(--fr-lavender);
|
||
color: var(--fr-violet);
|
||
|
||
&:hover {
|
||
background: #ebe6f7;
|
||
color: var(--fr-violet);
|
||
}
|
||
}
|
||
|
||
.btn-secondary {
|
||
background: #6f7a92;
|
||
border: none;
|
||
color: #fff;
|
||
}
|
||
|
||
.spin-source {
|
||
background: #ebe8f3;
|
||
|
||
> .btn-outline-primary {
|
||
background: transparent;
|
||
color: var(--fr-text);
|
||
|
||
&:hover {
|
||
background: var(--fr-panel);
|
||
}
|
||
}
|
||
}
|
||
|
||
.spin-result {
|
||
font-weight: 800;
|
||
|
||
strong {
|
||
color: var(--fr-violet);
|
||
}
|
||
}
|
||
|
||
.spin-options {
|
||
background: var(--fr-panel);
|
||
border: 1px solid var(--fr-line);
|
||
border-radius: 14px;
|
||
|
||
li:hover {
|
||
background: #f1eef9;
|
||
}
|
||
}
|
||
|
||
.spin-options-header {
|
||
border-bottom: 1px solid var(--fr-gold);
|
||
color: var(--fr-violet);
|
||
font-family: var(--fr-display);
|
||
font-size: 1.05rem;
|
||
}
|
||
|
||
.spin-empty {
|
||
border-color: var(--fr-line);
|
||
}
|
||
|
||
.spin-wheel-pointer {
|
||
border-top-color: var(--fr-gold);
|
||
filter: drop-shadow(0 0 4px rgb(233 200 106 / 0.7));
|
||
}
|
||
|
||
.spin-seg {
|
||
stroke: #e9c86a;
|
||
stroke-width: 1.5;
|
||
}
|
||
|
||
.spin-seg-label {
|
||
font-family: var(--fr-font);
|
||
font-weight: 800;
|
||
}
|
||
}
|
||
|
||
// Tmavý režim — noc pod hvězdami
|
||
[data-bs-theme="dark"] .spin-wheel-modal.spin-theme-frieren {
|
||
--fr-violet: #b3a3ea;
|
||
--fr-violet-deep: #9a88dc;
|
||
--fr-gold: #dcc07a;
|
||
--fr-line: #2e2b45;
|
||
--fr-panel: #1b1a2b;
|
||
--fr-text: #eeebf7;
|
||
--wheel-c0: #45397a;
|
||
--wheel-rim: #0c0b16;
|
||
|
||
.modal-content {
|
||
background:
|
||
radial-gradient(1.2px 1.2px at 30px 40px, rgb(255 255 255 / 0.85), transparent) 0 0 / 200px 200px,
|
||
radial-gradient(1px 1px at 140px 110px, rgb(220 210 255 / 0.7), transparent) 0 0 / 200px 200px,
|
||
radial-gradient(circle at 88% 8%, rgb(255 244 210 / 0.16) 0 24px, transparent 90px),
|
||
#11101d;
|
||
}
|
||
|
||
.modal-header {
|
||
background:
|
||
linear-gradient(var(--fr-gold), var(--fr-gold)) left bottom / 100% 1px no-repeat,
|
||
#0c0b16;
|
||
}
|
||
|
||
.spin-steps span:not(.active):not(.done) {
|
||
background: #242238;
|
||
color: #8f8ba5;
|
||
}
|
||
|
||
.spin-steps span.active {
|
||
color: #17142a;
|
||
}
|
||
|
||
.spin-steps span.done {
|
||
background: #2b2646;
|
||
color: #c8bbf2;
|
||
}
|
||
|
||
.btn-primary {
|
||
background: linear-gradient(135deg, #8e7cc3, #b3a3ea);
|
||
color: #17142a;
|
||
|
||
&:hover:not(:disabled) {
|
||
background: linear-gradient(135deg, #a593dc, #c8bbf2);
|
||
color: #17142a;
|
||
}
|
||
|
||
&:disabled {
|
||
background: #2e2b45;
|
||
color: #8f8ba5;
|
||
}
|
||
}
|
||
|
||
.btn-outline-primary:hover {
|
||
background: #2b2646;
|
||
}
|
||
|
||
.btn-secondary {
|
||
background: #2e2b45;
|
||
}
|
||
|
||
.spin-source {
|
||
background: #242238;
|
||
}
|
||
|
||
.spin-options li:hover {
|
||
background: #242238;
|
||
}
|
||
|
||
.spin-options-header {
|
||
color: #dcc07a;
|
||
}
|
||
}
|
||
|
||
// ============================================
|
||
// STYL MY LITTLE PONY (G5) kola štěstí (dle stylu zvoleného v nastavení).
|
||
// Výseče v barvách Mane 5 a Misty, bílé linky a střed jako sluníčko Sunny.
|
||
// ============================================
|
||
.spin-wheel-modal.spin-theme-mlpg5 {
|
||
--g5-font: 'Nunito', sans-serif;
|
||
--g5-display: 'Baloo 2', 'Nunito', sans-serif;
|
||
--g5-sunny: #f08a3c;
|
||
--g5-sunny-deep: #c85a14;
|
||
--g5-pipp: #ee5fa8;
|
||
--g5-hitch: #2fa89c;
|
||
--g5-line: #f3dccb;
|
||
--g5-panel: #ffffff;
|
||
--g5-text: #2b2440;
|
||
--wheel-c0: #f08a3c;
|
||
--wheel-c1: #ee5fa8;
|
||
--wheel-c2: #9b6fe0;
|
||
--wheel-c3: #5a7bd8;
|
||
--wheel-c4: #2fa89c;
|
||
--wheel-c5: #6fb1d6;
|
||
--wheel-rim: #1f8f9a;
|
||
--wheel-hub: #ffd23f;
|
||
|
||
font-family: var(--g5-font);
|
||
|
||
.modal-content {
|
||
border: none;
|
||
border-radius: 26px;
|
||
overflow: hidden;
|
||
background: linear-gradient(180deg, #e2f6f6 0, #fff8f1 200px);
|
||
color: var(--g5-text);
|
||
}
|
||
|
||
.modal-header {
|
||
background:
|
||
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='12'%3E%3Cpath d='M0 12V6Q20 0 40 6T80 6V12Z' fill='%23e2f6f6'/%3E%3C/svg%3E") left bottom / 80px 12px repeat-x,
|
||
linear-gradient(120deg, #1f8f9a, #2fa89c);
|
||
border-bottom: none;
|
||
padding-bottom: calc(var(--bs-modal-header-padding-y, 1rem) + 10px);
|
||
|
||
h2 {
|
||
color: #fff;
|
||
font-family: var(--g5-display);
|
||
font-weight: 800;
|
||
}
|
||
|
||
.btn-close {
|
||
filter: invert(1) grayscale(1) brightness(2);
|
||
opacity: 0.9;
|
||
}
|
||
}
|
||
|
||
.modal-footer {
|
||
border-top: 2px solid var(--g5-line);
|
||
}
|
||
|
||
.spin-steps span {
|
||
font-family: var(--g5-display);
|
||
font-weight: 800;
|
||
background: #f3ece6;
|
||
color: #908aa3;
|
||
border-radius: 999px;
|
||
padding: 2px 16px;
|
||
|
||
&.active {
|
||
background: linear-gradient(120deg, var(--g5-sunny), var(--g5-pipp));
|
||
color: #fff;
|
||
}
|
||
|
||
&.done {
|
||
background: var(--g5-hitch);
|
||
color: #fff;
|
||
}
|
||
}
|
||
|
||
.btn {
|
||
font-family: var(--g5-font);
|
||
font-weight: 800;
|
||
border-radius: 999px;
|
||
}
|
||
|
||
.btn-primary {
|
||
background: linear-gradient(120deg, var(--g5-sunny), var(--g5-pipp));
|
||
border: none;
|
||
color: #fff;
|
||
text-shadow: 0 1px 0 rgb(0 0 0 / 0.15);
|
||
box-shadow: 0 4px 0 #c43d82;
|
||
|
||
&:hover:not(:disabled) {
|
||
background: linear-gradient(120deg, var(--g5-sunny), var(--g5-pipp));
|
||
color: #fff;
|
||
filter: brightness(1.07) saturate(1.1);
|
||
}
|
||
|
||
&:active:not(:disabled) {
|
||
transform: translateY(3px);
|
||
box-shadow: 0 1px 0 #c43d82;
|
||
}
|
||
|
||
&:disabled {
|
||
background: #e3dde9;
|
||
color: #908aa3;
|
||
text-shadow: none;
|
||
box-shadow: 0 4px 0 #cbc4d6;
|
||
}
|
||
}
|
||
|
||
// Tlačítko roztočení — velká buclatá pilulka
|
||
.spin-button {
|
||
font-family: var(--g5-display);
|
||
font-size: 1.35rem;
|
||
padding: 8px 40px 4px;
|
||
box-shadow: 0 5px 0 #c43d82, 0 10px 20px -6px rgb(238 95 168 / 0.6);
|
||
}
|
||
|
||
.btn-outline-primary {
|
||
background: var(--g5-panel);
|
||
border: 2px solid var(--g5-pipp);
|
||
color: var(--g5-sunny-deep);
|
||
|
||
&:hover {
|
||
background: #ffeadb;
|
||
color: var(--g5-sunny-deep);
|
||
}
|
||
}
|
||
|
||
.btn-secondary {
|
||
background: var(--g5-hitch);
|
||
border: none;
|
||
color: #fff;
|
||
box-shadow: 0 4px 0 #1e7a70;
|
||
}
|
||
|
||
.spin-source {
|
||
background: #f3ece6;
|
||
|
||
> .btn-primary {
|
||
box-shadow: none !important;
|
||
}
|
||
|
||
> .btn-outline-primary {
|
||
background: transparent;
|
||
color: var(--g5-text);
|
||
|
||
&:hover {
|
||
background: var(--g5-panel);
|
||
}
|
||
}
|
||
}
|
||
|
||
.spin-result {
|
||
font-weight: 800;
|
||
|
||
strong {
|
||
color: var(--g5-sunny-deep);
|
||
}
|
||
}
|
||
|
||
.spin-options {
|
||
background: var(--g5-panel);
|
||
border: 1px solid var(--g5-line);
|
||
border-radius: 20px;
|
||
|
||
li:hover {
|
||
background: #fff1e5;
|
||
}
|
||
}
|
||
|
||
.spin-options-header {
|
||
border-bottom: 2px solid var(--g5-line);
|
||
color: var(--g5-pipp);
|
||
font-family: var(--g5-display);
|
||
}
|
||
|
||
.spin-empty {
|
||
border-color: var(--g5-line);
|
||
}
|
||
|
||
.spin-wheel-pointer {
|
||
border-top-color: var(--g5-pipp);
|
||
filter: drop-shadow(0 3px 2px rgb(196 61 130 / 0.45));
|
||
}
|
||
|
||
.spin-seg {
|
||
stroke: #fff;
|
||
stroke-width: 3;
|
||
}
|
||
|
||
.spin-seg-label {
|
||
font-family: var(--g5-display);
|
||
font-weight: 800;
|
||
}
|
||
}
|
||
|
||
// Tmavý režim — noční Bridlewood
|
||
[data-bs-theme="dark"] .spin-wheel-modal.spin-theme-mlpg5 {
|
||
--g5-sunny: #ffa560;
|
||
--g5-sunny-deep: #ff9a4d;
|
||
--g5-pipp: #ff7cbb;
|
||
--g5-hitch: #1f8f86;
|
||
--g5-line: #2c3650;
|
||
--g5-panel: #1a2233;
|
||
--g5-text: #f1eefa;
|
||
--wheel-rim: #0c3a42;
|
||
|
||
.modal-content {
|
||
background:
|
||
radial-gradient(circle at 12% 20%, rgb(79 209 194 / 0.14) 0 40px, transparent 110px),
|
||
radial-gradient(circle at 88% 70%, rgb(184 148 242 / 0.16) 0 50px, transparent 130px),
|
||
#0f1724;
|
||
}
|
||
|
||
.modal-header {
|
||
background:
|
||
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='12'%3E%3Cpath d='M0 12V6Q20 0 40 6T80 6V12Z' fill='%230f1724'/%3E%3C/svg%3E") left bottom / 80px 12px repeat-x,
|
||
linear-gradient(120deg, #0c3a42, #12505a);
|
||
}
|
||
|
||
.spin-steps span:not(.active):not(.done) {
|
||
background: #222c40;
|
||
color: #8e89a6;
|
||
}
|
||
|
||
.btn-primary:disabled {
|
||
background: #2c3650;
|
||
color: #8e89a6;
|
||
box-shadow: 0 4px 0 #1f273a;
|
||
}
|
||
|
||
.btn-outline-primary:hover {
|
||
background: #3a2a26;
|
||
}
|
||
|
||
.btn-secondary {
|
||
box-shadow: 0 4px 0 #125a54;
|
||
}
|
||
|
||
.spin-source {
|
||
background: #222c40;
|
||
}
|
||
|
||
.spin-options li:hover {
|
||
background: #222c40;
|
||
}
|
||
|
||
.spin-seg {
|
||
stroke: #0f1724;
|
||
}
|
||
}
|
||
|
||
// ============================================
|
||
// STYL AGGRETSUKO kola štěstí (dle stylu zvoleného v nastavení).
|
||
// Výseče v barvách kanceláře (rezavá Retsuko, ocelově modrá, lepicí
|
||
// papírek, razítko, růžová Tsunoda, šedá Haida), střed jako razítko hanko.
|
||
// V rage mode černé kolo s rudými výsečemi.
|
||
// ============================================
|
||
.spin-wheel-modal.spin-theme-aggretsuko {
|
||
--agg-font: 'Nunito', sans-serif;
|
||
--agg-display: 'M PLUS Rounded 1c', 'Nunito', sans-serif;
|
||
--agg-metal: 'Metal Mania', 'M PLUS Rounded 1c', sans-serif;
|
||
--agg-retsuko: #d9673a;
|
||
--agg-retsuko-deep: #b4481f;
|
||
--agg-office: #4a5d7a;
|
||
--agg-line: #ecdccb;
|
||
--agg-panel: #ffffff;
|
||
--agg-text: #2f2a2a;
|
||
--wheel-c0: #d9673a;
|
||
--wheel-c1: #4a5d7a;
|
||
--wheel-c2: #e8b923;
|
||
--wheel-c3: #c8102e;
|
||
--wheel-c4: #e08aa6;
|
||
--wheel-c5: #6b6f7a;
|
||
--wheel-rim: #394a63;
|
||
--wheel-hub: #fff4e8;
|
||
|
||
font-family: var(--agg-font);
|
||
|
||
.modal-content {
|
||
border: 1px solid var(--agg-line);
|
||
border-radius: 16px;
|
||
overflow: hidden;
|
||
background:
|
||
linear-gradient(rgb(74 93 122 / 0.07) 1px, transparent 1px) 0 0 / 100% 26px,
|
||
linear-gradient(90deg, rgb(74 93 122 / 0.07) 1px, transparent 1px) 0 0 / 104px 100%,
|
||
#fbf6ef;
|
||
color: var(--agg-text);
|
||
}
|
||
|
||
.modal-header {
|
||
background:
|
||
linear-gradient(var(--agg-retsuko), var(--agg-retsuko)) left bottom / 100% 4px no-repeat,
|
||
var(--agg-office);
|
||
border-bottom: none;
|
||
|
||
h2 {
|
||
color: #fff;
|
||
font-family: var(--agg-display);
|
||
font-weight: 800;
|
||
}
|
||
|
||
.btn-close {
|
||
filter: invert(1) grayscale(1) brightness(2);
|
||
opacity: 0.9;
|
||
}
|
||
}
|
||
|
||
.modal-footer {
|
||
border-top: 1px solid var(--agg-line);
|
||
}
|
||
|
||
.spin-steps span {
|
||
font-family: var(--agg-display);
|
||
font-weight: 800;
|
||
background: #f1e8de;
|
||
color: #8f8584;
|
||
border-radius: 6px;
|
||
padding: 4px 16px;
|
||
|
||
&.active {
|
||
background: var(--agg-retsuko);
|
||
color: #fff;
|
||
}
|
||
|
||
&.done {
|
||
background: #ffe873;
|
||
color: #3a3220;
|
||
}
|
||
}
|
||
|
||
.btn {
|
||
font-family: var(--agg-font);
|
||
font-weight: 800;
|
||
border-radius: 6px;
|
||
}
|
||
|
||
.btn-primary {
|
||
background: var(--agg-retsuko);
|
||
border: 1px solid var(--agg-retsuko-deep);
|
||
color: #fff;
|
||
box-shadow: 0 2px 0 var(--agg-retsuko-deep);
|
||
|
||
&:hover:not(:disabled) {
|
||
background: var(--agg-retsuko-deep);
|
||
color: #fff;
|
||
}
|
||
|
||
&:disabled {
|
||
background: #e4dcd4;
|
||
border-color: #e4dcd4;
|
||
color: #8f8584;
|
||
box-shadow: none;
|
||
}
|
||
}
|
||
|
||
// Tlačítko roztočení — Retsuko se chystá zařvat
|
||
.spin-button {
|
||
font-family: var(--agg-display);
|
||
font-size: 1.2rem;
|
||
padding: 10px 38px;
|
||
|
||
&:hover:not(:disabled) {
|
||
background: #c8102e;
|
||
border-color: #8f0a20;
|
||
animation: agg-rage 0.35s ease-in-out;
|
||
}
|
||
}
|
||
|
||
.btn-outline-primary {
|
||
background: var(--agg-panel);
|
||
border: 1px solid var(--agg-retsuko);
|
||
color: var(--agg-retsuko-deep);
|
||
|
||
&:hover {
|
||
background: #fde6d8;
|
||
color: var(--agg-retsuko-deep);
|
||
}
|
||
}
|
||
|
||
.btn-secondary {
|
||
background: var(--agg-office);
|
||
border: 1px solid #394a63;
|
||
color: #fff;
|
||
}
|
||
|
||
.spin-source {
|
||
background: #f1e8de;
|
||
border-radius: 8px;
|
||
|
||
> .btn {
|
||
border-radius: 6px !important;
|
||
}
|
||
|
||
> .btn-outline-primary {
|
||
background: transparent;
|
||
color: var(--agg-text);
|
||
|
||
&:hover {
|
||
background: var(--agg-panel);
|
||
}
|
||
}
|
||
}
|
||
|
||
.spin-result {
|
||
font-weight: 800;
|
||
|
||
strong {
|
||
color: var(--agg-retsuko-deep);
|
||
}
|
||
}
|
||
|
||
.spin-options {
|
||
background: var(--agg-panel);
|
||
border: 1px solid var(--agg-line);
|
||
border-radius: 12px;
|
||
|
||
li:hover {
|
||
background: #fff1e4;
|
||
}
|
||
}
|
||
|
||
.spin-options-header {
|
||
border-bottom: 2px solid var(--agg-retsuko);
|
||
color: var(--agg-office);
|
||
font-family: var(--agg-display);
|
||
}
|
||
|
||
.spin-empty {
|
||
border-color: var(--agg-line);
|
||
}
|
||
|
||
.spin-wheel-pointer {
|
||
border-top-color: #c8102e;
|
||
filter: drop-shadow(0 2px 1px rgb(0 0 0 / 0.3));
|
||
}
|
||
|
||
.spin-wheel-hub {
|
||
stroke: #c8102e;
|
||
}
|
||
|
||
.spin-seg {
|
||
stroke: #fff;
|
||
stroke-width: 2;
|
||
}
|
||
|
||
.spin-seg-label {
|
||
font-family: var(--agg-display);
|
||
font-weight: 800;
|
||
}
|
||
}
|
||
|
||
// Rage mode — karaoke box
|
||
[data-bs-theme="dark"] .spin-wheel-modal.spin-theme-aggretsuko {
|
||
--agg-retsuko: #ff4a3d;
|
||
--agg-retsuko-deep: #c8102e;
|
||
--agg-line: #3a1c20;
|
||
--agg-panel: #171314;
|
||
--agg-text: #f2ecea;
|
||
--wheel-c0: #c8102e;
|
||
--wheel-c1: #5c2a30;
|
||
--wheel-c2: #ff4a3d;
|
||
--wheel-c3: #3a1c20;
|
||
--wheel-c4: #8f0a20;
|
||
--wheel-c5: #6b4a4e;
|
||
--wheel-rim: #ff2e3f;
|
||
--wheel-hub: #000000;
|
||
|
||
.modal-content {
|
||
border-color: #ff2e3f;
|
||
background:
|
||
radial-gradient(ellipse 50% 40% at 50% -10%, rgb(255 46 63 / 0.3), transparent 70%),
|
||
#0d0b0c;
|
||
}
|
||
|
||
.modal-header {
|
||
background:
|
||
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='8'%3E%3Cpath d='M0 7L4 1L8 7L12 1L16 7' fill='none' stroke='%23ff2e3f' stroke-width='2'/%3E%3C/svg%3E") left bottom / 16px 8px repeat-x,
|
||
#000;
|
||
padding-bottom: calc(var(--bs-modal-header-padding-y, 1rem) + 6px);
|
||
|
||
h2 {
|
||
font-family: var(--agg-metal);
|
||
font-weight: 400;
|
||
letter-spacing: 0.03em;
|
||
text-shadow: 0 0 10px rgb(255 46 63 / 0.8);
|
||
}
|
||
}
|
||
|
||
.spin-steps span:not(.active):not(.done) {
|
||
background: #221a1b;
|
||
color: #8f8584;
|
||
}
|
||
|
||
.spin-steps span.active {
|
||
background: #c8102e;
|
||
}
|
||
|
||
.spin-steps span.done {
|
||
background: #2a0f12;
|
||
color: #ff4a3d;
|
||
}
|
||
|
||
.btn-primary {
|
||
background: #c8102e;
|
||
border-color: #ff2e3f;
|
||
box-shadow: 0 0 12px rgb(255 46 63 / 0.45);
|
||
|
||
&:hover:not(:disabled) {
|
||
background: #e0283f;
|
||
}
|
||
|
||
&:disabled {
|
||
background: #2a1f20;
|
||
border-color: #2a1f20;
|
||
color: #8f8584;
|
||
box-shadow: none;
|
||
}
|
||
}
|
||
|
||
.spin-button {
|
||
font-family: var(--agg-metal);
|
||
font-weight: 400;
|
||
font-size: 1.4rem;
|
||
letter-spacing: 0.04em;
|
||
}
|
||
|
||
.btn-outline-primary:hover {
|
||
background: #3a1416;
|
||
}
|
||
|
||
.btn-secondary {
|
||
background: #241c1d;
|
||
border-color: #3a2a2c;
|
||
}
|
||
|
||
.spin-source {
|
||
background: #221a1b;
|
||
}
|
||
|
||
.spin-options li:hover {
|
||
background: #221a1b;
|
||
}
|
||
|
||
.spin-options-header {
|
||
color: #ff4a3d;
|
||
font-family: var(--agg-metal);
|
||
font-weight: 400;
|
||
letter-spacing: 0.03em;
|
||
}
|
||
|
||
.spin-wheel-hub {
|
||
stroke: #ff2e3f;
|
||
}
|
||
|
||
.spin-seg {
|
||
stroke: #ff2e3f;
|
||
stroke-width: 1.5;
|
||
}
|
||
}
|
||
|
||
// ============================================
|
||
// STYL SUMIKKO GURASHI kola štěstí (dle stylu zvoleného v nastavení).
|
||
// Pastelové výseče v barvách postaviček s hnědými popisky a linkami,
|
||
// střed jako tapioková perlička.
|
||
// ============================================
|
||
.spin-wheel-modal.spin-theme-sumikko {
|
||
--sk-font: 'Zen Maru Gothic', 'M PLUS Rounded 1c', sans-serif;
|
||
--sk-display: 'Klee One', 'Zen Maru Gothic', sans-serif;
|
||
--sk-brown: #8b5e3c;
|
||
--sk-brown-deep: #6b4428;
|
||
--sk-ink: #5a4636;
|
||
--sk-line: #e8dcc8;
|
||
--sk-panel: #fffdf8;
|
||
--wheel-c0: #b9dba3;
|
||
--wheel-c1: #ecd5b8;
|
||
--wheel-c2: #b6d9ea;
|
||
--wheel-c3: #f6c6d2;
|
||
--wheel-c4: #f2dc8f;
|
||
--wheel-c5: #d4c6e8;
|
||
--wheel-label: #5a4636;
|
||
--wheel-rim: #8b5e3c;
|
||
--wheel-hub: #5a4636;
|
||
|
||
font-family: var(--sk-font);
|
||
|
||
.modal-content {
|
||
border: 2px solid var(--sk-line);
|
||
border-radius: 22px;
|
||
overflow: hidden;
|
||
background: #f8f3e8;
|
||
color: var(--sk-ink);
|
||
}
|
||
|
||
.modal-header {
|
||
background:
|
||
repeating-linear-gradient(90deg, rgb(139 94 60 / 0.4) 0 8px, transparent 8px 14px) left bottom / 100% 2px no-repeat,
|
||
#f3e6cf;
|
||
border-bottom: none;
|
||
|
||
h2 {
|
||
color: var(--sk-ink);
|
||
font-family: var(--sk-display);
|
||
font-weight: 600;
|
||
}
|
||
}
|
||
|
||
.modal-footer {
|
||
border-top: 2px dashed var(--sk-line);
|
||
}
|
||
|
||
.spin-steps span {
|
||
font-family: var(--sk-display);
|
||
font-weight: 600;
|
||
background: #efe6d8;
|
||
color: #a8988a;
|
||
border-radius: 12px;
|
||
padding: 2px 16px;
|
||
|
||
&.active {
|
||
background: var(--sk-brown);
|
||
color: #fffaf0;
|
||
}
|
||
|
||
&.done {
|
||
background: #b9dba3;
|
||
color: #2f3a2a;
|
||
}
|
||
}
|
||
|
||
.btn {
|
||
font-family: var(--sk-font);
|
||
font-weight: 700;
|
||
border-radius: 12px;
|
||
}
|
||
|
||
.btn-primary {
|
||
background: var(--sk-brown);
|
||
border: none;
|
||
color: #fffaf0;
|
||
box-shadow: 0 3px 0 var(--sk-brown-deep);
|
||
|
||
&:hover:not(:disabled) {
|
||
background: #9c6c48;
|
||
color: #fffaf0;
|
||
}
|
||
|
||
&:disabled {
|
||
background: #e4dbcf;
|
||
color: #a8988a;
|
||
box-shadow: none;
|
||
}
|
||
}
|
||
|
||
.spin-button {
|
||
font-family: var(--sk-display);
|
||
font-weight: 600;
|
||
font-size: 1.25rem;
|
||
padding: 8px 38px;
|
||
}
|
||
|
||
.btn-outline-primary {
|
||
background: var(--sk-panel);
|
||
border: 2px solid #c9a07a;
|
||
color: var(--sk-brown);
|
||
|
||
&:hover {
|
||
background: #f5e9d8;
|
||
color: var(--sk-brown);
|
||
}
|
||
}
|
||
|
||
.btn-secondary {
|
||
background: #a8cf8e;
|
||
border: none;
|
||
color: #2f3a2a;
|
||
box-shadow: 0 3px 0 #86ad6c;
|
||
}
|
||
|
||
.spin-source {
|
||
background: #efe6d8;
|
||
|
||
> .btn-primary {
|
||
box-shadow: none !important;
|
||
}
|
||
|
||
> .btn-outline-primary {
|
||
background: transparent;
|
||
color: var(--sk-ink);
|
||
|
||
&:hover {
|
||
background: var(--sk-panel);
|
||
}
|
||
}
|
||
}
|
||
|
||
.spin-result {
|
||
font-weight: 700;
|
||
|
||
strong {
|
||
color: var(--sk-brown);
|
||
}
|
||
}
|
||
|
||
.spin-options {
|
||
background: var(--sk-panel);
|
||
border: 2px solid var(--sk-line);
|
||
border-radius: 16px;
|
||
|
||
li:hover {
|
||
background: #f7efe2;
|
||
}
|
||
}
|
||
|
||
.spin-options-header {
|
||
border-bottom: 2px dashed var(--sk-line);
|
||
color: var(--sk-brown);
|
||
font-family: var(--sk-display);
|
||
}
|
||
|
||
.spin-empty {
|
||
border-color: var(--sk-line);
|
||
}
|
||
|
||
.spin-wheel-pointer {
|
||
border-top-color: var(--sk-brown);
|
||
}
|
||
|
||
.spin-seg {
|
||
stroke: var(--sk-brown);
|
||
stroke-width: 1.5;
|
||
}
|
||
|
||
.spin-seg-label {
|
||
font-family: var(--sk-display);
|
||
font-weight: 600;
|
||
}
|
||
}
|
||
|
||
// Tmavý režim — večer v koutku pod dekou
|
||
[data-bs-theme="dark"] .spin-wheel-modal.spin-theme-sumikko {
|
||
--sk-brown: #e0b48a;
|
||
--sk-brown-deep: #a87a50;
|
||
--sk-ink: #f3e8d8;
|
||
--sk-line: #3a302a;
|
||
--sk-panel: #26201d;
|
||
--wheel-rim: #e0b48a;
|
||
--wheel-hub: #e0b48a;
|
||
|
||
.modal-content {
|
||
background:
|
||
radial-gradient(circle at 0% 0%, rgb(255 210 150 / 0.14), transparent 45%),
|
||
#1d1816;
|
||
}
|
||
|
||
.modal-header {
|
||
background:
|
||
repeating-linear-gradient(90deg, rgb(224 180 138 / 0.4) 0 8px, transparent 8px 14px) left bottom / 100% 2px no-repeat,
|
||
#2f2620;
|
||
|
||
.btn-close {
|
||
filter: invert(1) grayscale(1) brightness(2);
|
||
}
|
||
}
|
||
|
||
.spin-steps span:not(.active):not(.done) {
|
||
background: #2f2824;
|
||
color: #93877a;
|
||
}
|
||
|
||
.spin-steps span.active {
|
||
color: #2a1f18;
|
||
}
|
||
|
||
.btn-primary {
|
||
color: #2a1f18;
|
||
|
||
&:hover:not(:disabled) {
|
||
background: #ecc8a4;
|
||
color: #2a1f18;
|
||
}
|
||
|
||
&:disabled {
|
||
background: #3a302a;
|
||
color: #93877a;
|
||
}
|
||
}
|
||
|
||
.btn-outline-primary:hover {
|
||
background: #3a2e26;
|
||
}
|
||
|
||
.spin-source {
|
||
background: #2f2824;
|
||
}
|
||
|
||
.spin-options li:hover {
|
||
background: #2f2824;
|
||
}
|
||
}
|
||
|
||
// ============================================
|
||
// STYL GUDETAMA kola štěstí (dle stylu zvoleného v nastavení).
|
||
// Kolo leží na litinové pánvi: výseče v barvách snídaně (žloutek, bílek,
|
||
// slanina, toust, sójová omáčka, nori), střed jako žloutek.
|
||
// ============================================
|
||
.spin-wheel-modal.spin-theme-gudetama {
|
||
--gt-font: 'Nunito', sans-serif;
|
||
--gt-display: 'Fredoka', 'Nunito', sans-serif;
|
||
--gt-yolk: #ffd23f;
|
||
--gt-yolk-shadow: #d99a00;
|
||
--gt-ink: #4a3520;
|
||
--gt-line: #efe3c4;
|
||
--gt-panel: #ffffff;
|
||
--wheel-c0: #ffd23f;
|
||
--wheel-c1: #f5e6b8;
|
||
--wheel-c2: #f2a7a0;
|
||
--wheel-c3: #e8c08a;
|
||
--wheel-c4: #c9a07a;
|
||
--wheel-c5: #b8d48f;
|
||
--wheel-label: #4a3520;
|
||
--wheel-rim: #2b2725;
|
||
--wheel-hub: #ffd23f;
|
||
|
||
font-family: var(--gt-font);
|
||
|
||
.modal-content {
|
||
border: 2px solid var(--gt-line);
|
||
border-radius: 24px;
|
||
overflow: hidden;
|
||
background:
|
||
linear-gradient(rgb(74 53 32 / 0.05) 1.5px, transparent 1.5px) 0 0 / 46px 46px,
|
||
linear-gradient(90deg, rgb(74 53 32 / 0.05) 1.5px, transparent 1.5px) 0 0 / 46px 46px,
|
||
#fbf8f1;
|
||
color: var(--gt-ink);
|
||
}
|
||
|
||
.modal-header {
|
||
background:
|
||
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='10'%3E%3Cpath d='M0 3Q12 0 24 3T48 3V7Q36 10 24 7T0 7Z' fill='%23f2a7a0'/%3E%3Cpath d='M0 5Q12 2 24 5T48 5' stroke='%23c8553d' stroke-width='1.5' fill='none'/%3E%3C/svg%3E") left bottom / 48px 10px repeat-x,
|
||
linear-gradient(180deg, #ffdc5c, var(--gt-yolk));
|
||
border-bottom: none;
|
||
padding-bottom: calc(var(--bs-modal-header-padding-y, 1rem) + 8px);
|
||
|
||
h2 {
|
||
color: var(--gt-ink);
|
||
font-family: var(--gt-display);
|
||
font-weight: 600;
|
||
}
|
||
}
|
||
|
||
.modal-footer {
|
||
border-top: 2px solid var(--gt-line);
|
||
}
|
||
|
||
.spin-steps span {
|
||
font-family: var(--gt-display);
|
||
font-weight: 600;
|
||
background: #f5ecd6;
|
||
color: #a3927c;
|
||
border-radius: 999px;
|
||
padding: 2px 16px;
|
||
|
||
// Text na žloutku je vždy tmavý (i v tmavém režimu)
|
||
&.active {
|
||
background: var(--gt-yolk);
|
||
color: #4a3520;
|
||
box-shadow: 0 3px 0 var(--gt-yolk-shadow);
|
||
}
|
||
|
||
&.done {
|
||
background: #fffdf5;
|
||
color: #a8650a;
|
||
box-shadow: inset 0 0 0 2px var(--gt-yolk);
|
||
}
|
||
}
|
||
|
||
.btn {
|
||
font-family: var(--gt-font);
|
||
font-weight: 800;
|
||
border-radius: 999px;
|
||
transition: transform 0.5s ease, box-shadow 0.5s ease, background 0.5s ease;
|
||
}
|
||
|
||
.btn-primary {
|
||
background: var(--gt-yolk);
|
||
border: none;
|
||
color: #4a3520;
|
||
box-shadow: 0 4px 0 var(--gt-yolk-shadow);
|
||
|
||
&:hover:not(:disabled) {
|
||
background: #ffdc5c;
|
||
color: #4a3520;
|
||
}
|
||
|
||
&:disabled {
|
||
background: #efe6cf;
|
||
color: #a3927c;
|
||
box-shadow: none;
|
||
}
|
||
}
|
||
|
||
// Tlačítko roztočení — „…tak jo, no"
|
||
.spin-button {
|
||
font-family: var(--gt-display);
|
||
font-weight: 600;
|
||
font-size: 1.3rem;
|
||
padding: 8px 40px;
|
||
}
|
||
|
||
.btn-outline-primary {
|
||
background: var(--gt-panel);
|
||
border: 2px solid #f5b301;
|
||
color: #a8650a;
|
||
|
||
&:hover {
|
||
background: #fff3c4;
|
||
color: #a8650a;
|
||
}
|
||
}
|
||
|
||
.btn-secondary {
|
||
background: #6b4a2e;
|
||
border: none;
|
||
color: #fffdf5;
|
||
box-shadow: 0 4px 0 #4a3220;
|
||
}
|
||
|
||
.spin-source {
|
||
background: #f5ecd6;
|
||
|
||
> .btn-primary {
|
||
box-shadow: none !important;
|
||
}
|
||
|
||
> .btn-outline-primary {
|
||
background: transparent;
|
||
color: var(--gt-ink);
|
||
|
||
&:hover {
|
||
background: var(--gt-panel);
|
||
}
|
||
}
|
||
}
|
||
|
||
.spin-result {
|
||
font-weight: 800;
|
||
|
||
strong {
|
||
color: #a8650a;
|
||
}
|
||
}
|
||
|
||
.spin-options {
|
||
background: var(--gt-panel);
|
||
border: 2px solid var(--gt-line);
|
||
border-radius: 18px;
|
||
|
||
li:hover {
|
||
background: #fff8dc;
|
||
}
|
||
}
|
||
|
||
.spin-options-header {
|
||
border-bottom: 2px solid #f5dc8a;
|
||
color: #a8650a;
|
||
font-family: var(--gt-display);
|
||
}
|
||
|
||
.spin-empty {
|
||
border-color: var(--gt-line);
|
||
}
|
||
|
||
.spin-wheel-pointer {
|
||
border-top-color: #c8553d;
|
||
}
|
||
|
||
.spin-wheel-hub {
|
||
stroke: #fffdf5;
|
||
}
|
||
|
||
.spin-seg {
|
||
stroke: #2b2725;
|
||
stroke-width: 1.5;
|
||
}
|
||
|
||
.spin-seg-label {
|
||
font-family: var(--gt-display);
|
||
font-weight: 600;
|
||
}
|
||
}
|
||
|
||
// Tmavý režim — litinová pánev
|
||
[data-bs-theme="dark"] .spin-wheel-modal.spin-theme-gudetama {
|
||
--gt-ink: #f5ead2;
|
||
--gt-line: #3a332e;
|
||
--gt-panel: #211d1a;
|
||
--wheel-rim: #3a3430;
|
||
|
||
.modal-content {
|
||
background:
|
||
radial-gradient(circle at 50% 50%, rgb(255 210 63 / 0.08) 0 120px, transparent 300px),
|
||
#141210;
|
||
}
|
||
|
||
.modal-header {
|
||
background:
|
||
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='10'%3E%3Cpath d='M0 3Q12 0 24 3T48 3V7Q36 10 24 7T0 7Z' fill='%23f2a7a0'/%3E%3Cpath d='M0 5Q12 2 24 5T48 5' stroke='%23c8553d' stroke-width='1.5' fill='none'/%3E%3C/svg%3E") left bottom / 48px 10px repeat-x,
|
||
#0e0d0c;
|
||
|
||
h2 {
|
||
color: #ffd23f;
|
||
}
|
||
|
||
.btn-close {
|
||
filter: invert(1) grayscale(1) brightness(2);
|
||
}
|
||
}
|
||
|
||
.spin-steps span:not(.active):not(.done) {
|
||
background: #2b2622;
|
||
color: #968a7a;
|
||
}
|
||
|
||
.spin-steps span.done {
|
||
background: #2b2622;
|
||
color: #ffd23f;
|
||
}
|
||
|
||
.btn-primary:disabled {
|
||
background: #3a332e;
|
||
color: #968a7a;
|
||
}
|
||
|
||
.btn-outline-primary {
|
||
color: #ffd23f;
|
||
|
||
&:hover {
|
||
background: #3a3018;
|
||
color: #ffe17a;
|
||
}
|
||
}
|
||
|
||
.spin-source {
|
||
background: #2b2622;
|
||
}
|
||
|
||
.spin-options li:hover {
|
||
background: #2b2622;
|
||
}
|
||
|
||
.spin-options-header {
|
||
color: #ffd23f;
|
||
border-bottom-color: #4a3d1c;
|
||
}
|
||
|
||
.spin-result strong {
|
||
color: #ffd23f;
|
||
}
|
||
}
|
||
|
||
// ============================================
|
||
// STYL HATSUNE MIKU kola štěstí (dle stylu zvoleného v nastavení).
|
||
// Výseče v barvách Vocaloidů (Miku, Luka, Rin, Kaito, Meiko, šedá rukávů),
|
||
// bílé linky a střed jako reproduktor s tyrkysovým lemem.
|
||
// ============================================
|
||
.spin-wheel-modal.spin-theme-miku {
|
||
--miku-font: 'Nunito', sans-serif;
|
||
--miku-display: 'Exo 2', 'Nunito', sans-serif;
|
||
--miku-teal: #39c5bb;
|
||
--miku-teal-deep: #138f87;
|
||
--miku-teal-ink: #137a7f;
|
||
--miku-pink: #e12885;
|
||
--miku-grey: #3a3f44;
|
||
--miku-line: #d8e3e6;
|
||
--miku-panel: #ffffff;
|
||
--miku-text: #263036;
|
||
--wheel-c0: #2fb3a9;
|
||
--wheel-c1: #e12885;
|
||
--wheel-c2: #5a6268;
|
||
--wheel-c3: #e0a000;
|
||
--wheel-c4: #3a6fd8;
|
||
--wheel-c5: #c8302c;
|
||
--wheel-rim: #3a3f44;
|
||
--wheel-hub: #2b2f33;
|
||
|
||
font-family: var(--miku-font);
|
||
|
||
.modal-content {
|
||
border: 1px solid var(--miku-line);
|
||
border-radius: 16px;
|
||
overflow: hidden;
|
||
background:
|
||
linear-gradient(90deg, rgb(57 197 187 / 0.12) 1px, transparent 1px) 0 0 / 88px 100%,
|
||
repeating-linear-gradient(180deg, #f6fafb 0 22px, #edf3f5 22px 44px);
|
||
color: var(--miku-text);
|
||
}
|
||
|
||
.modal-header {
|
||
background:
|
||
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='98' height='10'%3E%3Crect width='98' height='10' fill='%23ffffff'/%3E%3Cpath d='M14 0V10M28 0V10M42 0V10M56 0V10M70 0V10M84 0V10M98 0V10' stroke='%239aa3a8'/%3E%3Cpath d='M10 0h8v6h-8zM24 0h8v6h-8zM52 0h8v6h-8zM66 0h8v6h-8zM80 0h8v6h-8z' fill='%232b2f33'/%3E%3C/svg%3E") left bottom / 98px 10px repeat-x,
|
||
linear-gradient(var(--miku-teal), var(--miku-teal)) left bottom 10px / 100% 3px no-repeat,
|
||
linear-gradient(180deg, #454b51, var(--miku-grey));
|
||
border-bottom: none;
|
||
padding-bottom: calc(var(--bs-modal-header-padding-y, 1rem) + 13px);
|
||
|
||
h2 {
|
||
color: #fff;
|
||
font-family: var(--miku-display);
|
||
font-weight: 700;
|
||
}
|
||
|
||
.btn-close {
|
||
filter: invert(1) grayscale(1) brightness(2);
|
||
opacity: 0.9;
|
||
}
|
||
}
|
||
|
||
.modal-footer {
|
||
border-top: 1px solid var(--miku-line);
|
||
}
|
||
|
||
.spin-steps span {
|
||
font-family: var(--miku-display);
|
||
font-weight: 700;
|
||
background: #e3eaed;
|
||
color: #8a979e;
|
||
border-radius: 6px;
|
||
padding: 3px 16px;
|
||
|
||
&.active {
|
||
background: var(--miku-teal-deep);
|
||
color: #fff;
|
||
box-shadow: 0 0 10px rgb(57 197 187 / 0.5);
|
||
}
|
||
|
||
&.done {
|
||
background: var(--miku-pink);
|
||
color: #fff;
|
||
}
|
||
}
|
||
|
||
.btn {
|
||
font-family: var(--miku-font);
|
||
font-weight: 800;
|
||
border-radius: 6px;
|
||
}
|
||
|
||
.btn-primary {
|
||
background: linear-gradient(180deg, #23a99f, var(--miku-teal-deep));
|
||
border: 1px solid #0e7a73;
|
||
color: #fff;
|
||
|
||
&:hover:not(:disabled) {
|
||
background: linear-gradient(180deg, #2fb3a9, #179a91);
|
||
color: #fff;
|
||
box-shadow: 0 0 0 3px rgb(57 197 187 / 0.3), 0 0 16px rgb(57 197 187 / 0.55);
|
||
}
|
||
|
||
&:disabled {
|
||
background: #cfd8dc;
|
||
border-color: #cfd8dc;
|
||
color: #8a979e;
|
||
}
|
||
}
|
||
|
||
// Tlačítko roztočení — „play"
|
||
.spin-button {
|
||
font-family: var(--miku-display);
|
||
font-weight: 800;
|
||
font-size: 1.25rem;
|
||
letter-spacing: 0.04em;
|
||
padding: 10px 38px;
|
||
|
||
&::before {
|
||
content: '▶ ';
|
||
font-size: 0.8em;
|
||
}
|
||
}
|
||
|
||
.btn-outline-primary {
|
||
background: var(--miku-panel);
|
||
border: 1px solid var(--miku-teal);
|
||
color: var(--miku-teal-ink);
|
||
|
||
&:hover {
|
||
background: #e0f6f4;
|
||
color: var(--miku-teal-ink);
|
||
}
|
||
}
|
||
|
||
.btn-secondary {
|
||
background: var(--miku-pink);
|
||
border: 1px solid #b81e6c;
|
||
color: #fff;
|
||
}
|
||
|
||
.spin-source {
|
||
background: #e3eaed;
|
||
border-radius: 8px;
|
||
|
||
> .btn {
|
||
border-radius: 6px !important;
|
||
}
|
||
|
||
> .btn-outline-primary {
|
||
background: transparent;
|
||
color: var(--miku-text);
|
||
|
||
&:hover {
|
||
background: var(--miku-panel);
|
||
}
|
||
}
|
||
}
|
||
|
||
.spin-result {
|
||
font-weight: 800;
|
||
|
||
strong {
|
||
color: var(--miku-teal-ink);
|
||
}
|
||
}
|
||
|
||
.spin-options {
|
||
background: var(--miku-panel);
|
||
border: 1px solid var(--miku-line);
|
||
border-radius: 12px;
|
||
|
||
li:hover {
|
||
background: #eef8f7;
|
||
}
|
||
}
|
||
|
||
.spin-options-header {
|
||
border-bottom: 2px solid var(--miku-teal);
|
||
color: var(--miku-teal-ink);
|
||
font-family: var(--miku-display);
|
||
}
|
||
|
||
.spin-empty {
|
||
border-color: var(--miku-line);
|
||
}
|
||
|
||
.spin-wheel-pointer {
|
||
border-top-color: var(--miku-pink);
|
||
filter: drop-shadow(0 0 4px rgb(225 40 133 / 0.6));
|
||
}
|
||
|
||
.spin-wheel-hub {
|
||
stroke: var(--miku-teal);
|
||
}
|
||
|
||
.spin-seg {
|
||
stroke: #fff;
|
||
stroke-width: 2;
|
||
}
|
||
|
||
.spin-seg-label {
|
||
font-family: var(--miku-display);
|
||
font-weight: 700;
|
||
}
|
||
}
|
||
|
||
// Tmavý režim — koncert
|
||
[data-bs-theme="dark"] .spin-wheel-modal.spin-theme-miku {
|
||
--miku-teal-ink: #5fd6cd;
|
||
--miku-line: #23303a;
|
||
--miku-panel: #14191d;
|
||
--miku-text: #eef4f6;
|
||
--wheel-c2: #3a4248;
|
||
--wheel-rim: #050607;
|
||
--wheel-hub: #050607;
|
||
|
||
.modal-content {
|
||
border-color: #23303a;
|
||
background:
|
||
linear-gradient(115deg, transparent 38%, rgb(57 197 187 / 0.10) 46%, transparent 54%),
|
||
linear-gradient(-115deg, transparent 38%, rgb(225 40 133 / 0.09) 46%, transparent 54%),
|
||
#0b0d10;
|
||
box-shadow: 0 0 30px rgb(57 197 187 / 0.2);
|
||
}
|
||
|
||
.modal-header {
|
||
background:
|
||
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='98' height='10'%3E%3Crect width='98' height='10' fill='%23ffffff'/%3E%3Cpath d='M14 0V10M28 0V10M42 0V10M56 0V10M70 0V10M84 0V10M98 0V10' stroke='%239aa3a8'/%3E%3Cpath d='M10 0h8v6h-8zM24 0h8v6h-8zM52 0h8v6h-8zM66 0h8v6h-8zM80 0h8v6h-8z' fill='%232b2f33'/%3E%3C/svg%3E") left bottom / 98px 10px repeat-x,
|
||
linear-gradient(var(--miku-teal), var(--miku-teal)) left bottom 10px / 100% 2px no-repeat,
|
||
#101417;
|
||
}
|
||
|
||
.spin-steps span:not(.active):not(.done) {
|
||
background: #1b2328;
|
||
color: #82919a;
|
||
}
|
||
|
||
.btn-primary:disabled {
|
||
background: #23303a;
|
||
border-color: #23303a;
|
||
color: #82919a;
|
||
}
|
||
|
||
.btn-outline-primary:hover {
|
||
background: #12302e;
|
||
}
|
||
|
||
.spin-source {
|
||
background: #1b2328;
|
||
}
|
||
|
||
.spin-options li:hover {
|
||
background: #1b2328;
|
||
}
|
||
|
||
.spin-seg {
|
||
stroke: #0b0d10;
|
||
}
|
||
}
|
||
|
||
// Ikona kola se při najetí pootočí
|
||
.spin-wheel-icon {
|
||
transition: transform 0.4s ease !important;
|
||
|
||
&:hover {
|
||
transform: rotate(180deg) scale(1.15) !important;
|
||
}
|
||
}
|