/* generated by scripts/build-qq-css.mjs — 원본: base.css + type-scale.css + pages/qq-ibt.css + pages/qq-expired.css (수정 금지) */
@import url("/qq/assets/fonts/pretendard-subset/pretendard-subset.css");
:root {
--accent: #172e55;
--accent-600: #0f1f3d;
--accent-050: #eaeef5;
--point: #22b8c4;
--point-600: #0e7c8c;
--point-050: #e2f4f6;
--grad: linear-gradient(157deg, #345a8d 0%, #1f3d69 50%, #13284a 100%);
--grad-sheen: 0 1px 0 rgba(255, 255, 255, 0.12) inset, 0 10px 22px -12px rgba(19, 40, 74, 0.55);
--ink: #1a1a1a;
--body: #3b3b3b;
--muted: #6a6a6a;
--faint: #8a8a8a;
--line: #e8e8e8;
--line-soft: #f2f2f2;
--bg: #ffffff;
--bg-tint: #f6f6f6;
--ok: #1e9245;
--ok-bg: #d1f5de;
--warn: #c48f00;
--warn-bg: #ffe8aa;
--sans: "Pretendard Variable", "Pretendard", "Apple SD Gothic Neo", system-ui, sans-serif;
--display:
"Pretendard Variable", "Pretendard", "Apple SD Gothic Neo", system-ui, sans-serif;
--r-lg: 18px;
--r-md: 14px;
--r-sm: 10px;
--ease: cubic-bezier(0.22, 0.7, 0.28, 1);
--shadow: 0 1px 2px rgba(26, 26, 26, 0.03), 0 18px 38px -26px rgba(26, 26, 26, 0.22);
}
* {
box-sizing: border-box;
}
body {
margin: 0;
background: var(--bg);
color: var(--ink);
font-family: var(--sans);
line-height: 1.6;
letter-spacing: -0.01em;
-webkit-font-smoothing: antialiased;
word-break: keep-all;
}
:focus-visible {
outline: 2px solid var(--accent);
outline-offset: 2px;
border-radius: 6px;
}
.topbar {
position: sticky;
top: 0;
z-index: 30;
background: rgba(255, 255, 255, 0.94);
backdrop-filter: blur(6px);
border-bottom: 1px solid var(--line);
}
.topbar-in {
position: relative;
display: flex;
align-items: center;
gap: 12px;
height: 60px;
padding: 0 28px;
}
.brand {
display: flex;
align-items: center;
gap: 9px;
font-weight: 800;
font-size: 20.25px;
color: var(--ink);
}
.brand svg {
width: 24px;
height: 24px;
color: var(--accent);
}
.spacer {
flex: 1;
}
.pbar {
position: absolute;
left: 50%;
transform: translateX(-50%);
display: flex;
align-items: center;
gap: 0;
pointer-events: none;
}
.pbs {
display: flex;
flex-direction: column;
align-items: center;
position: relative;
}
.pbs-dot {
width: 22px;
height: 22px;
border-radius: 50%;
border: 2px solid var(--line);
background: #fff;
font-size: 12px;
font-weight: 700;
color: var(--muted);
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
transition: 0.15s;
}
.pbs-dot svg {
width: 11px;
height: 11px;
stroke-width: 2.5;
}
.pbs.done .pbs-dot {
background: var(--accent);
border-color: var(--accent);
color: #fff;
}
.pbs.cur .pbs-dot {
background: var(--accent);
border-color: var(--accent);
color: #fff;
}
.pbs-lbl {
position: absolute;
top: 26px;
left: 50%;
transform: translateX(-50%);
font-size: 10px;
color: var(--faint);
white-space: nowrap;
line-height: 1;
}
.pbs.cur .pbs-lbl {
color: var(--accent);
font-weight: 700;
}
.pbs.done .pbs-lbl {
color: var(--muted);
}
.pbline {
width: 32px;
height: 2px;
background: var(--line);
flex-shrink: 0;
margin-bottom: 12px;
}
.pbline.done {
background: var(--accent);
}
.wrap {
max-width: 1080px;
margin: 0 auto;
padding: 48px 32px 140px;
}
.step {
display: none;
}
.step.on {
display: block;
animation: in 0.28s var(--ease);
}
@keyframes in {
from {
opacity: 0;
transform: translateY(4px);
}
to {
opacity: 1;
transform: none;
}
}
@media (prefers-reduced-motion: reduce) {
.step.on {
animation: none;
}
}
.trust {
display: inline-flex;
align-items: center;
gap: 7px;
font-size: 14px;
font-weight: 600;
color: var(--point-600);
background: var(--point-050);
border-radius: 999px;
padding: 5px 12px;
margin-bottom: 16px;
}
.trust svg {
width: 15px;
height: 15px;
}
.q {
font-family: var(--display);
font-size: clamp(1.8rem, 3.4vw, 2.3rem);
font-weight: 800;
letter-spacing: -0.03em;
line-height: 1.25;
margin: 0;
}
.qsub {
font-size: 17.5px;
color: var(--muted);
margin: 12px 0 30px;
}
.gate {
display: grid;
grid-template-columns: 1fr 0.8fr;
gap: 44px;
align-items: start;
}
.gatep3 {
position: relative;
width: 100%;
height: 320vh;
background: var(--bg);
}
.gatep3.on {
display: block;
}
.gp-sticky {
position: sticky;
top: 60px;
height: calc(100vh - 60px);
display: grid;
grid-template-columns: 0.72fr 1.28fr;
}
@keyframes fade {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
body.at-gate .wrap {
display: none;
}
body.at-gate .footbar {
display: none;
}
.gleft {
padding: 56px;
display: flex;
flex-direction: column;
justify-content: center;
max-width: 600px;
margin-left: auto;
width: 100%;
}
.gleft .q {
color: var(--accent);
font-size: clamp(3rem, 5.5vw, 4rem);
line-height: 1.14;
}
.gright {
position: relative;
overflow: hidden;
background: linear-gradient(180deg, #fafbfe 0%, #eef2f9 100%);
}
.gbreath {
position: absolute;
inset: -20%;
z-index: 0;
background:
radial-gradient(40% 34% at 26% 26%, rgba(34, 184, 196, 0.16), transparent 70%),
radial-gradient(44% 40% at 76% 66%, rgba(40, 86, 150, 0.13), transparent 72%),
radial-gradient(52% 48% at 50% 102%, rgba(23, 46, 85, 0.1), transparent 74%);
filter: blur(6px);
animation: gbreath 16s ease-in-out infinite;
}
@keyframes gbreath {
0%,
100% {
transform: scale(1) translate(0, 0);
opacity: 0.92;
}
50% {
transform: scale(1.07) translate(1.4%, -1.4%);
opacity: 1;
}
}
.flow-head {
position: absolute;
top: 30px;
left: 42px;
right: 42px;
z-index: 3;
display: inline-flex;
align-items: center;
gap: 8px;
font-size: 14px;
font-weight: 800;
letter-spacing: 0.02em;
color: var(--accent);
}
.flow-head .dot {
width: 6px;
height: 6px;
border-radius: 50%;
background: var(--point);
}
.pin-view {
position: absolute;
inset: 0;
z-index: 2;
overflow: hidden;
}
.pin-track {
position: absolute;
inset: 0;
}
.scrollhint {
position: absolute;
left: 0;
right: 0;
bottom: 90px;
z-index: 50;
display: flex;
flex-direction: column;
align-items: center;
gap: 5px;
font-size: 13.5px;
font-weight: 700;
color: var(--accent);
opacity: 1;
transition: opacity 0.4s ease;
pointer-events: none;
}
.scrollhint svg {
width: 18px;
height: 18px;
animation: hintBob 1.8s ease-in-out infinite;
}
@keyframes hintBob {
0%,
100% {
transform: translateY(0);
}
50% {
transform: translateY(5px);
}
}
@media (prefers-reduced-motion: reduce) {
.scrollhint svg {
animation: none;
}
}
.gpcard {
position: absolute;
top: 50%;
left: 50%;
width: 540px;
will-change: transform, opacity;
display: grid;
grid-template-columns: 1fr 1.04fr;
background: #fff;
border: 1px solid var(--line);
border-radius: 20px;
overflow: hidden;
box-shadow:
0 1px 2px rgba(22, 22, 24, 0.05),
0 40px 76px -42px rgba(23, 46, 85, 0.55);
transform: translate(-50%, -50%);
}
.gpcard .pc-txt {
padding: 30px 28px;
display: flex;
flex-direction: column;
justify-content: center;
}
.gpcard .promo-badge {
align-self: flex-start;
font-size: 12.5px;
font-weight: 800;
letter-spacing: 0.02em;
border-radius: 999px;
padding: 5px 12px;
margin-bottom: 13px;
color: #fff;
background: var(--point);
}
.gpcard .promo-badge.trust {
background: var(--point);
}
.gpcard .pc-no {
font-family: var(--display);
font-size: 36px;
font-weight: 200;
color: #dce3ee;
line-height: 1;
}
.gpcard .promo-name {
font-family: var(--display);
font-size: 1.6rem;
font-weight: 800;
letter-spacing: -0.02em;
color: var(--ink);
margin: 5px 0 0;
word-break: keep-all;
}
.gpcard .promo-lead {
font-size: 16px;
color: var(--ink);
font-weight: 600;
line-height: 1.5;
margin: 11px 0 0;
max-width: 42ch;
word-break: keep-all;
}
.gpcard .promo-points {
list-style: none;
margin: 13px 0 0;
padding: 0;
display: flex;
flex-direction: column;
gap: 7px;
}
.gpcard .promo-points li {
position: relative;
padding-left: 16px;
font-size: 14px;
color: var(--muted);
line-height: 1.5;
word-break: keep-all;
}
.gpcard .promo-points li::before {
content: "";
position: absolute;
left: 2px;
top: 7px;
width: 5px;
height: 5px;
border-radius: 50%;
background: var(--point);
}
.gpcard .promo-more {
align-self: flex-start;
display: inline-flex;
align-items: center;
gap: 7px;
margin-top: 20px;
padding: 10px 17px;
border-radius: 999px;
background: var(--accent-050);
font-size: 15px;
font-weight: 700;
color: var(--accent);
}
.gpcard .promo-more svg {
width: 15px;
height: 15px;
}
.gpcard .pc-obj {
position: relative;
border-left: 1px solid var(--line-soft);
display: flex;
align-items: center;
justify-content: center;
padding: 22px 20px;
overflow: hidden;
}
.gpcard:nth-child(1) .pc-obj {
background: #eaf1f7;
}
.gpcard:nth-child(2) .pc-obj {
background: #e6f4f5;
}
.gpcard:nth-child(3) .pc-obj {
background: #ecf0f8;
}
.gpcard:nth-child(4) .pc-obj {
background: #e9eef7;
}
.gpcard:nth-child(5) .pc-obj {
background: #e4f2f4;
}
.pc-obj .oc {
width: 100%;
max-width: 300px;
}
.oc {
background: #fff;
border: 1px solid var(--line);
border-radius: 15px;
box-shadow: 0 14px 28px -20px rgba(23, 46, 85, 0.28);
padding: 17px 19px;
}
.oc-top {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 11px;
gap: 9px;
}
.oc-ttl {
font-size: 13.5px;
font-weight: 700;
color: var(--ink);
}
.oc-ttl .smp {
color: var(--faint);
font-weight: 500;
}
.oc-seal {
font-size: 11px;
font-weight: 700;
color: var(--accent);
background: var(--accent-050);
border-radius: 999px;
padding: 4px 9px;
display: inline-flex;
align-items: center;
gap: 4px;
flex: none;
}
.oc-seal .d {
width: 5px;
height: 5px;
border-radius: 50%;
background: var(--point);
}
.oc-cap {
font-size: 11px;
color: var(--faint);
margin-top: 10px;
text-align: right;
}
.voc {
list-style: none;
margin: 0;
padding: 0;
}
.voc li {
display: flex;
gap: 9px;
padding: 7px 6px;
border-top: 1px solid var(--line-soft);
font-size: 14px;
color: var(--body);
border-radius: 5px;
}
.voc li:first-child {
border-top: 0;
}
.voc li .n {
color: var(--faint);
width: 13px;
flex: none;
font-weight: 700;
}
.gq {
font-size: 13.5px;
color: var(--muted);
margin: 0 0 9px;
}
.opt-r {
display: flex;
align-items: center;
gap: 8px;
padding: 7px 10px;
border: 1px solid var(--line);
border-radius: 9px;
margin-bottom: 6px;
font-size: 14px;
color: var(--body);
}
.opt-r .k {
font-size: 12.5px;
color: var(--faint);
width: 13px;
flex: none;
font-weight: 700;
}
.opt-r.ok {
border-color: var(--accent);
background: var(--accent-050);
color: var(--ink);
font-weight: 600;
}
.opt-r.ok .ck {
margin-left: auto;
color: var(--point);
display: inline-flex;
}
.opt-r.ok .ck svg {
width: 14px;
height: 14px;
}
.gsol {
font-size: 12px;
color: var(--faint);
margin-top: 8px;
}
.chart {
display: flex;
align-items: flex-end;
gap: 11px;
height: 104px;
padding-top: 12px;
}
.chart .bar {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-end;
height: 100%;
gap: 5px;
}
.chart .bar .sc {
font-size: 12.5px;
font-weight: 700;
color: var(--muted);
}
.chart .bar .bb {
width: 100%;
background: #e1e7f0;
border-radius: 5px 5px 0 0;
height: var(--h);
}
.chart .bar.w .bb {
background: var(--accent);
}
.chart .bar.w .sc {
color: var(--accent);
}
.chart .bar .bl {
font-size: 12.5px;
color: var(--faint);
margin-top: 6px;
}
.gpcard .voc li {
animation: vocRow 5s ease-in-out infinite;
}
.gpcard .voc li:nth-child(2) {
animation-delay: 0.4s;
}
.gpcard .voc li:nth-child(3) {
animation-delay: 0.8s;
}
.gpcard .voc li:nth-child(4) {
animation-delay: 1.2s;
}
@keyframes vocRow {
0%,
45%,
100% {
background: transparent;
}
15% {
background: var(--accent-050);
}
}
.gpcard .opt-r.ok {
animation: okGlow 4.5s ease-in-out infinite;
}
@keyframes okGlow {
0%,
50%,
100% {
box-shadow: 0 0 0 0 rgba(23, 46, 85, 0);
}
68% {
box-shadow: 0 0 0 2px rgba(23, 46, 85, 0.38);
}
}
.gpcard .opt-r.ok .ck {
animation: ckPop 4.5s ease-in-out infinite;
transform-origin: center;
}
@keyframes ckPop {
0%,
52% {
transform: scale(0.4);
opacity: 0.2;
}
66% {
transform: scale(1.25);
opacity: 1;
}
78%,
100% {
transform: scale(1);
opacity: 1;
}
}
.gpcard .chart .bb {
transform-origin: bottom;
animation: barGrow 5s ease-in-out infinite;
}
.gpcard .chart .bar:nth-child(2) .bb {
animation-delay: 0.18s;
}
.gpcard .chart .bar:nth-child(3) .bb {
animation-delay: 0.36s;
}
@keyframes barGrow {
0% {
transform: scaleY(0.05);
}
28% {
transform: scaleY(1);
}
88% {
transform: scaleY(1);
}
100% {
transform: scaleY(0.05);
}
}
.ai-orb {
align-self: flex-start;
display: inline-flex;
align-items: center;
gap: 11px;
margin-bottom: 18px;
}
.ai-orb .aimk {
width: 58px;
height: 58px;
display: block;
overflow: visible;
animation: aimBreath 3.8s ease-in-out infinite;
}
.ai-orb .aim-goo {
transform-origin: 50% 50%;
animation: aimSpin 16s linear infinite;
}
.ai-orb .b1 {
animation: aimBlob1 3s cubic-bezier(0.7, 0, 0.3, 1) infinite;
}
.ai-orb .b2 {
animation: aimBlob2 3s cubic-bezier(0.7, 0, 0.3, 1) infinite;
}
.ai-orb .b3 {
animation: aimBlob3 3s cubic-bezier(0.7, 0, 0.3, 1) infinite;
}
.ai-orb .aim-wave {
transform-origin: 50% 50%;
opacity: 0;
animation: aimWave 3.6s ease-out infinite;
}
.ai-orb .lab {
font-size: 16.5px;
font-weight: 800;
letter-spacing: 0.04em;
color: var(--body);
}
.ai-orb .lab b {
color: var(--accent);
}
@keyframes aimSpin {
to {
transform: rotate(360deg);
}
}
@keyframes aimBlob1 {
0% {
transform: translate(0, -9.5px);
}
38% {
transform: translate(0, -10.5px);
}
52% {
transform: translate(0, -1px);
}
58% {
transform: translate(0, -1px);
}
70% {
transform: translate(0, -16px);
}
84% {
transform: translate(0, -8.5px);
}
100% {
transform: translate(0, -9.5px);
}
}
@keyframes aimBlob2 {
0% {
transform: translate(8.2px, 4.8px);
}
38% {
transform: translate(9.1px, 5.3px);
}
52% {
transform: translate(0.9px, 0.5px);
}
58% {
transform: translate(0.9px, 0.5px);
}
70% {
transform: translate(13.9px, 8px);
}
84% {
transform: translate(7.4px, 4.3px);
}
100% {
transform: translate(8.2px, 4.8px);
}
}
@keyframes aimBlob3 {
0% {
transform: translate(-8.2px, 4.8px);
}
38% {
transform: translate(-9.1px, 5.3px);
}
52% {
transform: translate(-0.9px, 0.5px);
}
58% {
transform: translate(-0.9px, 0.5px);
}
70% {
transform: translate(-13.9px, 8px);
}
84% {
transform: translate(-7.4px, 4.3px);
}
100% {
transform: translate(-8.2px, 4.8px);
}
}
@keyframes aimWave {
0%,
54% {
transform: scale(0.18);
opacity: 0;
}
60% {
opacity: 0.75;
}
100% {
transform: scale(1.9);
opacity: 0;
}
}
@keyframes aimBreath {
0%,
100% {
transform: scale(1);
}
50% {
transform: scale(1.04);
}
}
@media (max-width: 1080px) {
.gpcard {
grid-template-columns: 1fr;
}
.gpcard .pc-obj {
display: none;
}
}
@media (prefers-reduced-motion: reduce) {
.gbreath,
.gpcard .voc li,
.gpcard .opt-r.ok,
.gpcard .opt-r.ok .ck,
.gpcard .chart .bb,
.ai-orb .aimk,
.ai-orb .aim-goo,
.ai-orb .b1,
.ai-orb .b2,
.ai-orb .b3,
.ai-orb .aim-wave {
animation: none !important;
}
}
.gright .eyebrow {
display: inline-flex;
align-items: center;
gap: 6px;
font-size: 14px;
font-weight: 700;
color: var(--muted);
margin-bottom: 6px;
}
.gright .eyebrow svg {
width: 15px;
height: 15px;
}
.gright .cd {
font-size: 14.5px;
color: var(--muted);
margin: 0 0 22px;
}
.gright .stack {
max-width: 420px;
}
.crows {
display: flex;
flex-direction: column;
gap: 12px;
margin: 0 0 9vh;
}
.crow {
display: flex;
align-items: center;
gap: 16px;
text-align: left;
background: var(--bg);
border: 1.5px solid var(--line);
border-radius: var(--r-lg);
padding: 18px 20px;
cursor: pointer;
font-family: inherit;
width: 100%;
transition: 0.16s;
}
.crow:hover {
border-color: #c9d4e5;
box-shadow: var(--shadow);
transform: translateY(-1px);
}
.crow.primary {
border-color: var(--ink);
}
.crow .ic {
width: 44px;
height: 44px;
border-radius: 12px;
background: linear-gradient(155deg, #f7f9fc 0%, #e4ebf4 100%);
color: var(--accent);
display: grid;
place-items: center;
flex: none;
}
.crow .ic svg {
width: 22px;
height: 22px;
}
.crow .rt {
flex: 1;
min-width: 0;
}
.crow .rh {
display: flex;
align-items: center;
gap: 8px;
}
.crow .rt h3 {
margin: 0;
font-size: 18.5px;
font-weight: 700;
}
.crow .rt p {
margin: 3px 0 0;
font-size: 14.5px;
color: var(--muted);
}
.crow .badge-rec {
position: static;
font-size: 12.5px;
font-weight: 700;
color: #fff;
background: var(--point);
border-radius: 999px;
padding: 3px 9px;
}
.crow .go {
flex: none;
display: inline-flex;
align-items: center;
justify-content: center;
width: 48px;
height: 48px;
border-radius: 12px;
}
.crow .go.red {
background: var(--grad);
color: #fff;
box-shadow: var(--grad-sheen);
}
.crow .go.ghost {
background: var(--grad);
color: #fff;
border: 0;
box-shadow: var(--grad-sheen);
}
.crow .go svg {
width: 20px;
height: 20px;
}
@media (max-width: 860px) {
.gatep3 {
height: auto;
}
.gp-sticky {
position: static;
height: auto;
grid-template-columns: 1fr;
}
.gright {
display: none;
}
}
@media (max-width: 880px) {
.gate {
grid-template-columns: 1fr;
gap: 32px;
}
}
.choices {
display: flex;
flex-direction: column;
gap: 14px;
}
.choice {
position: relative;
text-align: left;
background: var(--bg);
border: 1.5px solid var(--line);
border-radius: var(--r-lg);
padding: 24px;
cursor: pointer;
transition: 0.16s;
font-family: inherit;
}
.tt-lab {
font-size: 14px;
font-weight: 800;
color: var(--muted);
margin: 0 0 12px;
letter-spacing: 0.01em;
}
.tt-sep {
display: flex;
align-items: center;
gap: 12px;
margin: 22px 0 14px;
color: var(--faint);
font-size: 14px;
font-weight: 600;
}
.tt-sep::before,
.tt-sep::after {
content: "";
flex: 1;
height: 1px;
background: var(--line);
}
.tt-wb {
display: block;
width: 100%;
border-color: var(--accent);
background: var(--accent-050);
}
.choice:hover {
border-color: #c9d4e5;
box-shadow: var(--shadow);
transform: translateY(-1px);
}
.choice .ic {
width: 46px;
height: 46px;
border-radius: 13px;
background: var(--accent-050);
color: var(--accent);
display: grid;
place-items: center;
margin-bottom: 14px;
}
.choice .ic svg {
width: 24px;
height: 24px;
}
.choice h3 {
margin: 0;
font-size: 20px;
font-weight: 700;
}
.choice p {
margin: 6px 0 16px;
font-size: 15px;
color: var(--muted);
}
.choice .go {
display: inline-flex;
align-items: center;
gap: 7px;
font-size: 16px;
font-weight: 700;
border-radius: var(--r-sm);
padding: 11px 18px;
}
.choice .go.red {
background: var(--grad);
color: #fff;
box-shadow: var(--grad-sheen);
}
.choice .go.ghost {
background: var(--grad);
color: #fff;
border: 0;
box-shadow: var(--grad-sheen);
}
.choice .go svg {
width: 15px;
height: 15px;
}
.choice .ot-eg {
display: inline-block;
font-size: 13.5px;
font-weight: 600;
color: var(--accent);
background: var(--accent-050);
border: 1px solid #c9d4e5;
border-radius: 7px;
padding: 4px 9px;
margin: 0 0 14px;
}
.choice .ot-obj {
margin: 0 0 16px;
border-radius: 13px;
padding: 16px;
background:
radial-gradient(72% 84% at 20% 18%, rgba(34, 184, 196, 0.16), transparent 70%),
radial-gradient(70% 82% at 82% 78%, rgba(40, 86, 150, 0.14), transparent 72%),
linear-gradient(150deg, #f5f8fd 0%, #eaf1f7 60%, #e6f4f5 100%);
border: 1px solid rgba(23, 46, 85, 0.06);
overflow: hidden;
}
.choice .ot-obj .oc {
max-width: none;
padding: 12px 14px;
}
.choice .ot-obj .swap {
display: grid;
overflow: hidden;
}
.choice .ot-obj .swap > .oc {
grid-area: 1/1;
will-change: transform;
}
.choice .ot-obj .swap > .oc:nth-child(1) {
animation: ocUp 9s cubic-bezier(0.6, 0, 0.2, 1) infinite;
}
.choice .ot-obj .swap > .oc:nth-child(2) {
animation: ocDn 9s cubic-bezier(0.6, 0, 0.2, 1) infinite;
}
@keyframes ocUp {
0%,
42% {
transform: translateY(0);
}
50%,
92% {
transform: translateY(-115%);
}
100% {
transform: translateY(0);
}
}
@keyframes ocDn {
0%,
42% {
transform: translateY(115%);
}
50%,
92% {
transform: translateY(0);
}
100% {
transform: translateY(115%);
}
}
.choice .ot-obj .ans-ib {
color: var(--accent);
font-weight: 700;
border-bottom: 1.5px solid var(--point);
padding: 0 3px;
}
.choice .ot-obj .fillw {
display: inline-block;
min-width: 36px;
text-align: center;
border-bottom: 1.5px solid var(--point);
color: var(--accent);
font-weight: 700;
border-radius: 3px 3px 0 0;
padding: 0 2px;
animation: drillFill 5.5s ease-in-out infinite;
}
.choice .ot-obj .voc li:nth-child(1) .fillw {
animation-delay: 0.2s;
}
.choice .ot-obj .voc li:nth-child(2) .fillw {
animation-delay: 1s;
}
.choice .ot-obj .voc li:nth-child(3) .fillw {
animation-delay: 1.8s;
}
@keyframes drillFill {
0%,
14% {
color: transparent;
background: transparent;
}
28%,
90% {
color: var(--accent);
background: var(--point-050);
}
100% {
color: transparent;
background: transparent;
}
}
@media (prefers-reduced-motion: reduce) {
.choice .ot-obj .opt-r.ok,
.choice .ot-obj .opt-r.ok .ck,
.choice .ot-obj .swap > .oc,
.choice .ot-obj .fillw {
animation: none !important;
}
.choice .ot-obj .swap > .oc:nth-child(2) {
opacity: 0;
}
.choice .ot-obj .fillw {
color: var(--accent) !important;
}
}
.badge-rec {
position: absolute;
top: 22px;
right: 22px;
font-size: 12.5px;
font-weight: 700;
color: var(--accent);
background: var(--accent-050);
border-radius: 999px;
padding: 4px 11px;
}
.skip {
display: flex;
align-items: center;
gap: 8px;
margin-top: 18px;
font-size: 14.5px;
color: var(--faint);
}
.skip input {
width: 16px;
height: 16px;
accent-color: var(--accent);
}
.cura {
background: var(--bg-tint);
border: 1px solid var(--line);
border-radius: var(--r-lg);
padding: 22px 20px;
}
.cura .eyebrow {
display: inline-flex;
align-items: center;
gap: 6px;
font-size: 13.5px;
font-weight: 700;
color: var(--muted);
margin-bottom: 8px;
}
.cura .eyebrow svg {
width: 15px;
height: 15px;
}
.cura h4 {
font-size: 17px;
font-weight: 700;
margin: 0 0 4px;
}
.cura .cd {
font-size: 14.5px;
color: var(--muted);
margin: 0 0 16px;
}
.cura .footnote {
display: flex;
align-items: center;
gap: 6px;
font-size: 13.5px;
color: var(--faint);
margin: 14px 0 0;
}
.cura .footnote svg {
width: 14px;
height: 14px;
}
.exam {
display: flex;
gap: 13px;
align-items: center;
background: #fff;
border: 1px solid var(--line);
border-radius: var(--r-md);
padding: 15px;
margin-bottom: 11px;
}
.stack {
position: relative;
margin: 4px 4px 0;
}
.stack .bk {
position: absolute;
inset: 0;
background: #fff;
border: 1px solid var(--line);
border-radius: 10px;
box-shadow: var(--shadow);
}
.stack .b1 {
transform: rotate(2.2deg) translate(6px, 5px);
}
.stack .b2 {
transform: rotate(-3deg) translate(-5px, 9px);
opacity: 0.7;
}
.stack .paper {
position: relative;
background: #fff;
border: 1px solid var(--line);
border-radius: 10px;
box-shadow:
0 1px 2px rgba(29, 23, 23, 0.04),
0 24px 44px -28px rgba(29, 23, 23, 0.3);
padding: 20px 22px;
}
.stack .stamp {
position: absolute;
top: 14px;
right: 14px;
display: inline-flex;
align-items: center;
gap: 4px;
font-size: 12.5px;
font-weight: 800;
color: var(--point);
border: 1.5px solid var(--point);
border-radius: 8px;
padding: 4px 8px;
transform: rotate(-7deg);
}
.stack .stamp svg {
width: 13px;
height: 13px;
}
.stack .ph-title {
font-family: var(--display);
font-size: 18px;
font-weight: 800;
text-align: center;
letter-spacing: -0.02em;
}
.stack .ph-meta {
font-size: 12px;
color: var(--faint);
text-align: center;
margin-top: 2px;
padding-bottom: 9px;
border-bottom: 1.5px solid var(--ink);
}
.stack .ph-name {
display: flex;
gap: 18px;
font-size: 12px;
color: var(--muted);
margin: 9px 0 12px;
}
.stack .exq {
font-size: 13px;
color: var(--ink);
margin-bottom: 10px;
line-height: 1.55;
}
.stack .exq b {
margin-right: 3px;
}
.stack .exq i {
color: var(--body);
}
.stack .exq .ch {
color: var(--muted);
margin-top: 2px;
}
.exam .pg {
width: 46px;
height: 58px;
border-radius: 6px;
background: var(--bg-tint);
border: 1px solid var(--line);
flex: none;
display: flex;
flex-direction: column;
gap: 4px;
padding: 8px 6px;
}
.exam .pg span {
height: 3px;
border-radius: 2px;
background: #dce3ee;
}
.exam .pg span:first-child {
width: 70%;
background: #cad6e6;
}
.exam .eb h5 {
margin: 0;
font-size: 16.5px;
font-weight: 700;
}
.exam .eb p {
margin: 4px 0 0;
font-size: 13.5px;
color: var(--muted);
display: flex;
gap: 8px;
align-items: center;
}
.exam .eb .gr {
font-size: 12.5px;
font-weight: 700;
color: var(--muted);
background: var(--bg-tint);
border: 1px solid var(--line);
border-radius: 6px;
padding: 1px 7px;
}
.grid2 {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 14px;
}
@media (max-width: 760px) {
.grid2 {
grid-template-columns: 1fr;
}
}
.pcard {
text-align: left;
background: var(--bg);
border: 1.5px solid var(--line);
border-radius: var(--r-lg);
padding: 22px;
cursor: pointer;
transition: 0.16s;
font-family: inherit;
position: relative;
}
.pcard:hover {
border-color: #c9d4e5;
box-shadow: var(--shadow);
}
.pcard.sel {
border-color: var(--accent);
box-shadow: 0 0 0 3px var(--accent-050);
}
.pcard .ic {
width: 44px;
height: 44px;
border-radius: 12px;
background: var(--accent-050);
color: var(--accent);
display: grid;
place-items: center;
margin-bottom: 13px;
}
.pcard .ic svg {
width: 23px;
height: 23px;
}
.pcard h3 {
margin: 0;
font-size: 18.5px;
font-weight: 700;
}
.pcard p {
margin: 6px 0 13px;
font-size: 14.5px;
color: var(--muted);
}
.pmeta {
display: flex;
gap: 14px;
font-size: 13.5px;
color: var(--muted);
}
.check {
position: absolute;
top: 20px;
right: 20px;
width: 24px;
height: 24px;
border-radius: 50%;
background: var(--accent);
color: #fff;
display: none;
place-items: center;
}
.pcard.sel .check,
.gcard.sel .check {
display: grid;
}
.check svg {
width: 15px;
height: 15px;
}
.grid3 {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 14px;
}
@media (max-width: 680px) {
.grid3 {
grid-template-columns: repeat(2, 1fr);
}
}
.gcard {
position: relative;
text-align: center;
background: var(--bg);
border: 1.5px solid var(--line);
border-radius: var(--r-lg);
padding: 26px 16px;
cursor: pointer;
transition: 0.16s;
font-family: inherit;
}
.gcard:hover {
border-color: #c9d4e5;
box-shadow: var(--shadow);
}
.gcard.sel {
border-color: var(--accent);
background: var(--accent-050);
}
.gcard b {
font-family: var(--display);
font-size: 27px;
font-weight: 800;
}
.gcard span {
display: block;
font-size: 14px;
color: var(--muted);
margin-top: 6px;
}
.toggle {
display: inline-flex;
background: var(--bg-tint);
border: 1px solid var(--line);
border-radius: 999px;
padding: 4px;
margin-bottom: 24px;
}
.toggle button {
font-family: inherit;
font-size: 16px;
font-weight: 600;
color: var(--muted);
background: none;
border: 0;
border-radius: 999px;
padding: 9px 20px;
cursor: pointer;
}
.toggle button.on {
background: #fff;
color: var(--ink);
box-shadow: 0 1px 3px rgba(29, 23, 23, 0.1);
}
.rangehead {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 16px;
}
.rangehead .cnt {
font-size: 14px;
font-weight: 700;
color: var(--accent);
background: var(--accent-050);
border-radius: 999px;
padding: 5px 13px;
}
.chips {
display: flex;
flex-wrap: wrap;
gap: 10px;
max-width: 640px;
}
.chip {
font-family: inherit;
font-size: 16.5px;
font-weight: 600;
color: var(--body);
background: var(--bg);
border: 1.5px solid var(--line);
border-radius: 999px;
padding: 11px 19px;
cursor: pointer;
transition: 0.15s;
}
.chip:hover {
border-color: #c9d4e5;
}
.chip.sel {
border-color: var(--accent);
background: var(--accent-050);
color: var(--accent-600);
}
.field {
margin-bottom: 16px;
max-width: 460px;
}
.field label {
display: block;
font-size: 14.5px;
font-weight: 600;
color: var(--muted);
margin-bottom: 8px;
}
.field select {
appearance: none;
width: 100%;
height: 52px;
padding: 0 16px;
font-family: inherit;
font-size: 17px;
color: var(--ink);
background: var(--bg)
url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%236C6A64' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>")
no-repeat right 14px center;
border: 1.5px solid var(--line);
border-radius: var(--r-md);
cursor: pointer;
}
.availnote {
font-size: 14.5px;
color: var(--faint);
margin-top: 14px;
}
.compose {
max-width: 620px;
}
.lbl {
font-size: 14.5px;
font-weight: 700;
color: var(--muted);
margin: 24px 0 10px;
}
.lbl:first-child {
margin-top: 0;
}
.trow {
display: flex;
align-items: center;
justify-content: space-between;
padding: 14px 0;
border-bottom: 1px solid var(--line-soft);
}
.trow .tl {
font-size: 17px;
font-weight: 600;
}
.trow .tl .av {
font-size: 13.5px;
color: var(--faint);
font-weight: 500;
margin-left: 8px;
}
.stepper {
display: inline-flex;
align-items: center;
border: 1.5px solid var(--line);
border-radius: 10px;
overflow: hidden;
}
.stepper button {
width: 40px;
height: 42px;
border: 0;
background: var(--bg);
color: var(--ink);
font-size: 21.5px;
cursor: pointer;
}
.stepper button:hover {
background: var(--bg-tint);
}
.stepper .v {
min-width: 48px;
text-align: center;
font-size: 18px;
font-weight: 700;
}
.opts {
display: flex;
flex-wrap: wrap;
gap: 9px;
}
.totalbox {
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 24px;
padding: 18px 20px;
background: var(--bg-tint);
border: 1px solid var(--line);
border-radius: var(--r-md);
}
.totalbox .tt {
font-size: 16px;
color: var(--muted);
}
.totalbox .tn {
font-family: var(--display);
font-size: 29px;
font-weight: 800;
}
.totalbox .tn small {
font-size: 16px;
font-weight: 700;
margin-left: 3px;
}
.conf {
display: grid;
grid-template-columns: 1fr 0.85fr;
gap: 40px;
align-items: start;
}
@media (max-width: 880px) {
.conf {
grid-template-columns: 1fr;
}
}
.srow {
display: flex;
align-items: center;
gap: 14px;
border: 1px solid var(--line);
border-radius: var(--r-md);
padding: 16px 18px;
margin-bottom: 11px;
}
.srow .si {
width: 38px;
height: 38px;
border-radius: 10px;
background: var(--bg-tint);
color: var(--muted);
display: grid;
place-items: center;
flex: none;
}
.srow .si svg {
width: 19px;
height: 19px;
}
.srow .sk {
font-size: 13.5px;
color: var(--faint);
}
.srow .sv {
font-size: 17px;
font-weight: 700;
margin-top: 2px;
}
.srow .edit {
margin-left: auto;
font-size: 14.5px;
font-weight: 600;
color: var(--muted);
cursor: pointer;
}
.spec {
border: 1px solid var(--line);
border-radius: var(--r-lg);
overflow: hidden;
}
.spec .sphead {
display: flex;
align-items: center;
justify-content: space-between;
padding: 16px 18px;
border-bottom: 1px solid var(--line-soft);
}
.spec .sphead b {
font-size: 17px;
}
.spec .sphead .a4 {
font-size: 13px;
color: var(--muted);
background: var(--bg-tint);
border: 1px solid var(--line);
border-radius: 6px;
padding: 2px 8px;
}
.spec .spbody {
padding: 18px;
}
.stk-bar {
display: flex;
height: 10px;
border-radius: 6px;
overflow: hidden;
margin-bottom: 14px;
}
.stk-seg {
height: 100%;
transition: width 0.3s ease;
}
.stk-obj {
background: #4a7fbf;
}
.stk-sub {
background: #2a9d8f;
}
.stk-drl {
background: #e76f51;
}
.stk-dh {
background: #d9534f;
}
.stk-dm {
background: #e8a33d;
}
.stk-dl {
background: #5ba66b;
}
.dcol-wrap {
display: flex;
align-items: flex-end;
justify-content: space-around;
gap: 18px;
padding: 6px 8px 0;
margin-bottom: 14px;
}
.dcol {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
}
.dcol-cnt {
font-size: 13.5px;
font-weight: 700;
color: var(--ink);
margin-bottom: 6px;
}
.dcol-track {
width: 100%;
max-width: 64px;
height: 110px;
display: flex;
align-items: flex-end;
}
.dcol-fill {
width: 100%;
border-radius: 6px 6px 0 0;
transition: height 0.3s ease;
min-height: 3px;
}
.dcol-lbl {
font-size: 14px;
font-weight: 700;
color: var(--muted);
margin-top: 8px;
}
.stk-lgd {
display: flex;
flex-direction: column;
gap: 7px;
margin-bottom: 14px;
}
.stk-item {
display: flex;
align-items: center;
gap: 8px;
font-size: 14px;
}
.stk-dot {
width: 8px;
height: 8px;
border-radius: 50%;
flex-shrink: 0;
}
.stk-lbl {
color: var(--muted);
width: 42px;
}
.stk-cnt {
font-weight: 700;
margin-left: auto;
}
.stk-pct {
color: var(--muted);
font-size: 13.5px;
width: 36px;
text-align: right;
}
.difline {
display: flex;
align-items: center;
gap: 10px;
font-size: 14.5px;
margin-top: 6px;
}
.difline .dl {
width: 48px;
color: var(--muted);
}
.difline .dv {
font-weight: 700;
}
.done {
text-align: center;
max-width: 560px;
margin: 20px auto 0;
}
.done .db {
width: 64px;
height: 64px;
border-radius: 50%;
background: var(--point-050);
color: var(--point);
display: grid;
place-items: center;
margin: 0 auto 22px;
}
.done .db svg {
width: 32px;
height: 32px;
}
.done .acts {
display: flex;
gap: 10px;
justify-content: center;
margin-top: 26px;
flex-wrap: wrap;
}
.footbar {
position: fixed;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(to top, #fff 70%, rgba(255, 255, 255, 0));
}
.footbar-in {
max-width: 1080px;
margin: 0 auto;
padding: 18px 32px 26px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
}
.footbar .note {
font-size: 14.5px;
color: var(--faint);
}
.back {
font-size: 16px;
font-weight: 600;
color: var(--muted);
background: none;
border: 0;
cursor: pointer;
display: inline-flex;
align-items: center;
gap: 6px;
}
.back svg {
width: 16px;
height: 16px;
}
.back[hidden] {
visibility: hidden;
}
.cta {
display: inline-flex;
align-items: center;
gap: 8px;
font-family: inherit;
font-size: 17.5px;
font-weight: 700;
color: #fff;
background: var(--grad);
box-shadow: var(--grad-sheen);
border: 0;
border-radius: var(--r-md);
padding: 14px 28px;
cursor: pointer;
transition: 0.16s;
}
.cta:hover {
filter: brightness(1.08);
}
.cta svg {
width: 17px;
height: 17px;
}
.btn {
display: inline-flex;
align-items: center;
gap: 7px;
font-family: inherit;
font-size: 16.5px;
font-weight: 700;
border-radius: 11px;
padding: 13px 20px;
cursor: pointer;
border: 1.5px solid var(--line);
background: #fff;
color: var(--ink);
}
.btn.red {
background: var(--grad);
color: #fff;
border-color: transparent;
box-shadow: var(--grad-sheen);
}
.btn.red:hover {
filter: brightness(1.08);
}
.btn svg {
width: 16px;
height: 16px;
}
.gright .stack {
cursor: pointer;
transition: 0.14s;
}
.gright .stack:hover .paper {
box-shadow: 0 2px 18px rgba(29, 23, 23, 0.18);
transform: translateY(-2px);
}
.gright .stack .paper {
padding: 11px 13px;
}
.gright .stack .ph-title {
font-size: 13.5px;
}
.gright .stack .ph-meta {
font-size: 9.5px;
padding-bottom: 6px;
}
.gright .stack .ph-name {
font-size: 9.5px;
margin: 5px 0 7px;
}
.gright .stack .exq {
font-size: 10px;
margin-bottom: 5px;
line-height: 1.45;
}
.bk-browser {
border: 1.5px solid var(--line);
border-radius: var(--r-lg);
overflow: hidden;
background: #fff;
}
.bk-head {
padding: 14px 18px 12px;
}
.bk-sbox {
display: flex;
align-items: center;
gap: 8px;
border: 1.5px solid var(--line);
border-radius: var(--r-md);
padding: 0 12px;
background: #fff;
margin-bottom: 10px;
}
.bk-sbox input {
flex: 1;
border: 0;
outline: none;
font-family: inherit;
font-size: 15px;
height: 38px;
background: transparent;
color: var(--ink);
}
.bk-sbox svg {
width: 15px;
height: 15px;
color: var(--faint);
}
.bk-frow {
display: flex;
align-items: center;
gap: 7px;
flex-wrap: wrap;
}
.bk-flbl {
font-size: 13.5px;
font-weight: 700;
color: var(--muted);
white-space: nowrap;
}
.bk-fchip {
font-size: 13.5px;
font-weight: 600;
color: var(--muted);
background: #fff;
border: 1.5px solid var(--line);
border-radius: 999px;
padding: 4px 11px;
cursor: pointer;
font-family: inherit;
}
.bk-fchip.on {
border-color: var(--accent);
background: var(--accent);
color: #fff;
}
.bk-fdiv {
width: 1px;
height: 16px;
background: var(--line);
margin: 0 3px;
flex: none;
}
.bk-body {
display: grid;
grid-template-columns: 260px 1fr;
border-top: 1px solid var(--line);
height: 380px;
}
@media (max-width: 760px) {
.bk-body {
grid-template-columns: 1fr;
height: auto;
}
}
.bk-books {
overflow-y: auto;
border-right: 1px solid var(--line);
padding: 10px;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 7px;
align-content: start;
}
.bk-book {
display: flex;
flex-direction: column;
align-items: center;
gap: 5px;
padding: 7px 5px;
border-radius: var(--r-sm);
cursor: pointer;
border: 1.5px solid transparent;
background: none;
width: 100%;
font-family: inherit;
transition: 0.12s;
}
.bk-book:hover {
background: var(--bg-tint);
}
.bk-book.on {
border-color: var(--accent);
background: var(--accent-050);
}
.bk-thumb {
width: 62px;
height: 84px;
border-radius: 5px;
flex: none;
overflow: hidden;
border: 1px solid var(--line);
box-shadow: 0 4px 10px -6px rgba(23, 46, 85, 0.4);
}
.bk-btitle {
font-size: 12px;
font-weight: 700;
color: var(--ink);
text-align: center;
line-height: 1.3;
word-break: keep-all;
}
.bk-blevel {
font-size: 10.5px;
color: var(--faint);
}
.bk-units {
overflow-y: auto;
padding: 14px 16px;
}
.bk-ulbl-row {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 10px;
}
.bk-ulbl {
font-size: 13.5px;
font-weight: 700;
color: var(--muted);
}
.bk-selall {
display: flex;
gap: 10px;
}
.bk-selall button {
font-size: 13.5px;
font-weight: 700;
color: var(--accent);
background: none;
border: 0;
cursor: pointer;
padding: 0;
font-family: inherit;
}
.bk-selall button:hover {
text-decoration: underline;
}
.bk-chapter {
display: flex;
align-items: center;
gap: 9px;
padding: 10px 13px;
border: 1.5px solid var(--line);
border-radius: var(--r-sm);
margin-bottom: 4px;
cursor: pointer;
background: #fff;
width: 100%;
text-align: left;
font-family: inherit;
transition: 0.12s;
}
.bk-chapter:hover {
border-color: #c9d4e5;
}
.bk-chapter.on {
border-color: var(--accent);
background: var(--accent-050);
}
.bk-chapter .ck {
width: 17px;
height: 17px;
border-radius: 5px;
border: 1.5px solid var(--line);
flex: none;
display: grid;
place-items: center;
color: #fff;
}
.bk-chapter.on .ck {
background: var(--accent);
border-color: var(--accent);
}
.bk-chapter-name {
flex: none;
font-size: 14.5px;
font-weight: 700;
color: var(--ink);
}
.bk-chapter.on .bk-chapter-name {
color: var(--accent-600);
}
.bk-chapter-title {
flex: 1;
font-size: 14px;
font-weight: 500;
color: var(--faint);
}
.bk-ch-block {
margin-bottom: 7px;
}
.bk-unit {
display: flex;
align-items: center;
gap: 9px;
padding: 9px 13px;
border: 1.5px solid var(--line);
border-radius: var(--r-sm);
margin-bottom: 5px;
cursor: pointer;
background: #fff;
width: 100%;
text-align: left;
font-family: inherit;
transition: 0.12s;
}
.bk-unit:hover {
border-color: #c9d4e5;
}
.bk-unit.on {
border-color: var(--accent);
background: var(--accent-050);
}
.bk-unit .ck {
width: 17px;
height: 17px;
border-radius: 5px;
border: 1.5px solid var(--line);
flex: none;
display: grid;
place-items: center;
color: #fff;
}
.bk-unit.on .ck {
background: var(--accent);
border-color: var(--accent);
}
.bk-unit-name {
flex: none;
font-size: 14.5px;
font-weight: 600;
color: var(--ink);
}
.bk-unit.on .bk-unit-name {
color: var(--accent-600);
}
.bk-unit-sub {
margin-left: 18px;
width: calc(100% - 18px);
}
.bk-unit-sub .bk-unit-name {
font-size: 14px;
font-weight: 500;
}
.bk-unit-title {
flex: 1;
font-size: 14px;
font-weight: 500;
color: var(--faint);
}
.bk-foot {
padding: 11px 16px;
border-top: 1px solid var(--line);
display: flex;
align-items: center;
justify-content: space-between;
background: var(--bg-tint);
}
.bk-sel-summary {
font-size: 14px;
color: var(--muted);
}
.bk-sel-summary b {
color: var(--ink);
}
.exam-overlay {
position: fixed;
top: 60px;
left: 50%;
right: 0;
bottom: 0;
z-index: 200;
background: rgba(0, 0, 0, 0.22);
}
.exam-panel {
position: fixed;
top: calc(60px + 12px);
right: 12px;
bottom: 12px;
width: calc(50% - 24px);
min-width: 320px;
background: #fff;
border-radius: 16px;
border: 1px solid var(--line);
display: flex;
flex-direction: column;
box-shadow: 0 8px 40px rgba(0, 0, 0, 0.18);
}
@media (max-width: 860px) {
.exam-panel {
width: calc(100% - 24px);
min-width: 0;
left: 12px;
top: calc(60px + 12px);
}
}
.exam-panel-hd {
display: flex;
align-items: center;
justify-content: space-between;
padding: 16px 22px;
border-bottom: 1px solid var(--line);
flex: none;
}
.exam-panel-title {
font-weight: 800;
font-size: 16.5px;
margin-bottom: 1px;
}
.exam-panel-sub {
font-size: 12.5px;
color: var(--muted);
}
.exam-close-btn {
width: 34px;
height: 34px;
border: 1.5px solid var(--line);
background: var(--bg);
border-radius: 8px;
cursor: pointer;
font-size: 17px;
display: grid;
place-items: center;
color: var(--muted);
transition: 0.12s;
font-family: inherit;
}
.exam-close-btn:hover {
background: var(--bg-tint);
}
.exam-panel-body {
flex: 1;
overflow-y: auto;
padding: 20px;
background: var(--bg-tint);
}
.exam-page-wrap {
background: #fff;
border: 1px solid var(--line);
border-radius: 10px;
padding: 26px 30px;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}
.ep-header {
text-align: center;
padding-bottom: 11px;
border-bottom: 2px solid #1a1a1a;
margin-bottom: 15px;
}
.ep-title {
font-family: var(--display);
font-size: 18.5px;
font-weight: 800;
letter-spacing: -0.02em;
}
.ep-sub {
font-size: 11px;
color: var(--muted);
margin-top: 3px;
}
.ep-info {
display: flex;
gap: 14px;
font-size: 12px;
margin-bottom: 16px;
flex-wrap: wrap;
color: var(--body);
}
.ep-section {
font-size: 12.5px;
font-weight: 700;
margin: 13px 0 7px;
color: var(--body);
}
.ep-q {
margin-bottom: 13px;
}
.ep-qtext {
font-size: 13px;
line-height: 1.65;
}
.ep-choices {
font-size: 12.5px;
color: var(--body);
margin-top: 4px;
padding-left: 16px;
line-height: 1.85;
}
.ep-choices-v {
font-size: 12.5px;
color: var(--body);
margin-top: 5px;
padding-left: 16px;
line-height: 2.1;
}
.exam-panel-ft {
display: flex;
align-items: center;
justify-content: space-between;
padding: 13px 22px;
border-top: 1px solid var(--line);
background: #fff;
flex: none;
}
.exam-nav {
font-family: inherit;
font-size: 14.5px;
font-weight: 700;
color: var(--ink);
background: var(--bg-tint);
border: 1.5px solid var(--line);
border-radius: 10px;
padding: 8px 18px;
cursor: pointer;
transition: 0.12s;
}
.exam-nav:hover:not(:disabled) {
background: var(--line-soft);
}
.exam-nav:disabled {
opacity: 0.3;
cursor: default;
}
.exam-pg-ind {
font-size: 14.5px;
font-weight: 700;
color: var(--muted);
}
.pq-hd {
background: var(--grad);
color: #fff;
border-radius: 16px;
padding: 16px 18px;
margin-bottom: 16px;
box-shadow: var(--grad-sheen);
}
.pq-hd-bar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
margin-bottom: 11px;
padding-bottom: 10px;
border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}
.pq-hd-badge {
font-size: var(--text-micro);
font-weight: 800;
letter-spacing: 0.02em;
background: rgba(255, 255, 255, 0.22);
padding: 4px 11px;
border-radius: 999px;
}
.pq-hd-meta {
font-size: var(--text-micro);
font-weight: 700;
opacity: 0.92;
white-space: nowrap;
}
.pq-hd-title {
font-size: var(--text-emphasis);
font-weight: 800;
line-height: 1.3;
letter-spacing: -0.01em;
word-break: keep-all;
}
.pq-hd-unit {
font-size: var(--text-small);
font-weight: 700;
line-height: 1.45;
opacity: 0.95;
word-break: keep-all;
margin-top: 5px;
}
:root {
--text-micro: 0.844rem;
--text-small: 0.984rem;
--text-body: 1.125rem;
--text-emphasis: 1.266rem;
--text-section: 1.406rem;
--text-title: 1.688rem;
--text-page: 2.25rem;
--line-ui: 1.4;
--line-body: 1.55;
--sans:
"Pretendard Variable", "Pretendard", "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", Arial, sans-serif;
--display:
"Pretendard Variable", "Pretendard", "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", Arial, sans-serif;
}
html {
font-size: 100%;
}
.btn {
font-size: var(--text-body);
line-height: var(--line-ui);
min-height: 44px;
}
.cta {
font-size: var(--text-body);
line-height: var(--line-ui);
min-height: 44px;
}
.field select,
.field input[type="text"] {
font-size: var(--text-body);
min-height: 44px;
}
.field label {
font-size: var(--text-small);
}
.chip {
font-size: var(--text-small);
min-height: 40px;
}
.toggle button {
font-size: var(--text-small);
min-height: 40px;
}
.bk-fchip,
.bm-fchip {
font-size: var(--text-small);
min-height: 34px;
line-height: var(--line-ui);
}
.bk-sbox input,
.bm-sbox input {
font-size: var(--text-body);
min-height: 40px;
}
.bk-flbl,
.bm-flbl {
font-size: var(--text-small);
}
.badge-rec,
.badge,
.new-badge,
.promo-badge {
font-size: var(--text-micro);
}
.qsub {
line-height: var(--line-body);
}
button,
select,
input,
textarea {
font-family: var(--sans);
}
.dt-zoom {
margin-left: auto;
display: inline-flex;
align-items: center;
gap: 4px;
}
.dt-zoom button {
font-family: inherit;
font-size: var(--text-small);
font-weight: 700;
color: var(--muted, #6b7280);
background: #fff;
border: 1px solid var(--line, #e5e7eb);
border-radius: 8px;
padding: 6px 10px;
min-height: 32px;
cursor: pointer;
line-height: 1.2;
}
.dt-zoom button:hover {
border-color: var(--accent, #2f6df0);
color: var(--accent, #2f6df0);
}
.dt-zoom button.on {
background: var(--accent, #2f6df0);
color: #fff;
border-color: var(--accent, #2f6df0);
}
@media print {
.dt-zoom {
display: none !important;
}
}
:root {
--danger: #d64545;
--danger-bg: #fbe9e7;
--danger-line: #ebc3c3;
}
html,
body.ibt {
height: 100%;
}
body.ibt {
margin: 0;
background: var(--bg-tint);
color: var(--body);
-webkit-font-smoothing: antialiased;
}
body.ibt.sm-mode {
display: block;
min-height: 100vh;
height: auto;
overflow-x: hidden;
overflow-y: auto;
}
.ibt-card {
width: 100%;
max-width: 880px;
background: #fff;
border: 1px solid var(--line);
border-radius: 20px;
padding: 56px 60px 56px;
box-shadow:
0 2px 4px rgba(26, 26, 26, 0.03),
0 22px 44px -30px rgba(23, 46, 85, 0.35);
}
.ibt-card.ok {
border-color: #bfe0cb;
}
.ibt-card.bad {
border-color: var(--danger-line);
}
.ibt-cardhd {
display: flex;
align-items: baseline;
gap: 12px;
margin-bottom: 20px;
}
.ibt-no {
flex: none;
font-family: var(--display);
font-size: var(--text-title);
font-weight: 800;
color: var(--accent);
}
.ibt-qdir {
flex: 1;
min-width: 0;
font-size: var(--text-emphasis);
font-weight: 700;
color: var(--ink);
line-height: 1.5;
word-break: break-word;
}
.ibt-qdir .uline {
text-decoration: underline;
text-underline-offset: 2px;
}
.ibt-qdir i {
font-style: italic;
}
.ibt-qdir b {
font-weight: 800;
}
.ibt-mark {
flex: none;
align-self: flex-start;
font-size: var(--text-small);
font-weight: 800;
padding: 4px 13px;
border-radius: 999px;
}
.ibt-mark.ok {
color: var(--ok);
background: var(--ok-bg);
}
.ibt-mark.bad {
color: var(--danger);
background: var(--danger-bg);
}
.ibt-card .uline,
.uline {
text-decoration: underline;
text-underline-offset: 2px;
text-decoration-thickness: 1px;
}
.ibt-body {
font-size: var(--text-body);
color: var(--ink);
line-height: var(--line-body);
word-break: break-word;
}
.ibt-body .qstem {
display: block;
font-weight: 700;
line-height: 1.5;
margin-bottom: 14px;
color: var(--ink);
}
.ibt-body .uline {
text-decoration: underline;
text-underline-offset: 2px;
text-decoration-thickness: 1px;
}
.ibt-body .u {
display: inline-block;
border-bottom: 1px solid currentColor;
min-width: 52px;
height: 1em;
vertical-align: -2px;
}
.ibt-body .q-box {
border: 1px solid #cfd6e0;
border-radius: 8px;
margin: 10px 0;
padding: 14px 24px;
font-weight: 400;
background: #fff;
overflow: hidden;
}
.ibt-body .q-brow {
line-height: 1.55;
}
.ibt-body .q-brow.dlg {
display: flex;
}
.ibt-body .q-brow.dlg .spk {
flex: none;
white-space: pre;
}
.ibt-body .q-bogi {
border: 1px solid #cfd6e0;
border-radius: 8px;
border-collapse: separate;
border-spacing: 0;
table-layout: fixed;
width: 100%;
margin: 10px 0;
font-weight: 400;
background: #fff;
}
.ibt-body .q-bogi td {
border: 0;
padding: 8px 13px;
line-height: 1.55;
text-align: left;
vertical-align: top;
word-break: keep-all;
}
.ibt-body .q-bogi td.bl {
width: 3.6em;
padding: 8px 6px;
text-align: center;
vertical-align: middle;
font-weight: 800;
white-space: nowrap;
}
.ibt-body .q-cond {
background: #f4f5f7;
margin: 6px -13px -8px;
padding: 8px 13px;
line-height: 1.55;
font-weight: 400;
}
.ibt-body .q-box > .q-cond:first-child {
margin-top: -8px;
}
.ibt-body .q-cgrid {
border-collapse: collapse;
table-layout: fixed;
width: 100%;
}
.ibt-body .q-cgrid td {
border: 0;
padding: 0;
line-height: 1.55;
vertical-align: top;
word-break: keep-all;
}
.ibt-body .q-cgrid td.bl {
width: 3.6em;
text-align: center;
vertical-align: middle;
font-weight: 800;
white-space: nowrap;
}
.ibt-body .q-cgrid td.ci {
padding-left: 13px;
}
.ibt-body .q-sent {
margin-top: 10px;
line-height: 1.7;
font-weight: 400;
}
.ibt-body .q-dtable {
border-collapse: collapse;
margin: 10px 0;
width: 100%;
font-weight: 400;
}
.ibt-body .q-dtable th,
.ibt-body .q-dtable td {
border: 1px solid #cfd6e0;
padding: 5px 10px;
text-align: center;
line-height: 1.35;
word-break: keep-all;
}
.ibt-body .q-dtable th {
background: #eff1f4;
font-weight: 700;
}
.ibt-body .q-dtable td.c0 {
text-align: left;
font-weight: 600;
}
.ibt-body .q-drill {
margin-top: 8px;
font-weight: 400;
}
.ibt-body .q-ditem {
display: flex;
gap: 0.45em;
margin-top: 12px;
line-height: 1.55;
}
.ibt-body .q-ditem:first-child {
margin-top: 0;
}
.ibt-body .q-dno {
flex: none;
color: var(--muted);
font-weight: 700;
}
.ibt-body .q-darrow {
padding-left: 1.7em;
margin-top: 4px;
line-height: 1.7;
color: var(--body);
}
.ibt-body i {
font-style: italic;
}
.ibt-body b {
font-weight: 700;
}
.ibt-opts {
display: flex;
flex-direction: column;
gap: 11px;
}
.ibt-opt {
display: flex;
align-items: center;
gap: 14px;
border: 1.5px solid var(--line);
border-radius: 12px;
padding: 12px 18px;
font-size: var(--text-emphasis);
color: var(--body);
background: #fff;
text-align: left;
font-family: inherit;
width: 100%;
transition: 0.12s;
}
.ibt-opt.pick {
cursor: pointer;
}
.ibt-opt.pick:hover {
border-color: var(--point);
background: var(--point-050);
}
.ibt-opt.sel {
border-color: var(--point);
background: var(--point-050);
}
.ibt-opt.sel .ibt-opt-n {
background: var(--point);
color: #fff;
}
.ibt-opt.ans {
border-color: var(--ok);
background: var(--ok-bg);
}
.ibt-opt.ans .ibt-opt-n {
background: var(--ok);
color: #fff;
}
.ibt-opt.wrong {
border-color: var(--danger);
background: var(--danger-bg);
}
.ibt-opt.wrong .ibt-opt-n {
background: var(--danger);
color: #fff;
}
.ibt-opt-n {
flex: none;
width: 28px;
height: 28px;
border-radius: 50%;
background: var(--accent-050);
color: var(--accent);
font-size: var(--text-small);
font-weight: 800;
display: flex;
align-items: center;
justify-content: center;
}
.ibt-opt-t {
flex: 1;
line-height: 1.5;
}
.ibt-opt-mk {
margin-left: auto;
font-weight: 800;
font-size: var(--text-emphasis);
}
.ibt-opt-mk.ok {
color: var(--ok);
}
.ibt-opt-mk.bad {
color: var(--danger);
}
.ibt-input {
width: 100%;
font-family: inherit;
font-size: var(--text-emphasis);
color: var(--ink);
border: 1.5px solid var(--line);
border-radius: 12px;
padding: 15px 18px;
outline: none;
background: #fff;
}
.ibt-input:focus {
border-color: var(--accent);
box-shadow: 0 0 0 3px rgba(23, 46, 85, 0.14);
}
.ibt-input.locked {
background: var(--bg-tint);
}
.ibt-input.ans {
border-color: var(--ok);
background: var(--ok-bg);
}
.ibt-input.wrong {
border-color: var(--danger);
background: var(--danger-bg);
}
.ibt-explain {
margin-top: 20px;
display: flex;
flex-direction: column;
gap: 9px;
background: var(--point-050);
border: 1px solid var(--point);
border-left: 4px solid var(--point);
border-radius: 10px;
padding: 14px 17px;
}
.ibt-explain-row {
display: flex;
flex-direction: column;
gap: 5px;
}
.ibt-explain-lb {
font-size: var(--text-micro);
font-weight: 800;
letter-spacing: 0.06em;
color: var(--point-600);
text-transform: uppercase;
}
.ibt-explain-tx {
font-size: var(--text-body);
color: var(--body);
line-height: var(--line-body);
word-break: break-word;
}
.ibt-explain-tx b {
color: var(--ink);
}
.ibt-explain-gi {
align-self: flex-start;
padding: 3px 11px;
border-radius: 999px;
background: #fff;
border: 1px solid var(--point);
color: var(--point-600);
font-size: var(--text-micro);
font-weight: 700;
line-height: 1.5;
max-width: 100%;
word-break: keep-all;
}
.ibt-cta {
font-family: var(--display);
font-size: var(--text-body);
min-height: 44px;
font-weight: 800;
color: #fff;
background: var(--grad);
box-shadow: var(--grad-sheen);
border: 0;
border-radius: 12px;
padding: 13px 30px;
cursor: pointer;
display: inline-flex;
align-items: center;
gap: 8px;
}
.ibt-cta svg {
width: 18px;
height: 18px;
}
.ibt-cta.on {
background: var(--accent-050);
color: var(--accent);
box-shadow: none;
border: 1.5px solid #c9d4e5;
}
.ibt-cta.ghost {
background: #fff;
color: var(--muted);
box-shadow: none;
border: 1.5px solid var(--line);
}
.ibt-cta.ghost:hover {
border-color: var(--accent);
color: var(--accent);
}
.ibt-result {
flex: none;
background: #fff;
border-bottom: 1px solid var(--line);
padding: 16px 28px;
display: flex;
align-items: center;
gap: 22px;
}
.ibt-pie {
position: relative;
flex: none;
width: 64px;
height: 64px;
border-radius: 50%;
background: conic-gradient(var(--point) calc(var(--pct) * 1%), #e7eaf0 0);
}
.ibt-pie::after {
content: "";
position: absolute;
inset: 9px;
background: #fff;
border-radius: 50%;
}
.ibt-pie-t {
position: absolute;
inset: 0;
z-index: 1;
display: flex;
align-items: center;
justify-content: center;
font-size: var(--text-small);
font-weight: 800;
color: var(--point-600);
}
.ibt-result-lb {
font-size: var(--text-micro);
font-weight: 800;
color: var(--point-600);
letter-spacing: 0.02em;
margin-bottom: 3px;
}
.ibt-result-score {
font-family: var(--display);
font-size: var(--text-page);
font-weight: 800;
color: var(--ink);
font-variant-numeric: tabular-nums;
line-height: 1.1;
}
.ibt-result-score b {
color: var(--point-600);
}
.ibt-result-sub {
font-size: var(--text-small);
color: var(--muted);
font-weight: 600;
margin-top: 2px;
}
.sm-app {
display: block;
}
.sm-scr {
max-width: 600px;
margin: 0 auto;
padding: calc(16px + env(safe-area-inset-top)) 15px 120px;
}
body.qq-only .sm-scr {
max-width: 430px;
}
body.qq-only .sm-sbar {
left: 50%;
right: auto;
transform: translateX(-50%);
width: min(430px, 100%);
}
body.qq-only .sm-sbar-in {
max-width: none;
}
@media (min-width: 431px) {
body.qq-only .sm-sbar {
border-left: 1px solid var(--line);
border-right: 1px solid var(--line);
}
}
.sm-scr .ibt-card {
max-width: none;
margin-bottom: 12px;
border-radius: 14px;
padding: 28px 22px 30px;
box-shadow: 0 6px 14px -12px rgba(23, 46, 85, 0.4);
}
.pq-sec-head {
font-family: var(--display);
font-size: var(--text-small);
font-weight: 800;
color: var(--ink);
margin: 8px 2px 10px;
}
.sm-scr .ibt-result {
border: 1.5px solid var(--point);
border-bottom: 1.5px solid var(--point);
border-radius: 14px;
padding: 15px 16px;
margin-bottom: 13px;
gap: 18px;
box-shadow: 0 8px 18px -12px rgba(34, 184, 196, 0.55);
}
.sm-sbar {
position: fixed;
left: 0;
right: 0;
bottom: 0;
z-index: 20;
width: 100%;
background: rgba(255, 255, 255, 0.97);
backdrop-filter: blur(6px);
border-top: 1px solid var(--line);
}
.sm-sbar-in {
max-width: 600px;
margin: 0 auto;
padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
display: flex;
align-items: center;
gap: 12px;
}
.sm-sbar-meta {
flex: 1;
font-size: var(--text-small);
color: var(--muted);
font-weight: 600;
}
.sm-sbar-meta b {
color: var(--ink);
}
.sm-sbar .ibt-cta {
flex: none;
padding: 12px 20px;
font-size: var(--text-body);
}
.sm-sbar .ibt-cta.ghost {
height: 48px;
min-height: 0;
padding: 0 20px;
line-height: 1;
justify-content: center;
font-weight: 700;
color: var(--accent);
background: #fff;
border: 1.5px solid #c9d4e5;
border-radius: 9px;
box-shadow: none;
transition:
background-color 0.14s,
border-color 0.14s,
color 0.14s;
}
.sm-sbar .ibt-cta.ghost:hover {
border-color: var(--accent);
background: var(--accent-050);
color: var(--accent);
}
.sm-sbar .ibt-cta.ghost:active {
background: #dfe6f1;
}
.sm-miss-n {
color: var(--danger);
font-weight: 800;
}
.sm-miss-go {
font-family: inherit;
font-size: var(--text-micro);
font-weight: 700;
color: var(--accent);
background: var(--accent-050);
border: 1px solid #c9d4e5;
border-radius: 999px;
padding: 4px 10px;
cursor: pointer;
margin-left: 2px;
vertical-align: 1px;
}
.sm-miss-go:active {
background: #dfe6f1;
}
.ibt-nm {
position: fixed;
inset: 0;
z-index: 120;
display: grid;
place-items: center;
padding: 20px;
}
.ibt-nm-bd {
position: absolute;
inset: 0;
background: rgba(19, 40, 74, 0.55);
backdrop-filter: blur(2px);
}
.ibt-nm-box {
position: relative;
width: min(420px, 100%);
background: #fff;
border-radius: 18px;
padding: 24px 22px 20px;
box-shadow: 0 24px 60px -20px rgba(19, 40, 74, 0.6);
}
.ibt-nm-t {
font-family: var(--display);
font-size: var(--text-emphasis);
font-weight: 800;
color: var(--ink);
margin: 0;
}
.ibt-nm-s {
font-size: var(--text-small);
color: var(--muted);
font-weight: 600;
line-height: 1.5;
margin: 7px 0 16px;
}
.ibt-nm-in {
width: 100%;
box-sizing: border-box;
font-family: inherit;
font-size: var(--text-body);
color: var(--ink);
border: 1.5px solid var(--line);
border-radius: 11px;
padding: 0 14px;
height: 48px;
outline: none;
background: #fff;
}
.ibt-nm-in:focus {
border-color: var(--accent);
box-shadow: 0 0 0 3px rgba(23, 46, 85, 0.14);
}
.ibt-nm-err {
font-size: var(--text-micro);
color: var(--danger);
font-weight: 700;
margin: 7px 0 0;
min-height: 18px;
}
.ibt-nm-ft {
display: grid;
grid-template-columns: 1fr 1.4fr;
gap: 8px;
margin-top: 12px;
}
.ibt-nm-btn {
box-sizing: border-box;
width: 100%;
height: 46px;
padding: 0 12px;
display: inline-flex;
align-items: center;
justify-content: center;
font-family: inherit;
font-size: var(--text-body);
line-height: 1;
font-weight: 800;
white-space: nowrap;
color: #fff;
background: var(--accent);
border: 1.5px solid var(--accent);
border-radius: 11px;
cursor: pointer;
transition:
background-color 0.14s,
border-color 0.14s,
color 0.14s;
}
.ibt-nm-btn:hover {
background: var(--accent-600);
border-color: var(--accent-600);
}
.ibt-nm-btn.ghost {
color: var(--muted);
background: #fff;
border-color: var(--line);
}
.ibt-nm-btn.ghost:hover {
color: var(--ink);
background: var(--bg-tint);
border-color: #d8d8d8;
}
.sm-flash {
animation: smFlash 1.2s ease;
}
@keyframes smFlash {
0% {
box-shadow: 0 0 0 3px rgba(23, 46, 85, 0.35);
}
100% {
box-shadow: 0 6px 14px -12px rgba(23, 46, 85, 0.4);
}
}
@media (max-width: 767px) {
.sm-scr .ibt-body {
font-size: var(--text-body);
}
.sm-scr .ibt-qdir {
font-size: var(--text-body);
}
.sm-scr .ibt-opt {
font-size: var(--text-body);
padding: 10px 14px;
}
.sm-scr .ibt-input {
font-size: var(--text-body);
}
.sm-scr .ibt-no {
font-size: var(--text-emphasis);
}
.sm-scr .ibt-result-score {
font-size: var(--text-title);
}
.sm-scr .ibt-explain-tx {
font-size: var(--text-small);
}
}
@media (prefers-reduced-motion: reduce) {
.ibt-navpanel.on {
animation: none;
}
.sm-flash {
animation: none;
}
}
.ibt-qtype {
display: flex;
align-items: baseline;
flex-wrap: wrap;
gap: 8px;
margin-bottom: 12px;
padding-bottom: 10px;
border-bottom: 1px dashed var(--line);
font-size: var(--text-small);
line-height: 1.4;
}
.ibt-qtype b {
font-weight: 800;
color: #fff;
background: var(--accent);
border-radius: 999px;
padding: 3px 11px;
}
.ibt-qtype span {
color: var(--body);
}
.ibt-qtype i {
margin-left: auto;
font-style: normal;
color: var(--muted);
}
.ibt-body .q-bogi td .q-bword {
display: inline-block;
margin: 2px 1.4em 2px 0;
white-space: nowrap;
}
.ibt-card.nodir .ibt-cardhd {
margin-bottom: 6px;
}
.ibt-items {
margin-top: 4px;
}
.ibt-body.ibt-items > .q-box {
padding: 0;
}
.ibt-iitem {
display: flex;
gap: 0.4em;
padding: 12px 20px;
border-radius: 10px;
line-height: 1.9;
}
.ibt-items > .q-box > .ibt-iitem {
border-radius: 0;
}
.ibt-iitem + .ibt-iitem {
margin-top: 4px;
}
.ibt-iitem.ok {
background: var(--ok-bg);
}
.ibt-iitem.bad {
background: var(--danger-bg);
}
.ibt-ino {
flex: none;
font-weight: 700;
color: var(--muted);
}
.ibt-isent {
flex: 1;
min-width: 0;
}
.ibt-chips {
white-space: normal;
}
.ibt-chipg {
white-space: nowrap;
}
.ibt-chip {
display: inline-block;
font-family: inherit;
font-size: inherit;
color: var(--body);
background: #fff;
border: 1.5px solid var(--line);
border-radius: 8px;
padding: 2px 10px;
margin: 2px 1px;
line-height: 1.4;
transition: 0.12s;
}
.ibt-chip.pick {
cursor: pointer;
}
.ibt-chip.pick:hover {
border-color: var(--point);
background: var(--point-050);
}
.ibt-chip.sel {
border-color: var(--point);
background: var(--point-050);
color: var(--ink);
font-weight: 700;
}
.ibt-chip.ans {
border-color: var(--ok);
background: var(--ok-bg);
color: var(--ok);
font-weight: 700;
}
.ibt-chip.wrong {
border-color: var(--danger);
background: var(--danger-bg);
color: var(--danger);
font-weight: 700;
}
.ibt-chip-sep {
color: var(--muted);
padding: 0 2px;
}
.ibt-iinput {
font-family: inherit;
font-size: inherit;
color: var(--ink);
background: transparent;
border: 0;
border-bottom: 1.5px solid var(--line);
border-radius: 0;
padding: 0 4px 2px;
margin: 0 2px;
max-width: 100%;
outline: none;
}
.ibt-iinput::placeholder {
color: #b9bfc9;
}
.ibt-iinput:focus {
border-bottom-color: var(--accent);
background: var(--accent-050);
}
.ibt-iinput.locked {
font-weight: 700;
}
.ibt-iinput.ans {
color: var(--ok);
border-bottom-color: var(--ok);
}
.ibt-iinput.wrong {
color: var(--danger);
border-bottom-color: var(--danger);
text-decoration: line-through;
}
.ibt-imk {
margin-left: 6px;
font-weight: 800;
}
.ibt-imk.ok {
color: var(--ok);
}
.ibt-imk.bad {
color: var(--danger);
}
.ibt-ians {
margin-left: 6px;
padding: 1px 9px;
border-radius: 999px;
background: var(--ok-bg);
color: var(--ok);
font-weight: 700;
font-size: var(--text-small);
white-space: nowrap;
}
.qq-spk {
font-weight: 600;
margin-right: 2px;
}
.ibt-card u,
.ibt-card .uline {
text-decoration: underline;
text-decoration-skip-ink: none;
text-underline-offset: 3px;
text-decoration-thickness: 1px;
}
.qq-bl {
display: block;
position: relative;
padding-left: 0.9em;
}
.qq-bl-m {
position: absolute;
left: 0;
}
body.qqx {
min-height: 100vh;
margin: 0;
background: var(--bg-tint);
color: var(--body);
font-family: var(--sans);
-webkit-font-smoothing: antialiased;
}
.qqx-main {
max-width: 430px;
margin: 0 auto;
padding: 40px 15px 56px;
}
.qqx-card {
background: var(--bg);
border-radius: var(--r-md);
padding: 60px 24px;
text-align: center;
box-shadow: 0 6px 14px -12px rgba(23, 46, 85, 0.4);
}
.qqx-brand {
display: inline-block;
padding: 8px 18px;
border-radius: 999px;
background: #eaf4f9;
font-family: var(--display);
font-size: var(--text-emphasis);
font-weight: 800;
line-height: 1.2;
letter-spacing: -0.01em;
color: var(--accent);
margin: 0 0 22px;
}
.qqx-icon {
width: 62px;
height: 62px;
margin: 0 auto 18px;
border-radius: 999px;
background: var(--warn-bg);
color: var(--warn);
display: flex;
align-items: center;
justify-content: center;
}
.qqx-icon svg {
width: 30px;
height: 30px;
display: block;
}
.qqx-title {
font-family: var(--display);
font-size: var(--text-section);
font-weight: 800;
line-height: 1.35;
letter-spacing: -0.01em;
color: var(--ink);
margin: 0 0 20px;
word-break: keep-all;
}
.qqx-desc {
font-size: var(--text-body);
line-height: var(--line-body);
color: var(--muted);
margin: 0;
word-break: keep-all;
}
.qqx-desc + .qqx-desc {
margin-top: 6px;
}
.qqx-desc b {
color: var(--body);
font-weight: 700;
}
.qqx-act {
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
width: 100%;
margin-top: 32px;
padding: 13px 20px;
min-height: 44px;
box-sizing: border-box;
font-family: var(--display);
font-size: var(--text-body);
font-weight: 800;
color: #fff;
text-decoration: none;
background: var(--grad);
box-shadow: var(--grad-sheen);
border: 0;
border-radius: 12px;
cursor: pointer;
}
.qqx-act:hover {
filter: brightness(1.06);
}
