| |
| |
| |
| :root { |
| --bg: #0b0c0e; |
| --fg: #d7d7d2; |
| |
| |
| |
| --dim: #93979f; |
| --dim2: #7d818a; |
| --accent: #9fd0c0; |
| --danger: #c98b8b; |
| --hue: 210; |
| --panel-w: 40rem; |
| |
| |
| --bg-shift: 0; |
| --weight: 340; |
| --tracking: 0.01em; |
| } |
|
|
| |
| |
| body[data-skin="hallway"] { |
| --bg: #0b0c0e; |
| --fg: #d7d7d2; |
| --dim: #93979f; |
| --dim2: #7d818a; |
| --accent: #6fb2ee; |
| --hue: 212; |
| } |
| body[data-skin="stairway"] { |
| --bg: #0a0d0b; |
| --fg: #d3d8d2; |
| --dim: #949c96; |
| --dim2: #7e857f; |
| --accent: #8fc79a; |
| --hue: 150; |
| } |
| body[data-skin="coach"] { |
| --bg: #0c0a08; |
| --fg: #e0d7c8; |
| --dim: #9d978a; |
| --dim2: #877f72; |
| --accent: #d8b06a; |
| --hue: 35; |
| } |
|
|
| * { box-sizing: border-box; } |
|
|
| html, body { |
| margin: 0; |
| height: 100%; |
| background: var(--bg); |
| color: var(--fg); |
| font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif; |
| -webkit-font-smoothing: antialiased; |
| } |
|
|
| body { |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| min-height: 100vh; |
| |
| background: |
| radial-gradient( |
| 120% 90% at 50% -10%, |
| hsl(var(--hue) 13% calc(9.5% + var(--bg-shift) * 1%)), |
| var(--bg) 70% |
| ); |
| transition: background 2.4s ease; |
| } |
|
|
| #screen { |
| width: var(--panel-w); |
| max-width: 92vw; |
| padding: 2rem; |
| } |
|
|
| .panel { animation: fade-in 1.1s ease both; } |
| .hidden { display: none !important; } |
|
|
| |
| .title { |
| font-size: 3rem; |
| font-weight: 300; |
| letter-spacing: 0.18em; |
| text-align: center; |
| margin: 0 0 1.5rem; |
| color: var(--fg); |
| } |
|
|
| .select-lead { |
| text-align: center; |
| color: var(--dim); |
| line-height: 1.9; |
| margin: 0 0 1rem; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| .select-reveal { transition: opacity 1.3s ease; min-height: 19rem; } |
| .select-reveal.pre { opacity: 0; visibility: hidden; } |
|
|
| .brief { |
| white-space: pre-wrap; |
| line-height: 1.9; |
| color: var(--dim); |
| font-size: 1.02rem; |
| min-height: 12rem; |
| margin-bottom: 2rem; |
| } |
| .brief .lead { color: var(--fg); letter-spacing: 0.14em; } |
|
|
| |
| .arcs { |
| display: flex; |
| flex-direction: column; |
| gap: 1rem; |
| margin-top: 2rem; |
| } |
| .arc-card { |
| text-align: left; |
| background: transparent; |
| color: var(--fg); |
| border: 1px solid #2a2d31; |
| border-left: 5px solid #2a2d31; |
| padding: 1.1rem 1.3rem; |
| font-family: inherit; |
| cursor: pointer; |
| transition: border-color 0.3s ease, background 0.3s ease, transform 0.15s ease, |
| box-shadow 0.3s ease; |
| } |
| .arc-card:hover { transform: translateX(4px); } |
|
|
| |
| |
| .arc-card[data-skin="hallway"] { |
| border-color: rgba(111, 178, 238, 0.35); |
| border-left-color: #6fb2ee; |
| background: rgba(111, 178, 238, 0.06); |
| } |
| .arc-card[data-skin="hallway"] .arc-title { color: #6fb2ee; } |
| .arc-card[data-skin="hallway"]:hover { |
| border-color: #6fb2ee; |
| background: rgba(111, 178, 238, 0.12); |
| box-shadow: 0 0 24px -8px rgba(111, 178, 238, 0.6); |
| } |
| .arc-card[data-skin="stairway"] { |
| border-color: rgba(143, 199, 154, 0.35); |
| border-left-color: #8fc79a; |
| background: rgba(143, 199, 154, 0.06); |
| } |
| .arc-card[data-skin="stairway"] .arc-title { color: #8fc79a; } |
| .arc-card[data-skin="stairway"]:hover { |
| border-color: #8fc79a; |
| background: rgba(143, 199, 154, 0.12); |
| box-shadow: 0 0 24px -8px rgba(143, 199, 154, 0.5); |
| } |
| .arc-card[data-skin="coach"] { |
| border-color: rgba(216, 176, 106, 0.35); |
| border-left-color: #d8b06a; |
| background: rgba(216, 176, 106, 0.06); |
| } |
| .arc-card[data-skin="coach"] .arc-title { color: #d8b06a; } |
| .arc-card[data-skin="coach"]:hover { |
| border-color: #d8b06a; |
| background: rgba(216, 176, 106, 0.12); |
| box-shadow: 0 0 24px -8px rgba(216, 176, 106, 0.5); |
| } |
| .arc-title { |
| font-size: 1.3rem; |
| font-weight: 300; |
| letter-spacing: 0.12em; |
| } |
| .arc-tag { |
| color: var(--dim); |
| font-size: 0.95rem; |
| margin-top: 0.4rem; |
| line-height: 1.5; |
| } |
|
|
| |
| .hud { |
| display: flex; |
| justify-content: space-between; |
| font-size: 0.72rem; |
| letter-spacing: 0.24em; |
| text-transform: uppercase; |
| color: var(--dim2); |
| margin-bottom: 2.5rem; |
| gap: 1rem; |
| } |
| |
| |
| .progress { color: color-mix(in srgb, var(--accent) 42%, var(--dim2)); } |
| .best { opacity: 0.72; white-space: nowrap; } |
|
|
| |
| .heading { |
| text-align: center; |
| font-weight: 300; |
| letter-spacing: 0.22em; |
| font-size: 1.5rem; |
| margin: 0 0 2.5rem; |
| color: var(--fg); |
| } |
|
|
| .prose { |
| line-height: 2.1; |
| font-size: 1.12rem; |
| font-weight: var(--weight); |
| letter-spacing: var(--tracking); |
| min-height: 11rem; |
| } |
| .prose .line { |
| opacity: 0; |
| cursor: default; |
| transition: opacity 0.9s ease, color 0.4s ease; |
| } |
| .prose .line.show { opacity: 1; } |
| .prose .line:hover { color: #fff; } |
| |
| |
| .prose .line.flare { animation: flare 1.4s ease; } |
| @keyframes flare { |
| 0% { color: inherit; text-shadow: none; } |
| 25% { color: var(--accent); |
| text-shadow: 0 0 10px color-mix(in srgb, var(--accent) 55%, transparent); } |
| 70% { color: var(--accent); |
| text-shadow: 0 0 6px color-mix(in srgb, var(--accent) 35%, transparent); } |
| 100% { color: inherit; text-shadow: none; } |
| } |
| html.motion-reduce .prose .line.flare { |
| animation: none; |
| color: var(--accent); |
| } |
|
|
| .aside { |
| color: var(--dim); |
| font-style: italic; |
| min-height: 1.6rem; |
| opacity: 0; |
| transition: opacity 1.2s ease; |
| margin-top: 0.5rem; |
| } |
| .aside.show { opacity: 0.85; } |
|
|
| |
| .controls { |
| display: flex; |
| gap: 1rem; |
| margin-top: 2.5rem; |
| animation: fade-in 1s ease both; |
| } |
|
|
| .confidence { |
| margin-top: 1.6rem; |
| animation: fade-in 0.6s ease both; |
| } |
| .conf-q { color: var(--dim); font-size: 0.92rem; margin: 0 0 0.7rem; } |
| .conf-row { display: flex; gap: 0.5rem; flex-wrap: wrap; } |
|
|
| .row { |
| display: flex; |
| gap: 1rem; |
| align-items: center; |
| justify-content: center; |
| } |
|
|
| |
| .btn { |
| background: transparent; |
| color: var(--fg); |
| border: 1px solid #2a2d31; |
| padding: 0.8rem 1.4rem; |
| font-family: inherit; |
| font-size: 1rem; |
| letter-spacing: 0.06em; |
| cursor: pointer; |
| transition: border-color 0.3s ease, background 0.3s ease, color 0.3s ease; |
| } |
| .btn:hover { border-color: var(--accent); color: #fff; } |
| .btn:active { transform: translateY(1px); } |
| |
| |
| |
| .choice { flex: 1; border-color: color-mix(in srgb, var(--accent) 26%, #2a2d31); } |
| .choice:hover { background: color-mix(in srgb, var(--accent) 8%, transparent); } |
|
|
| .btn.ghost { |
| border-color: #23262a; |
| color: var(--dim); |
| padding: 0.55rem 1rem; |
| font-size: 0.86rem; |
| } |
| .btn.ghost:hover { color: var(--fg); border-color: var(--dim); } |
|
|
| #begin, #again { min-width: 12rem; } |
|
|
| |
| .sound-toggle { |
| position: fixed; |
| top: 1rem; |
| right: 1rem; |
| z-index: 10; |
| background: transparent; |
| border: none; |
| line-height: 0; |
| padding: 0.4rem; |
| cursor: pointer; |
| color: var(--dim2); |
| opacity: 0.55; |
| transition: opacity 0.3s ease, color 0.3s ease; |
| } |
| .sound-toggle svg { display: block; } |
| .sound-toggle:hover { opacity: 1; color: var(--fg); } |
|
|
| |
| |
| .visually-hidden { |
| position: absolute; |
| width: 1px; height: 1px; |
| padding: 0; margin: -1px; |
| overflow: hidden; clip: rect(0 0 0 0); |
| white-space: nowrap; border: 0; |
| } |
| .lang-corner { |
| position: fixed; |
| top: 1rem; |
| left: 1rem; |
| z-index: 10; |
| display: flex; |
| align-items: center; |
| gap: 0.3rem; |
| color: var(--dim2); |
| opacity: 0.55; |
| transition: opacity 0.3s ease, color 0.3s ease; |
| } |
| .lang-corner:hover { opacity: 1; color: var(--fg); } |
| .lang-globe { display: block; flex: none; } |
| |
| |
| .lang-select { |
| appearance: none; |
| -webkit-appearance: none; |
| background: transparent; |
| border: none; |
| color: inherit; |
| font-family: inherit; |
| font-size: 0.8rem; |
| letter-spacing: 0.04em; |
| cursor: pointer; |
| padding: 0.1rem 0.9rem 0.1rem 0.1rem; |
| background-image: |
| linear-gradient(45deg, transparent 50%, currentColor 50%), |
| linear-gradient(135deg, currentColor 50%, transparent 50%); |
| background-size: 4px 4px, 4px 4px; |
| background-position: right 3px center, right calc(3px - 4px) center; |
| background-repeat: no-repeat; |
| } |
| .lang-select:focus-visible { outline: 1px solid var(--accent); outline-offset: 2px; } |
| |
| .lang-select option { background: #16181c; color: #d7d7d2; } |
|
|
| |
| .give-up-row { text-align: center; margin-top: 3.5rem; } |
| .link-btn { |
| background: none; |
| border: none; |
| color: var(--dim2); |
| font-family: inherit; |
| font-size: 0.8rem; |
| letter-spacing: 0.14em; |
| text-transform: uppercase; |
| cursor: pointer; |
| opacity: 0.78; |
| transition: opacity 0.3s ease, color 0.3s ease; |
| } |
| .link-btn:hover { opacity: 1; color: var(--fg); } |
|
|
| |
| |
| |
| #win .brief { min-height: 0; margin-bottom: 1.6rem; } |
|
|
| |
| .look { text-align: center; margin: 0 0 1.4rem; min-height: 1.5rem; } |
| .look-toggle { |
| background: none; |
| border: none; |
| color: var(--dim2); |
| font-family: inherit; |
| font-size: 0.82rem; |
| letter-spacing: 0.04em; |
| cursor: pointer; |
| opacity: 0.7; |
| padding: 0 0 1px; |
| border-bottom: 1px dotted rgba(255, 255, 255, 0.18); |
| transition: opacity 0.3s ease, color 0.3s ease; |
| } |
| .look-toggle:hover { opacity: 1; color: var(--fg); } |
| .look-line { |
| color: var(--dim); |
| font-style: italic; |
| font-size: 0.95rem; |
| line-height: 1.55; |
| margin: 0; |
| opacity: 0; |
| transition: opacity 0.8s ease; |
| } |
| .look-line.show { opacity: 1; } |
|
|
| |
| |
| .share { |
| margin: 1.6rem auto 1.8rem; |
| max-width: 30rem; |
| text-align: center; |
| } |
| |
| |
| |
| .share-open { |
| background: none; |
| border: none; |
| color: var(--dim2); |
| font-family: inherit; |
| font-size: 0.82rem; |
| letter-spacing: 0.04em; |
| cursor: pointer; |
| opacity: 0.7; |
| padding: 0 0 1px; |
| border-bottom: 1px dotted rgba(255, 255, 255, 0.18); |
| transition: opacity 0.3s ease, color 0.3s ease; |
| } |
| .share-open:hover { opacity: 1; color: var(--fg); } |
| .share-panel { |
| opacity: 0; |
| transition: opacity 0.7s ease; |
| } |
| .share-panel.show { opacity: 1; } |
| .share-line { |
| color: var(--dim); |
| font-style: italic; |
| font-size: 0.95rem; |
| line-height: 1.6; |
| margin: 0 auto 1.1rem; |
| } |
| .share-row { |
| display: flex; |
| flex-wrap: wrap; |
| gap: 0.5rem 1.4rem; |
| align-items: baseline; |
| justify-content: center; |
| } |
| .share-platforms { |
| display: inline-flex; |
| flex-wrap: wrap; |
| gap: 0.5rem 1.4rem; |
| justify-content: center; |
| } |
| .share-btn { margin: 0; text-decoration: none; } |
|
|
| @media (max-width: 640px) { |
| .share { margin: 1.2rem auto 1.4rem; } |
| .share-row { gap: 0.4rem 1.1rem; } |
| .share-line { font-size: 0.95rem; } |
| } |
|
|
| |
| .touch-line { |
| text-align: center; |
| color: var(--dim); |
| font-style: italic; |
| line-height: 1.35; |
| min-height: 1.2rem; |
| margin: 0.2rem auto 0.5rem; |
| max-width: 34rem; |
| |
| text-wrap: balance; |
| opacity: 0; |
| transition: opacity 0.7s ease; |
| } |
| .touch-line.show { opacity: 1; } |
| .touch-row { |
| display: flex; |
| flex-wrap: wrap; |
| gap: 0.5rem 1.3rem; |
| justify-content: center; |
| margin: 0 0 1.4rem; |
| } |
| .touch-btn { margin: 0; } |
| .touch-btn:disabled { opacity: 0.35; cursor: default; } |
| |
| .exit-offer { |
| text-align: center; |
| margin: 0 auto 1.6rem; |
| max-width: 30rem; |
| padding: 0.9rem 1rem; |
| border: 1px solid color-mix(in srgb, var(--accent) 40%, transparent); |
| border-radius: 2px; |
| background: color-mix(in srgb, var(--accent) 7%, transparent); |
| animation: fade-in 0.9s ease both; |
| } |
| .exit-tempt { |
| color: var(--fg); |
| line-height: 1.6; |
| margin: 0 0 0.7rem; |
| } |
| .exit-take { |
| color: var(--accent) !important; |
| letter-spacing: 0.14em; |
| text-transform: uppercase; |
| font-size: 0.82rem; |
| opacity: 0.95; |
| } |
| .exit-take:hover { opacity: 1; } |
|
|
| |
| |
| |
| |
| |
| html.motion-reduce *, |
| html.motion-reduce *::before, |
| html.motion-reduce *::after { |
| animation-duration: 0.001ms !important; |
| animation-iteration-count: 1 !important; |
| animation-delay: 0ms !important; |
| transition-duration: 0.001ms !important; |
| scroll-behavior: auto !important; |
| } |
| html.motion-reduce .line, |
| html.motion-reduce .aside, |
| html.motion-reduce .look-line, |
| html.motion-reduce .share-panel, |
| html.motion-reduce .select-reveal, |
| html.motion-reduce .exit-offer { opacity: 1 !important; } |
| |
| |
| |
| |
| |
| html.motion-reduce .touch-line { transition-duration: 0.7s !important; } |
|
|
| |
| :root[data-text="1"] { font-size: 112.5%; } |
| :root[data-text="2"] { font-size: 125%; } |
|
|
| |
| |
| body[data-bright="1"] { --dim: #b8bbc1 !important; --dim2: #a2a6ad !important; } |
| body[data-bright="2"] { --dim: #dcdcd7 !important; --dim2: #c6cad0 !important; } |
|
|
| |
| .settings-toggle { |
| position: fixed; |
| top: 1rem; |
| right: 3.4rem; |
| z-index: 10; |
| background: transparent; |
| border: none; |
| line-height: 0; |
| padding: 0.4rem; |
| cursor: pointer; |
| color: var(--dim2); |
| opacity: 0.55; |
| transition: opacity 0.3s ease, color 0.3s ease; |
| } |
| .settings-toggle:hover { opacity: 1; color: var(--fg); } |
| |
| .ach-corner-toggle { |
| position: fixed; |
| top: 1rem; |
| right: 5.8rem; |
| z-index: 10; |
| background: transparent; |
| border: none; |
| line-height: 0; |
| padding: 0.4rem; |
| cursor: pointer; |
| color: var(--dim2); |
| opacity: 0.55; |
| transition: opacity 0.3s ease, color 0.3s ease; |
| } |
| .ach-corner-toggle svg { display: block; } |
| .ach-corner-toggle:hover { opacity: 1; color: var(--fg); } |
| .settings-panel { text-align: left; } |
| .set-group { margin: 0 0 1.3rem; } |
| .set-label { |
| display: block; |
| color: var(--dim2); |
| font-size: 0.78rem; |
| letter-spacing: 0.14em; |
| text-transform: uppercase; |
| margin: 0 0 0.6rem; |
| } |
| .set-opts { display: flex; gap: 0.6rem; } |
| .set-opts button { |
| flex: 1; |
| background: transparent; |
| border: 1px solid rgba(255, 255, 255, 0.14); |
| color: var(--fg); |
| border-radius: 2px; |
| padding: 0.5rem; |
| cursor: pointer; |
| font-family: inherit; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| min-height: 2.4rem; |
| } |
| .set-opts button:hover { border-color: var(--accent); } |
| .set-opts button.on { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 14%, transparent); } |
| .set-opts .swatch { |
| width: 1.4rem; height: 1.4rem; border-radius: 50%; |
| background: var(--fg); display: block; |
| } |
|
|
| |
| .set-slider { display: flex; align-items: center; gap: 0.7rem; } |
| .set-end { |
| color: var(--dim2); line-height: 1; flex: none; |
| font-weight: 300; letter-spacing: 0; |
| } |
| .set-end.swatch { width: 0.9rem; height: 0.9rem; border-radius: 50%; background: var(--fg); } |
| |
| |
| .set-range { |
| flex: 1; -webkit-appearance: none; appearance: none; |
| height: 0.9rem; background: transparent; |
| outline: none; cursor: pointer; margin: 0.5rem 0; |
| } |
| .set-range::-webkit-slider-runnable-track { |
| height: 0.9rem; |
| background: |
| linear-gradient(rgba(255,255,255,0.5),rgba(255,255,255,0.5)) 0% 50% / 2px 0.55rem no-repeat, |
| linear-gradient(rgba(255,255,255,0.5),rgba(255,255,255,0.5)) 50% 50% / 2px 0.55rem no-repeat, |
| linear-gradient(rgba(255,255,255,0.5),rgba(255,255,255,0.5)) 100% 50% / 2px 0.55rem no-repeat, |
| linear-gradient(rgba(255,255,255,0.18),rgba(255,255,255,0.18)) 50% 50% / 100% 2px no-repeat; |
| } |
| .set-range::-moz-range-track { |
| height: 0.9rem; |
| background: |
| linear-gradient(rgba(255,255,255,0.5),rgba(255,255,255,0.5)) 0% 50% / 2px 0.55rem no-repeat, |
| linear-gradient(rgba(255,255,255,0.5),rgba(255,255,255,0.5)) 50% 50% / 2px 0.55rem no-repeat, |
| linear-gradient(rgba(255,255,255,0.5),rgba(255,255,255,0.5)) 100% 50% / 2px 0.55rem no-repeat, |
| linear-gradient(rgba(255,255,255,0.18),rgba(255,255,255,0.18)) 50% 50% / 100% 2px no-repeat; |
| } |
| .set-range::-webkit-slider-thumb { |
| -webkit-appearance: none; appearance: none; |
| width: 0.95rem; height: 0.95rem; border-radius: 50%; margin-top: -0.025rem; |
| background: var(--accent); border: none; cursor: pointer; |
| } |
| .set-range::-moz-range-thumb { |
| width: 0.95rem; height: 0.95rem; border-radius: 50%; |
| background: var(--accent); border: none; cursor: pointer; |
| } |
| .set-range:focus-visible { box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 40%, transparent); } |
|
|
| |
| .ach-open-row { text-align: center; margin-top: 2.4rem; } |
| .ach-overlay { |
| position: fixed; inset: 0; z-index: 70; |
| background: rgba(0, 0, 0, 0.72); |
| display: flex; align-items: flex-start; justify-content: center; |
| overflow-y: auto; padding: 2rem 1rem; |
| animation: fade-in 0.5s ease both; |
| } |
| .ach-panel { |
| background: var(--bg); |
| border: 1px solid rgba(255, 255, 255, 0.1); |
| border-radius: 3px; |
| max-width: 40rem; width: 100%; |
| padding: 1.8rem 1.8rem 2.2rem; |
| margin: auto; |
| } |
| .ach-head { display: flex; align-items: baseline; justify-content: space-between; } |
| .ach-title { font-size: 1.3rem; font-weight: 300; letter-spacing: 0.14em; color: var(--fg); margin: 0; } |
| .ach-close { |
| background: none; border: none; color: var(--dim2); |
| font-size: 1.6rem; line-height: 1; cursor: pointer; padding: 0 0.2rem; |
| } |
| .ach-close:hover { color: var(--fg); } |
| .ach-progress { color: var(--dim2); font-size: 0.82rem; letter-spacing: 0.12em; |
| text-transform: uppercase; margin: 0.4rem 0 1.6rem; } |
| |
| .ach-section-head { |
| color: var(--dim); font-size: 0.72rem; letter-spacing: 0.22em; |
| text-transform: uppercase; margin: 0 0 0.9rem; |
| padding-bottom: 0.4rem; border-bottom: 1px solid rgba(255, 255, 255, 0.09); |
| } |
| .ach-section { margin-bottom: 1.9rem; } |
| .ach-grid { |
| display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.7rem; |
| } |
| .ach-tile { |
| display: flex; align-items: flex-start; gap: 0.7rem; |
| border: 1px solid rgba(255, 255, 255, 0.08); |
| border-radius: 2px; padding: 0.8rem 0.9rem; opacity: 0.5; |
| } |
| .ach-tile.on { opacity: 1; border-color: color-mix(in srgb, var(--accent) 45%, transparent); |
| background: color-mix(in srgb, var(--accent) 6%, transparent); } |
| .ach-icon { flex: none; margin-top: 0.05rem; color: var(--dim2); } |
| .ach-tile.on .ach-icon { color: var(--accent); } |
| |
| |
| |
| .ach-empty { grid-column: 1 / -1; color: var(--dim); font-size: 0.9rem; } |
| .ach-body { min-width: 0; } |
| .ach-name { color: var(--fg); font-size: 0.98rem; letter-spacing: 0.03em; margin-bottom: 0.2rem; } |
| .ach-tile:not(.on) .ach-name { color: var(--dim2); letter-spacing: 0.14em; text-transform: uppercase; font-size: 0.8rem; } |
| .ach-desc { color: var(--dim); font-size: 0.85rem; line-height: 1.4; } |
| .ach-tile:not(.on) .ach-desc { visibility: hidden; } |
| |
| .col-section { |
| margin-bottom: 1.9rem; |
| padding: 1.1rem 1.1rem 0.5rem; |
| border: 1px solid rgba(255, 255, 255, 0.06); |
| border-radius: 3px; |
| background: rgba(255, 255, 255, 0.015); |
| } |
| .col-section .ach-section-head { border-bottom-color: rgba(255, 255, 255, 0.06); } |
| .ach-flash { margin-bottom: 0; } |
| .flash-row { display: flex; align-items: center; gap: 0.7rem; margin: 0 0 0.6rem; } |
| .flash-arc { color: var(--dim); font-size: 0.85rem; min-width: 6.5rem; } |
| .flash-dots { display: flex; gap: 0.35rem; flex: 1; flex-wrap: wrap; } |
| .flash-dot { |
| width: 0.72rem; height: 0.72rem; border-radius: 50%; padding: 0; |
| border: 1px solid rgba(255, 255, 255, 0.22); background: transparent; |
| } |
| .flash-dot.on { cursor: pointer; transition: transform 0.12s ease, box-shadow 0.12s ease; } |
| .flash-dot.on:hover, .flash-dot.on:focus-visible { transform: scale(1.25); outline: none; } |
| .flash-dot.on.recall { box-shadow: 0 0 0 2px var(--bg), 0 0 0 3px currentColor; } |
| .flash-row[data-skin="hallway"] .flash-dot.on { background: #6fb2ee; border-color: #6fb2ee; color: #6fb2ee; } |
| .flash-row[data-skin="stairway"] .flash-dot.on { background: #8fc79a; border-color: #8fc79a; color: #8fc79a; } |
| .flash-row[data-skin="coach"] .flash-dot.on { background: #d8b06a; border-color: #d8b06a; color: #d8b06a; } |
| .flash-num { color: var(--dim2); font-size: 0.78rem; font-variant-numeric: tabular-nums; } |
| |
| .col-recap { |
| color: var(--dim); font-size: 0.9rem; line-height: 1.5; font-style: italic; |
| margin: 0.9rem 0 0.2rem; min-height: 1.2rem; opacity: 0; |
| transition: opacity 0.5s ease; |
| } |
| .col-recap.show { opacity: 1; } |
| |
| .rec-section { margin-bottom: 1.9rem; } |
| .ach-rec { display: flex; flex-direction: column; gap: 0.55rem; } |
| .rec-row { display: flex; align-items: center; gap: 0.7rem; opacity: 0.5; } |
| .rec-row.on { opacity: 1; } |
| .rec-dot { |
| width: 0.65rem; height: 0.65rem; border-radius: 50%; flex: none; |
| border: 1px solid rgba(255, 255, 255, 0.22); background: transparent; |
| } |
| .rec-dot.on { background: var(--accent); border-color: var(--accent); } |
| .rec-label { color: var(--dim); font-size: 0.88rem; line-height: 1.4; } |
| .rec-row.on .rec-label { color: var(--fg); } |
| |
| .look-record { display: inline-block; margin-top: 0.5rem; color: var(--dim2); font-style: italic; } |
|
|
| |
| |
| |
| #look, #share { transition: opacity 1s ease; } |
| .win-hush #look, .win-hush #share, .win-hush #nudge { opacity: 0; pointer-events: none; } |
|
|
| |
| .set-group-wide { display: block; } |
| .set-group-wide .set-label { display: block; margin-bottom: 0.5rem; } |
| .set-words { display: flex; gap: 0.5rem; } |
| .set-words button { |
| flex: 1; background: transparent; color: var(--dim); |
| border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 2px; |
| font-family: inherit; font-size: 0.9rem; letter-spacing: 0.04em; |
| padding: 0.5rem 0.4rem; cursor: pointer; |
| } |
| .set-words button.on { color: var(--fg); border-color: var(--accent); |
| background: color-mix(in srgb, var(--accent) 8%, transparent); } |
| .set-words button.locked { opacity: 0.4; cursor: not-allowed; } |
| .set-hint { color: var(--dim2); font-size: 0.78rem; margin: 0.4rem 0 0.6rem; min-height: 1rem; } |
|
|
| |
| .npc-utterance { |
| color: var(--dim); font-style: italic; line-height: 1.5; margin: 0.6rem 0 0; |
| opacity: 0; transition: opacity 0.6s ease; max-width: 34rem; |
| } |
| .npc-utterance.show { opacity: 1; } |
| .npc-utterance.prominent { |
| color: var(--fg); font-style: normal; font-size: 1.08rem; |
| border-left: 2px solid var(--accent); padding-left: 0.9rem; |
| } |
|
|
| |
| .intro-plain, .learn-plain { |
| color: var(--dim); font-size: 0.9rem; line-height: 1.5; |
| border-left: 2px solid color-mix(in srgb, var(--accent) 55%, transparent); |
| padding-left: 0.9rem; margin-top: 1.1rem; |
| } |
| .ach-actions { display: flex; gap: 1rem; justify-content: center; margin: 0 0 1.4rem; } |
| .ach-actions .btn { min-width: 7rem; } |
|
|
| @media (max-width: 640px) { |
| .ach-grid { grid-template-columns: 1fr; } |
| .flash-arc { min-width: 5rem; } |
| } |
|
|
| |
| .flash-good { animation: good 1.4s ease; } |
| .flash-bad { animation: bad 1.4s ease; } |
|
|
| @keyframes fade-in { from { opacity: 0; } to { opacity: 1; } } |
| @keyframes good { |
| 0% { box-shadow: none; } |
| 30% { box-shadow: inset 0 0 120px -40px var(--accent); } |
| 100% { box-shadow: none; } |
| } |
| @keyframes bad { |
| 0% { box-shadow: none; } |
| 20% { box-shadow: inset 0 0 160px -30px var(--danger); } |
| 100% { box-shadow: none; } |
| } |
|
|
| |
| .learn-overlay { |
| position: fixed; |
| inset: 0; |
| z-index: 20; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| padding: 1.5rem; |
| background: rgba(6, 7, 8, 0.72); |
| backdrop-filter: blur(2px); |
| animation: fade-in 0.7s ease both; |
| } |
| .learn-panel { |
| width: 34rem; |
| max-width: 92vw; |
| |
| |
| max-height: calc(100dvh - 2rem); |
| overflow-y: auto; |
| -webkit-overflow-scrolling: touch; |
| background: color-mix(in srgb, var(--bg) 82%, #16181c); |
| border: 1px solid #2a2d31; |
| border-top: 2px solid var(--accent); |
| padding: 2.4rem 2.2rem 2rem; |
| box-shadow: 0 24px 80px -30px #000; |
| animation: fade-in 0.9s ease both; |
| } |
| |
| .learn-overlay > .settings-panel, |
| #settings .learn-panel { max-height: calc(100dvh - 2rem); overflow-y: auto; } |
| .learn-title { |
| color: var(--fg); |
| font-size: 1.15rem; |
| letter-spacing: 0.06em; |
| line-height: 1.6; |
| margin: 0 0 1.4rem; |
| } |
| .learn-lines { margin: 0 0 1.9rem; } |
| .learn-lines p { |
| color: var(--dim); |
| line-height: 1.65; |
| margin: 0 0 0.85rem; |
| padding-left: 1rem; |
| border-left: 1px solid #2a2d31; |
| } |
| .learn-lines p:last-child { margin-bottom: 0; } |
| .learn-panel .btn { display: block; width: 100%; } |
| |
| |
| .cutscene-overlay { |
| position: fixed; |
| inset: 0; |
| z-index: 60; |
| background: var(--bg); |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| padding: 2rem; |
| cursor: pointer; |
| animation: fade-in 1.3s ease both; |
| } |
| .cutscene-text { |
| max-width: 32rem; |
| text-align: center; |
| color: var(--fg); |
| font-size: 1.15rem; |
| line-height: 2; |
| letter-spacing: 0.04em; |
| } |
| .cutscene-text p { margin: 0 0 1.2rem; } |
| .cutscene-text p:last-child { margin-bottom: 0; color: var(--dim); font-size: 1rem; } |
|
|
| |
| .credits-overlay { |
| position: fixed; |
| inset: 0; |
| z-index: 80; |
| background: var(--bg); |
| cursor: pointer; |
| animation: fade-in 1.3s ease both; |
| } |
| .credits-scroller { position: absolute; inset: 0; overflow: hidden; } |
| .credits-roll { |
| position: absolute; |
| top: 100%; |
| left: 50%; |
| transform: translateX(-50%); |
| width: min(32rem, 88vw); |
| text-align: center; |
| color: var(--dim); |
| animation: credits-scroll 52s linear forwards; |
| } |
| @keyframes credits-scroll { |
| from { transform: translate(-50%, 0); } |
| to { transform: translate(-50%, calc(-100% - 100vh)); } |
| } |
| |
| .credits-block { margin: 0 0 3.6rem; } |
| |
| .credits-presenter { |
| color: var(--dim2); |
| font-size: 0.8rem; |
| letter-spacing: 0.3em; |
| text-transform: uppercase; |
| margin: 0 0 1.3rem; |
| } |
| |
| .credits-splash { |
| color: var(--fg); |
| font-size: 1.9rem; |
| font-weight: 300; |
| letter-spacing: 0.34em; |
| text-transform: uppercase; |
| margin: 0 0 0.9rem; |
| } |
| .credits-copy { color: var(--dim2); font-size: 0.82rem; letter-spacing: 0.12em; margin: 0; } |
| .credits-title { |
| color: var(--fg); |
| font-size: 2.6rem; |
| font-weight: 300; |
| letter-spacing: 0.32em; |
| margin: 0; |
| } |
| .credits-head { |
| color: var(--dim2); |
| font-size: 0.78rem; |
| letter-spacing: 0.36em; |
| margin: 0 0 1.4rem; |
| } |
| .credits-cast + .credits-cast { margin-top: 1.5rem; } |
| .credits-role { color: var(--dim2); font-size: 0.86rem; letter-spacing: 0.05em; line-height: 1.5; } |
| .credits-name { color: var(--fg); font-size: 1.15rem; letter-spacing: 0.06em; line-height: 1.55; } |
| |
| .credits-name-sm { font-size: 1rem; } |
| .credits-note { color: var(--dim); font-style: italic; font-size: 1rem; line-height: 1.6; } |
| |
| .credits-ded + .credits-ded { margin-top: 2rem; } |
| .credits-ded .credits-role { margin-bottom: 0.35rem; } |
| .credits-quote { color: var(--dim); font-style: italic; font-size: 1.06rem; line-height: 1.95; } |
| .credits-by { color: var(--dim2); font-size: 0.9rem; letter-spacing: 0.14em; margin: 1.4rem 0 0; } |
| |
| .credits-solo { margin-top: 46vh; margin-bottom: 42vh; } |
| .credits-done { |
| position: fixed; |
| top: 1rem; right: 1rem; |
| z-index: 81; |
| background: none; border: none; |
| color: var(--dim2); |
| font-size: 1.8rem; line-height: 1; |
| cursor: pointer; opacity: 0.6; |
| transition: opacity 0.3s ease, color 0.3s ease; |
| } |
| .credits-done:hover { opacity: 1; color: var(--fg); } |
| |
| html.motion-reduce .credits-roll { |
| position: static; |
| transform: translateX(-50%); |
| animation: none; |
| margin: 0 auto; |
| padding: 3rem 0; |
| } |
| html.motion-reduce .credits-scroller { overflow-y: auto; } |
|
|
| |
| .confirm-overlay { |
| position: fixed; |
| inset: 0; |
| z-index: 90; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| padding: 2rem; |
| background: rgba(0, 0, 0, 0.72); |
| animation: fade-in 0.4s ease both; |
| } |
| .confirm-panel { |
| max-width: 26rem; |
| background: var(--bg); |
| border: 1px solid rgba(255, 255, 255, 0.12); |
| border-radius: 3px; |
| padding: 1.8rem 1.6rem 1.4rem; |
| text-align: center; |
| } |
| .confirm-title { color: var(--fg); font-size: 1.15rem; letter-spacing: 0.06em; margin: 0 0 0.9rem; } |
| .confirm-body { color: var(--dim); line-height: 1.65; font-size: 0.96rem; margin: 0 0 1.6rem; } |
| .confirm-row { display: flex; gap: 0.9rem; justify-content: center; } |
| .btn-danger { border-color: color-mix(in srgb, var(--danger) 55%, #2a2d31); color: var(--danger); } |
| .btn-danger:hover { border-color: var(--danger); background: color-mix(in srgb, var(--danger) 12%, transparent); color: #fff; } |
| .btn-erase { color: color-mix(in srgb, var(--danger) 70%, var(--dim)); } |
| .btn-erase:hover { border-color: var(--danger); color: var(--danger); } |
|
|
| |
| .nudge { |
| text-align: center; |
| color: var(--dim2); |
| font-size: 0.95rem; |
| font-style: italic; |
| line-height: 1.6; |
| margin: 0 0 1.4rem; |
| } |
| .credits-row { margin-top: 1.4rem; text-align: center; } |
| .view-credits { font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase; } |
|
|
| .fold-hide-row { |
| display: flex; |
| align-items: center; |
| gap: 0.5rem; |
| color: var(--dim2); |
| font-size: 0.82rem; |
| margin: 0 0 1.4rem; |
| cursor: pointer; |
| } |
| .fold-hide-row input { accent-color: var(--accent); cursor: pointer; } |
|
|
| @media (max-width: 640px) { |
| |
| |
| |
| body { |
| align-items: flex-start; |
| justify-content: flex-start; |
| } |
| #screen { |
| padding: 1.1rem; |
| |
| |
| |
| padding-top: calc(3rem + env(safe-area-inset-top)); |
| } |
|
|
| .title { font-size: 2.2rem; } |
| .select-lead { font-size: 0.95rem; } |
| .select-reveal { min-height: 23.5rem; } |
| .brief { min-height: 0; margin-bottom: 1.5rem; } |
|
|
| |
| .hud { |
| font-size: 0.68rem; |
| letter-spacing: 0.12em; |
| margin-bottom: 1.6rem; |
| flex-wrap: wrap; |
| gap: 0.2rem 0.8rem; |
| |
| |
| |
| padding-right: 4rem; |
| } |
| .progress { font-weight: 500; } |
|
|
| .heading { font-size: 1.25rem; margin-bottom: 1.6rem; } |
| .prose { font-size: 1.02rem; line-height: 1.95; min-height: 7rem; } |
| .controls { margin-top: 1.8rem; } |
| .give-up-row { margin-top: 2.2rem; } |
| .arcs { margin-top: 1.5rem; } |
|
|
| |
| |
| .ach-actions { gap: 0.5rem; } |
| .ach-actions .btn { min-width: 0; flex: 1 1 0; padding-left: 0.6rem; padding-right: 0.6rem; } |
|
|
| |
| .sound-toggle { top: calc(0.5rem + env(safe-area-inset-top)); right: 0.5rem; opacity: 0.6; } |
| .settings-toggle { top: calc(0.5rem + env(safe-area-inset-top)); right: 2.7rem; opacity: 0.6; } |
| .ach-corner-toggle { top: calc(0.5rem + env(safe-area-inset-top)); right: 4.9rem; opacity: 0.6; } |
| .lang-corner { top: calc(0.5rem + env(safe-area-inset-top)); left: 0.5rem; opacity: 0.6; } |
| } |
|
|
| |
| |
| |
| @media (max-width: 380px) { |
| #screen { padding: 0.9rem; padding-top: calc(2.8rem + env(safe-area-inset-top)); } |
| .title { font-size: 2rem; } |
| .heading { font-size: 1.15rem; letter-spacing: 0.16em; } |
| .prose { font-size: 0.97rem; line-height: 1.85; } |
| .hud { font-size: 0.64rem; letter-spacing: 0.09em; padding-right: 3.6rem; } |
| .ach-panel { padding: 1.4rem 1.2rem 1.8rem; } |
| .ach-title { font-size: 1.15rem; } |
| .ach-actions .btn { padding-left: 0.4rem; padding-right: 0.4rem; font-size: 0.85rem; } |
| .learn-panel { padding-left: 1.3rem; padding-right: 1.3rem; } |
| } |
|
|