| |
|
|
| .sq-root { |
| --paper: #faf8f2; |
| --ink: #1c1b18; |
| --ink-soft: #5a564c; |
| --accent: #b3402e; |
| |
| |
| |
| |
| --body-text-color: var(--ink); |
| position: relative; |
| width: 100%; |
| height: 100vh; |
| height: 100dvh; |
| overflow: hidden; |
| background: var(--paper); |
| color: var(--ink); |
| font-family: "Patrick Hand", cursive; |
| user-select: none; |
| |
| touch-action: none; |
| overscroll-behavior: none; |
| |
| |
| filter: invert(0) hue-rotate(0deg); |
| transition: filter 0.85s ease-in-out; |
| } |
|
|
| |
| .sq-root::before { |
| content: ""; |
| position: absolute; |
| inset: 0; |
| background: repeating-linear-gradient( |
| to bottom, |
| transparent 0 31px, |
| rgba(110, 140, 170, 0.13) 31px 32px |
| ); |
| pointer-events: none; |
| } |
|
|
| .sq-stage { |
| position: absolute; |
| left: 0; |
| right: 0; |
| |
| |
| |
| |
| |
| |
| |
| |
| top: max(90px, calc((var(--hud-h, 70px) - 70px) * 1.6)); |
| |
| |
| bottom: calc(max(18px, env(safe-area-inset-bottom)) + 34px); |
| } |
| .sq-stage canvas { |
| display: block; |
| } |
|
|
| |
|
|
| .sq-hud { |
| position: absolute; |
| top: 0; |
| left: 0; |
| right: 0; |
| display: flex; |
| align-items: baseline; |
| justify-content: space-between; |
| gap: 22px; |
| padding: max(18px, env(safe-area-inset-top)) 28px 0; |
| pointer-events: none; |
| z-index: 2; |
| } |
|
|
| .sq-title { |
| font-family: "Caveat", cursive; |
| font-size: 28px; |
| font-weight: 700; |
| color: var(--ink-soft); |
| transform: rotate(-2deg); |
| } |
|
|
| .sq-targets { |
| font-family: "Caveat", cursive; |
| font-size: 28px; |
| font-weight: 700; |
| color: var(--ink-soft); |
| } |
| .sq-target-list { |
| display: inline-flex; |
| flex-wrap: wrap; |
| align-items: baseline; |
| justify-content: center; |
| gap: 6px 8px; |
| margin-left: 6px; |
| font-size: 32px; |
| } |
| .sq-target-item { |
| position: relative; |
| display: inline-block; |
| padding: 0 8px 2px; |
| border: 2px solid var(--ink); |
| border-radius: 255px 25px 225px 25px / 25px 225px 25px 255px; |
| color: var(--ink); |
| transform: rotate(var(--tilt, -1.5deg)); |
| } |
| |
| .sq-target-item.sq-checked { |
| color: var(--ink-soft); |
| border-color: var(--ink-soft); |
| opacity: 0.65; |
| } |
| .sq-target-item.sq-checked::after { |
| content: ""; |
| position: absolute; |
| left: 7px; |
| right: 7px; |
| top: 52%; |
| height: 2.5px; |
| background: var(--ink-soft); |
| transform: rotate(-4deg); |
| } |
|
|
| |
| .sq-context { |
| display: flex; |
| align-items: center; |
| gap: 10px; |
| } |
| .sq-context-count { |
| font-family: "Caveat", cursive; |
| font-size: 30px; |
| font-weight: 700; |
| min-width: 52px; |
| } |
| .sq-context-count.sq-full { |
| color: var(--accent); |
| } |
|
|
| |
|
|
| .sq-hud-right { |
| display: flex; |
| align-items: center; |
| gap: 16px; |
| } |
| .sq-audio { |
| position: relative; |
| display: flex; |
| align-items: center; |
| gap: 6px; |
| pointer-events: auto; |
| } |
| .sq-audio-btn { |
| display: block; |
| width: 30px; |
| height: 30px; |
| padding: 0; |
| background: transparent; |
| border: none; |
| cursor: pointer; |
| line-height: 0; |
| } |
| .sq-audio-btn canvas { |
| display: block; |
| width: 30px; |
| height: 30px; |
| } |
|
|
| |
| .sq-audio-pop { |
| position: absolute; |
| top: calc(100% + 8px); |
| right: 0; |
| display: flex; |
| flex-direction: column; |
| gap: 10px; |
| padding: 12px 14px; |
| background: #fffdf7; |
| border: 2.5px solid var(--ink); |
| border-radius: 18px 7px 20px 7px / 7px 20px 7px 18px; |
| box-shadow: 3px 4px 0 rgba(28, 27, 24, 0.12); |
| z-index: 5; |
| } |
| .sq-vol-row { |
| display: flex; |
| align-items: center; |
| gap: 9px; |
| } |
| .sq-vol-icon { |
| flex: none; |
| width: 24px; |
| height: 24px; |
| padding: 0; |
| background: transparent; |
| border: none; |
| cursor: pointer; |
| line-height: 0; |
| } |
| .sq-vol-icon canvas { |
| display: block; |
| width: 24px; |
| height: 24px; |
| } |
| .sq-slider { |
| width: 120px; |
| height: 26px; |
| cursor: pointer; |
| touch-action: none; |
| } |
| .sq-slider canvas { |
| display: block; |
| width: 120px; |
| height: 26px; |
| } |
|
|
| |
| .sq-help { |
| position: relative; |
| display: flex; |
| align-items: center; |
| pointer-events: auto; |
| } |
| .sq-help-btn { |
| display: block; |
| width: 40px; |
| height: 40px; |
| padding: 0; |
| background: transparent; |
| border: none; |
| cursor: pointer; |
| line-height: 0; |
| } |
| .sq-help-btn canvas { |
| display: block; |
| width: 40px; |
| height: 40px; |
| } |
|
|
| |
| |
| .sq-hintbox { |
| position: absolute; |
| inset: 0; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| background: rgba(250, 248, 242, 0.82); |
| z-index: 4; |
| } |
| .sq-hintbox-card { |
| position: relative; |
| width: min(420px, 86vw); |
| padding: 28px 32px 28px; |
| background: #fffdf7; |
| border: 3px solid var(--ink); |
| border-radius: 235px 25px 245px 20px / 25px 235px 20px 245px; |
| box-shadow: 4px 5px 0 rgba(28, 27, 24, 0.12); |
| transform: rotate(-1deg); |
| text-align: center; |
| } |
| .sq-hintbox-q { |
| font-family: "Caveat", cursive; |
| font-size: 34px; |
| font-weight: 700; |
| line-height: 1.3; |
| text-wrap: balance; |
| color: var(--ink); |
| margin-bottom: 22px; |
| } |
| .sq-hintbox-text { |
| font-family: "Patrick Hand", cursive; |
| font-size: 24px; |
| line-height: 1.45; |
| text-wrap: balance; |
| color: var(--ink); |
| margin-bottom: 22px; |
| } |
| .sq-hintbox-actions { |
| display: flex; |
| justify-content: center; |
| gap: 16px; |
| } |
| .sq-hintbox-yes, |
| .sq-hintbox-no, |
| .sq-hintbox-close { |
| font-family: "Patrick Hand", cursive; |
| font-size: 21px; |
| color: var(--ink); |
| background: transparent; |
| border: 2.5px solid var(--ink); |
| border-radius: 255px 15px 225px 15px / 15px 225px 15px 255px; |
| padding: 5px 24px 7px; |
| cursor: pointer; |
| transform: rotate(-0.6deg); |
| } |
| .sq-hintbox-no { transform: rotate(0.8deg); } |
| .sq-hintbox-yes:hover, |
| .sq-hintbox-no:hover, |
| .sq-hintbox-close:hover { background: var(--ink); color: var(--paper); } |
|
|
| |
|
|
| .sq-prompt { |
| position: absolute; |
| left: 0; |
| right: 0; |
| |
| |
| |
| |
| top: calc(var(--hud-h, 69px) + 36px); |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| flex-wrap: wrap; |
| gap: 8px; |
| padding: 6px 28px 0; |
| font-size: 22px; |
| z-index: 2; |
| } |
| .sq-chips { |
| display: inline-flex; |
| flex-wrap: wrap; |
| align-items: baseline; |
| justify-content: center; |
| gap: 14px; |
| } |
| .sq-chip { |
| display: inline-block; |
| font-family: "Caveat", cursive; |
| font-size: 42px; |
| font-weight: 700; |
| line-height: 1; |
| color: var(--ink); |
| transform: rotate(var(--tilt, 0deg)); |
| } |
| |
| |
| .sq-chip-file { |
| font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace !important; |
| font-size: 16px !important; |
| font-weight: 400 !important; |
| line-height: 1.3; |
| color: var(--accent); |
| max-width: min(70vw, 620px); |
| white-space: nowrap; |
| overflow: hidden; |
| text-overflow: ellipsis; |
| vertical-align: middle; |
| } |
|
|
| .sq-chip-text { |
| display: inline-block; |
| |
| |
| |
| |
| |
| padding: 0.25em 0.35em 0.2em 0; |
| margin: -0.25em -0.35em -0.2em 0; |
| } |
|
|
| |
|
|
| .sq-hint { |
| position: absolute; |
| bottom: max(18px, env(safe-area-inset-bottom)); |
| left: 0; |
| right: 0; |
| text-align: center; |
| font-size: 19px; |
| color: var(--ink-soft); |
| z-index: 2; |
| pointer-events: none; |
| } |
|
|
| |
|
|
| .sq-overlay { |
| position: absolute; |
| inset: 0; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| background: rgba(250, 248, 242, 0.82); |
| z-index: 3; |
| } |
|
|
| .sq-card { |
| position: relative; |
| width: min(480px, 86vw); |
| padding: 30px 34px 26px; |
| background: #fffdf7; |
| border: 3px solid var(--ink); |
| border-radius: 235px 25px 245px 20px / 25px 235px 20px 245px; |
| box-shadow: 4px 5px 0 rgba(28, 27, 24, 0.12); |
| transform: rotate(-1deg); |
| text-align: center; |
| } |
|
|
| .sq-card-sentence { |
| font-family: "Caveat", cursive; |
| font-size: 34px; |
| font-weight: 600; |
| margin-bottom: 18px; |
| min-height: 40px; |
| } |
|
|
| |
| |
| |
| .sq-card-dumpcap { |
| font-family: "Caveat", cursive; |
| font-weight: 600; |
| font-size: 26px; |
| margin-top: 20px; |
| margin-bottom: 8px; |
| } |
| .sq-card-dump { |
| font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; |
| font-size: 13px; |
| line-height: 1.35; |
| color: var(--accent); |
| white-space: nowrap; |
| overflow: hidden; |
| text-overflow: ellipsis; |
| border: 2px dashed var(--ink-soft); |
| border-radius: 8px; |
| padding: 6px 8px; |
| margin-bottom: 4px; |
| } |
| |
| .sq-card-tagline { |
| font-family: "Caveat", cursive; |
| font-size: 22px; |
| color: var(--ink-soft); |
| margin-top: 8px; |
| } |
|
|
| .sq-bars { |
| display: flex; |
| flex-direction: column; |
| gap: 10px; |
| margin-bottom: 8px; |
| } |
| .sq-bar-row { |
| display: grid; |
| grid-template-columns: 76px 1fr 52px; |
| gap: 10px; |
| align-items: center; |
| font-size: 20px; |
| } |
| .sq-bar-label { text-align: right; } |
| .sq-bar-track { |
| height: 18px; |
| border: 2px solid var(--ink); |
| border-radius: 155px 15px 145px 15px / 15px 145px 15px 155px; |
| overflow: hidden; |
| background: rgba(255, 255, 255, 0.7); |
| } |
| .sq-bar-fill { |
| height: 100%; |
| width: 0%; |
| background: repeating-linear-gradient( |
| -55deg, |
| var(--ink-soft) 0 2px, |
| transparent 2px 6px |
| ); |
| } |
| .sq-bar-row.sq-bar-target .sq-bar-fill { |
| background: repeating-linear-gradient( |
| -55deg, |
| var(--ink) 0 2.5px, |
| transparent 2.5px 5.5px |
| ); |
| } |
| .sq-bar-pct { text-align: left; color: var(--ink-soft); } |
|
|
| .sq-stamp { |
| position: absolute; |
| top: -22px; |
| right: -18px; |
| font-family: "Caveat", cursive; |
| font-size: 40px; |
| font-weight: 700; |
| padding: 0 16px; |
| border: 4px solid var(--accent); |
| border-radius: 12px; |
| color: var(--accent); |
| background: rgba(255, 253, 247, 0.9); |
| transform: rotate(8deg); |
| opacity: 0; |
| } |
| .sq-stamp.sq-win { --accent: #2c6e3f; border-color: #2c6e3f; color: #2c6e3f; } |
|
|
| .sq-card-actions { margin-top: 14px; } |
| .sq-card-actions button { |
| font-family: "Patrick Hand", cursive; |
| font-size: 21px; |
| color: var(--ink); |
| background: transparent; |
| border: 2.5px solid var(--ink); |
| border-radius: 255px 15px 225px 15px / 15px 225px 15px 255px; |
| padding: 4px 20px 6px; |
| cursor: pointer; |
| transform: rotate(0.5deg); |
| } |
| .sq-card-actions button:hover { |
| background: var(--ink); |
| color: var(--paper); |
| } |
|
|
| |
| |
|
|
| .sq-welcome { |
| position: absolute; |
| inset: 0; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| background: rgba(250, 248, 242, 0.82); |
| z-index: 4; |
| } |
|
|
| .sq-welcome-card { |
| position: relative; |
| width: min(440px, 86vw); |
| padding: 30px 34px 30px; |
| background: #fffdf7; |
| border: 3px solid var(--ink); |
| border-radius: 235px 25px 245px 20px / 25px 235px 20px 245px; |
| box-shadow: 4px 5px 0 rgba(28, 27, 24, 0.12); |
| transform: rotate(-1deg); |
| text-align: center; |
| } |
|
|
| .sq-welcome-title { |
| font-family: "Caveat", cursive; |
| font-size: 38px; |
| font-weight: 700; |
| line-height: 1.3; |
| text-wrap: balance; |
| color: var(--ink); |
| margin-bottom: 16px; |
| } |
| |
| |
| .sq-welcome-target { |
| display: inline-block; |
| padding: 0 8px 1px; |
| border: 2px solid var(--ink); |
| border-radius: 255px 25px 225px 25px / 25px 225px 25px 255px; |
| transform: rotate(-1deg); |
| } |
| .sq-welcome-body { |
| font-family: "Patrick Hand", cursive; |
| font-size: 21px; |
| line-height: 1.5; |
| color: var(--ink-soft); |
| margin-bottom: 22px; |
| } |
|
|
| |
| |
| .sq-welcome-close { |
| display: inline-flex; |
| align-items: center; |
| justify-content: center; |
| width: 66px; |
| height: 66px; |
| padding: 0 0 4px; |
| font-family: "Patrick Hand", cursive; |
| font-size: 42px; |
| line-height: 1; |
| color: var(--ink-soft); |
| background: #faf8f2; |
| border: 3px dashed var(--ink-soft); |
| border-radius: 18px 7px 20px 7px / 7px 20px 7px 18px; |
| box-shadow: 3px 4px 0 rgba(28, 27, 24, 0.12); |
| cursor: pointer; |
| transform: rotate(-1.5deg); |
| } |
| .sq-welcome-close:hover { |
| color: var(--ink); |
| border-color: var(--ink); |
| } |
| .sq-welcome-close:active { |
| transform: rotate(-1.5deg) translate(3px, 4px); |
| box-shadow: 0 0 0 rgba(28, 27, 24, 0.12); |
| } |
|
|
| |
| |
| |
| .sq-victory { |
| position: absolute; |
| inset: 0; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| background: rgba(250, 248, 242, 0.82); |
| z-index: 6; |
| } |
| .sq-victory-card { |
| position: relative; |
| width: min(460px, 86vw); |
| padding: 34px 34px 30px; |
| background: #fffdf7; |
| border: 3px solid var(--ink); |
| border-radius: 245px 18px 235px 22px / 20px 240px 18px 245px; |
| box-shadow: 5px 6px 0 rgba(28, 27, 24, 0.14); |
| transform: rotate(-1.2deg); |
| text-align: center; |
| } |
| .sq-victory-title { |
| font-family: "Caveat", cursive; |
| font-size: 52px; |
| font-weight: 700; |
| line-height: 1.05; |
| margin-bottom: 14px; |
| |
| |
| background: linear-gradient( |
| 90deg, #ff004d, #ff8a00, #ffe000, #36d800, #00b3ff, #8b5cf6, #ff004d |
| ); |
| background-size: 200% 100%; |
| -webkit-background-clip: text; |
| background-clip: text; |
| -webkit-text-fill-color: transparent; |
| color: transparent; |
| animation: sq-rainbow 3s linear infinite; |
| } |
| .sq-victory-body { |
| font-family: "Patrick Hand", cursive; |
| font-size: 21px; |
| line-height: 1.5; |
| color: var(--ink-soft); |
| margin-bottom: 18px; |
| } |
| |
| .sq-victory-stats { |
| width: min(300px, 100%); |
| margin: 0 auto 22px; |
| text-align: left; |
| font-family: "Patrick Hand", cursive; |
| } |
| .sq-stat { |
| display: flex; |
| align-items: baseline; |
| justify-content: space-between; |
| gap: 12px; |
| padding: 5px 2px; |
| border-bottom: 2px dotted rgba(28, 27, 24, 0.18); |
| } |
| .sq-stat:last-child { border-bottom: 0; } |
| .sq-stat dt { |
| margin: 0; |
| font-size: 19px; |
| color: var(--ink-soft); |
| } |
| .sq-stat dd { |
| margin: 0; |
| font-size: 22px; |
| color: var(--ink); |
| } |
| .sq-victory-close { |
| font-family: "Patrick Hand", cursive; |
| font-size: 21px; |
| color: var(--ink); |
| background: transparent; |
| border: 2.5px solid var(--ink); |
| border-radius: 255px 15px 225px 15px / 15px 225px 15px 255px; |
| padding: 5px 22px 7px; |
| cursor: pointer; |
| transform: rotate(0.5deg); |
| } |
| .sq-victory-close:hover { background: var(--ink); color: var(--paper); } |
|
|
| |
| |
| |
| .sq-errorbox { |
| position: absolute; |
| inset: 0; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| background: rgba(250, 248, 242, 0.82); |
| z-index: 7; |
| } |
| .sq-errorbox-card { |
| position: relative; |
| width: min(440px, 86vw); |
| padding: 30px 30px 26px; |
| background: #fffdf7; |
| border: 3px solid var(--ink); |
| border-radius: 235px 20px 245px 18px / 18px 245px 20px 235px; |
| box-shadow: 5px 6px 0 rgba(28, 27, 24, 0.14); |
| transform: rotate(-1deg); |
| text-align: center; |
| } |
| .sq-errorbox-title { |
| font-family: "Caveat", cursive; |
| font-size: 42px; |
| font-weight: 700; |
| line-height: 1.05; |
| color: var(--ink); |
| margin-bottom: 12px; |
| } |
| .sq-errorbox-body { |
| font-family: "Patrick Hand", cursive; |
| font-size: 21px; |
| line-height: 1.45; |
| color: var(--ink-soft); |
| margin-bottom: 22px; |
| } |
| .sq-errorbox-ok { |
| font-family: "Patrick Hand", cursive; |
| font-size: 21px; |
| color: var(--ink); |
| background: transparent; |
| border: 2.5px solid var(--ink); |
| border-radius: 255px 15px 225px 15px / 15px 225px 15px 255px; |
| padding: 5px 30px 7px; |
| cursor: pointer; |
| transform: rotate(0.6deg); |
| } |
| .sq-errorbox-ok:hover { background: var(--ink); color: var(--paper); } |
|
|
| .sq-hidden { display: none !important; } |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| .sq-root.sq-glitch { |
| filter: invert(1) hue-rotate(180deg); |
| } |
| |
| .sq-root.sq-glitch::after { |
| content: ""; |
| position: absolute; |
| inset: 0; |
| z-index: 1; |
| pointer-events: none; |
| background: repeating-linear-gradient( |
| to bottom, |
| rgba(0, 0, 0, 0) 0 2px, |
| rgba(0, 0, 0, 0.05) 2px 3px |
| ); |
| animation: sq-scanline 7s linear infinite; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| @media (max-width: 560px), (max-height: 540px) { |
| .sq-hud { padding-left: 12px; padding-right: 12px; gap: 8px 10px; flex-wrap: wrap; } |
| .sq-title { font-size: 18px; order: 1; } |
| .sq-targets { order: 3; flex: 1 1 100%; min-width: 0; } |
| .sq-target-list { display: flex; width: 100%; gap: 5px 6px; margin-left: 0; font-size: 16px; } |
| .sq-target-item { padding: 0 6px 1px; } |
| .sq-context { gap: 4px; } |
| .sq-context-count { font-size: 18px; min-width: 28px; } |
| .sq-hud-right { order: 2; gap: 10px; } |
| .sq-audio { gap: 4px; } |
| .sq-audio-btn, .sq-audio-btn canvas { width: 24px; height: 24px; } |
| .sq-help-btn, .sq-help-btn canvas { width: 32px; height: 32px; } |
|
|
| |
| .sq-prompt { top: var(--hud-h, 52px); padding-left: 12px; padding-right: 12px; gap: 6px; } |
| .sq-stage { top: calc(var(--hud-h, 52px) + 38px); } |
| .sq-chips { gap: 9px; } |
| .sq-chip { font-size: 26px; } |
|
|
| .sq-hint { font-size: 16px; } |
|
|
| .sq-card { padding: 24px 22px 22px; } |
| .sq-card-sentence { font-size: 27px; } |
| .sq-bar-row { grid-template-columns: 60px 1fr 44px; font-size: 17px; } |
| .sq-stamp { font-size: 32px; top: -16px; right: -4px; } |
|
|
| .sq-hintbox-card { width: min(380px, 88vw); padding: 22px 22px 24px; } |
| .sq-hintbox-q { font-size: 29px; margin-bottom: 18px; } |
| .sq-hintbox-text { font-size: 21px; margin-bottom: 18px; } |
|
|
| .sq-welcome-card { width: min(400px, 88vw); padding: 24px 22px 26px; } |
| .sq-welcome-title { font-size: 32px; } |
| .sq-welcome-body { font-size: 18px; margin-bottom: 20px; } |
| .sq-welcome-close { width: 56px; height: 56px; font-size: 34px; } |
|
|
| .sq-errorbox-card { width: min(380px, 88vw); padding: 24px 22px 22px; } |
| .sq-errorbox-title { font-size: 36px; margin-bottom: 10px; } |
| .sq-errorbox-body { font-size: 18px; margin-bottom: 18px; } |
|
|
| .sq-victory-stats { width: min(280px, 100%); margin-bottom: 18px; } |
| .sq-stat dt { font-size: 17px; } |
| .sq-stat dd { font-size: 20px; } |
| } |
|
|