:root { --ink: #1f2430; --muted: #6b7280; --panel: #fff; --panel-2: #f7faff; --panel-3: #fbfdff; --edge-hi: #fff; --edge-mid: #eef3ff; --edge-low: #cfd8ef; --edge-deep: #b9c6e6; --line: #e6edf7; --line-2: #dbe7fb; --accent: #3b82f6; --accent-2: #60a5fa; --green: #22c55e; --radius: 20px; --radius-lg: 24px; --radius-xl: 28px; --shadow: 0 18px 46px #17284e2e; --shadow-2: 0 24px 64px #121c3a38; } * { box-sizing: border-box; } html, body { height: 100%; } body { margin: 0; background: transparent; color: var(--ink); font-family: "SUITE", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Apple SD Gothic Neo", "Noto Sans KR", system-ui, sans-serif; user-select: none; overflow: hidden; } .frame { position: fixed; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 1380px; height: 720px; display: grid; grid-template-rows: 64px 1fr; border-radius: var(--radius-xl); background: linear-gradient(180deg, #fffffff0, #ffffffdb); border: 1px solid var(--edge-mid); box-shadow: inset 0 1px 0 var(--edge-hi), inset 0 -1px 0 var(--edge-low), 0 14px 32px #0e1a3c1a var(--shadow); } .chrome { border-radius: var(--radius-xl) var(--radius-xl) 0 0; height: 64px; display: flex; align-items: center; gap: 12px; padding: 0 18px; background: linear-gradient(180deg, #fff, #f6f9ff); border-bottom: 1px solid var(--line-2); box-shadow: inset 0 1px 0 var(--edge-hi), 0 10px 22px #0f21420f; flex-wrap: nowrap; } .title { font-weight: 900; letter-spacing: 0.2px; background: linear-gradient(90deg, #000, #000); -webkit-background-clip: text; background-clip: text; color: transparent; min-width: 0; flex: 0 1 auto; } .grow { flex: 1; } .btn-ghost { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; background: linear-gradient(180deg, #fff, #f4f8ff); border: 1px solid var(--edge-mid); box-shadow: inset 0 1px 0 var(--edge-hi), inset 0 -1px 0 var(--edge-low), 0 4px 10px #141c3c1a; cursor: pointer; } .btn-ghost:hover { filter: brightness(1.03); } .btn-ghost:active { box-shadow: inset 0 1px 0 var(--edge-low), inset 0 -1px 0 var(--edge-hi), 0 2px 6px #141c3c1a; transform: translateY(1px); } .top-icons { display: flex; flex-direction: row; align-items: center; gap: 8px; white-space: nowrap; } .top-icons .btn-ghost { display: inline-grid; margin: 0; } .body { display: grid; grid-template-columns: 1fr 430px; gap: 18px; padding: 18px; border-radius: 0 0 var(--radius-xl) var(--radius-xl); background: linear-gradient(180deg, #ffffffeb, #fffffffa); border-top: 1px solid var(--edge-hi); } .left { display: grid; grid-template-rows: 390px 112px 1fr; gap: 18px; } .right { display: grid; grid-template-rows: 1fr; gap: 18px; } .carousel { position: relative; border-radius: var(--radius-lg); overflow: hidden; background: var(--panel); border: 1px solid var(--edge-mid); box-shadow: inset 0 1px 0 var(--edge-hi), inset 0 -1px 0 var(--edge-low), var(--shadow); } .slides { height: 100%; display: flex; transition: transform 0.45s cubic-bezier(0.22, 0.61, 0.36, 1); } .slide { min-width: 100%; height: 100%; display: grid; grid-template-rows: 1fr auto; } .carousel .slide .img { position: relative; width: 100%; height: 100%; border-radius: 16px; overflow: hidden; background: #eaf1ff; border: 1px solid var(--line); } .carousel .slide .img > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; cursor: zoom-in; user-select: none; -webkit-user-drag: none; } .carousel .slide .img.is-bg { background: center/cover no-repeat; } .carousel .slide .caption { margin: 12px 16px 16px; background: linear-gradient(180deg, #fff, #f9fbff); border: 1px solid var(--edge-mid); border-radius: 16px; padding: 12px 14px; display: flex; gap: 10px; align-items: center; box-shadow: inset 0 1px 0 var(--edge-hi), inset 0 -1px 0 var(--edge-low); } .cap-title { font-weight: 900; } .cap-date { display: flex; gap: 6px; align-items: center; font-size: 14px; color: var(--muted); } .cap-date i { width: 18px; height: 18px; border-radius: 50%; background: var(--accent); display: inline-block; } .ctrl { position: absolute; inset: 0; display: flex; justify-content: space-between; align-items: center; pointer-events: none; } .ctrl .arrow { pointer-events: auto; width: 44px; height: 64px; border-radius: 14px; background: linear-gradient(180deg, #fff, #f3f8ff); border: 1px solid var(--edge-mid); box-shadow: inset 0 1px 0 var(--edge-hi), inset 0 -1px 0 var(--edge-low), 0 8px 18px #1016281f; display: grid; place-items: center; margin: 0 8px; cursor: pointer; font-weight: 900; } .ctrl .arrow:hover { filter: brightness(1.04); } .dots { position: absolute; right: 26px; bottom: 34px; display: flex; gap: 8px; } .dot { width: 8px; height: 8px; border-radius: 999px; background: #a4bfff; opacity: 0.5; } .dot.active { width: 26px; opacity: 1; background: var(--accent); } .strip { display: flex; align-items: center; gap: 14px; padding: 12px 16px; border-radius: var(--radius); background: linear-gradient(180deg, #fff, #f7fbff); border: 1px solid var(--edge-mid); box-shadow: inset 0 1px 0 var(--edge-hi), inset 0 -1px 0 var(--edge-low), 0 8px 20px #10162814; } .strip .pill { min-width: 54px; height: 54px; border-radius: 999px; background: linear-gradient(180deg, #eaf2ff, #dce8ff); border: 1px solid var(--edge-mid); color: #1859ff; display: grid; place-items: center; font-weight: 900; box-shadow: inset 0 1px 0 var(--edge-hi), inset 0 -1px 0 var(--edge-low); } .strip.dg .dg-badge { height: 48px; padding: 0 16px; } .strip.dg .dg-emoji { font-size: 0; } .strip.dg .dg-emoji::before { content: ""; display: inline-block; width: 20px; height: 20px; background: url(img/doji.png) center/contain no-repeat; vertical-align: -2px; border-radius: 50%; box-shadow: inset 0 1px 0 #fff, inset 0 -1px 0 #cfd8ef; } .strip.dg .dg-divider { width: 1px; height: 36px; border-radius: 1px; background: linear-gradient(180deg, #e7eefb, #dbe7fb); } .strip.dg .list { position: relative; display: flex; gap: 12px; overflow: hidden; flex: 1; -webkit-mask-image: linear-gradient( to right, #0000 0, #000f 24px, #000f calc(100% - 24px), #0000 100% ); mask-image: linear-gradient( to right, #0000 0, #000f 24px, #000f calc(100% - 24px), #0000 100% ); } .strip .thumbs { display: flex; gap: 12px; width: 100%; } .strip .thumb { position: relative; flex: 0 0 22%; max-width: 230px; aspect-ratio: 16/9; border: 1px solid var(--edge-mid); border-radius: 14px; overflow: hidden; background: #eef3fb; cursor: pointer; box-shadow: inset 0 1px 0 var(--edge-hi), inset 0 -1px 0 var(--edge-low), 0 6px 16px #1016281a; transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease; } .strip .thumb:hover { transform: translateY(-2px); box-shadow: 0 12px 26px #10162824; } .strip .thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; user-select: none; -webkit-user-drag: none; } .strip .nav { display: flex; gap: 8px; } .nav .sbtn { width: 40px; height: 40px; border-radius: 12px; border: 1px solid var(--edge-mid); background: linear-gradient(180deg, #fff, #f4f8ff); box-shadow: inset 0 1px 0 var(--edge-hi), inset 0 -1px 0 var(--edge-low), 0 6px 16px #10162814; display: grid; place-items: center; cursor: pointer; font-weight: 900; } .nav .sbtn:hover { filter: brightness(1.03); } .banner { border: 1px solid var(--edge-mid); border-radius: var(--radius-lg); overflow: hidden; background: var(--panel); display: grid; grid-template-columns: 1fr auto; align-items: center; box-shadow: inset 0 1px 0 var(--edge-hi), inset 0 -1px 0 var(--edge-low), var(--shadow); } .banner .art { height: 100%; background: #e6f1ff url(img/sample_images_00.png) center/cover no-repeat; } .banner .desc { display: grid; align-content: center; gap: 6px; padding: 16px 18px; } .desc .title { font-weight: 900; } .meter { height: 8px; width: 180px; border-radius: 999px; background: #e5edff; overflow: hidden; } .meter > i { display: block; height: 100%; width: 48%; background: linear-gradient(90deg, #93b7ff, #4586ff); } .card { border: 1px solid var(--edge-mid); background: linear-gradient(180deg, #fff, #f8fbff); border-radius: var(--radius-lg); padding: 16px; box-shadow: inset 0 1px 0 var(--edge-hi), inset 0 -1px 0 var(--edge-low), var(--shadow); } .card h3 { margin: 0 0 6px; font-size: 18px; } .notice-list { display: flex; flex-direction: column; gap: 12px; max-height: 100%; overflow-y: auto; padding-right: 4px; scrollbar-width: thin; scrollbar-color: #c8c8c899 transparent; } .notice-item { padding: 12px 14px; border-radius: 14px; border: 1px solid var(--edge-mid); background: #fff; cursor: pointer; box-shadow: inset 0 1px 0 var(--edge-hi), inset 0 -1px 0 var(--edge-low); } .notice-item:hover { background: #f3f6ff; } .notice-list::-webkit-scrollbar { width: 6px; } .notice-list::-webkit-scrollbar-track { background: transparent; } .notice-list::-webkit-scrollbar-thumb { background: #c8c8c899; border-radius: 10px; } .notice-list::-webkit-scrollbar-thumb:hover { background: #b4b4b4cc; } .modal { position: fixed; inset: 0; display: none; place-items: center; background: #00000059; -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); z-index: 9999; } .modal.show { display: grid; } .sheet { width: min(880px, 92vw); height: 72vh; background: #fff; border: 1px solid var(--edge-mid); border-radius: 20px; display: flex; flex-direction: column; overflow: hidden; box-shadow: inset 0 1px 0 var(--edge-hi), inset 0 -1px 0 var(--edge-low), 0 24px 60px #10162840; } .sh-head { display: flex; align-items: center; gap: 12px; padding: 16px 18px; border-bottom: 1px solid var(--line-2); background: linear-gradient(180deg, #fff, #fbfdff); position: sticky; top: 0; z-index: 2; box-shadow: inset 0 1px 0 var(--edge-hi); } .badge { display: inline-flex; align-items: center; justify-content: center; height: 28px; padding: 0 10px; border-radius: 999px; font-size: 12px; font-weight: 800; letter-spacing: 0.2px; background: #eff6ff; color: #1d4ed8; border: 1px solid var(--edge-mid); box-shadow: inset 0 1px 0 var(--edge-hi), inset 0 -1px 0 var(--edge-low); } .sh-title { margin: 0; font-size: 18px; font-weight: 900; color: #0f172a; } .btn.sh-close { padding: 8px 12px; border-radius: 12px; border: 1px solid var(--edge-mid); background: linear-gradient(180deg, #fff, #f5f8ff); cursor: pointer; font-weight: 800; box-shadow: inset 0 1px 0 var(--edge-hi), inset 0 -1px 0 var(--edge-low); } .btn.sh-close:hover { filter: brightness(1.03); } .sh-meta { padding: 10px 18px 0; font-size: 12px; color: #64748b; } .sh-body { padding: 14px 18px 20px; color: #1f2430; line-height: 1.7; overflow: auto; flex: 1; white-space: pre-wrap; word-break: break-word; } .sh-media { padding: 10px 18px 0; display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); } .sh-media:empty { display: none; } .sh-media img { width: 100%; height: 200px; object-fit: cover; object-position: center; border-radius: 14px; border: 1px solid var(--edge-mid); box-shadow: 0 8px 20px #1016281f; cursor: zoom-in; user-select: none; } @media (max-width: 720px) { .sh-media { grid-template-columns: 1fr; } .sh-media img { height: 180px; } } .img-viewer { position: fixed; inset: 0; display: none; place-items: center; background: #000000b3; -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); z-index: 10000; } .img-viewer.show { display: grid; } .img-viewer img { max-width: min(96vw, 1200px); max-height: 90vh; border-radius: 16px; border: 1px solid #ffffff59; box-shadow: 0 30px 80px #00000073; } #guideModal .sh-body.guide-compact, #guideModal .sh-body.guide-compact * { white-space: normal !important; word-break: normal !important; overflow-wrap: break-word !important; writing-mode: horizontal-tb !important; text-orientation: mixed !important; letter-spacing: normal !important; text-transform: none !important; min-width: 0 !important; transform: none !important; } #guideModal .guide-compact { padding-top: 8px; line-height: 1.6; } #guideModal .guide-compact .guide-chips { display: flex; gap: 8px; flex-wrap: wrap; padding: 0 0 8px; } #guideModal .guide-compact .chip { display: inline-flex; align-items: center; height: 26px; padding: 0 10px; border: 1px solid var(--edge-mid); border-radius: 999px; background: linear-gradient(180deg, #fff, #f5f8ff); font-size: 12px; font-weight: 800; text-decoration: none; color: #1f2430; box-shadow: inset 0 1px 0 var(--edge-hi), inset 0 -1px 0 var(--edge-low); white-space: nowrap; } #guideModal .guide-compact .chip.bad { color: #b91c1c; border-color: #f3d3d3; background: linear-gradient(180deg, #fff6f6, #ffecec); } #guideModal .guide-compact .gc-sec { margin: 10px 0 8px; } #guideModal .guide-compact .gc-sec h3 { margin: 0 0 6px; font-size: 16px; margin-top: 30px; } #guideModal .guide-compact .gc-lead { margin: 0 0 8px; color: #334155; } #guideModal .guide-compact .gc-card { display: block; border: 1px solid var(--edge-mid); border-radius: 14px; background: linear-gradient(180deg, #fff, #f7fbff); box-shadow: inset 0 1px 0 var(--edge-hi), inset 0 -1px 0 var(--edge-low); padding: 10px 12px; } #guideModal .guide-compact .gc-card.ok { border-color: #bdecc8; background: linear-gradient(180deg, #f6fff9, #effff6); } #guideModal .guide-compact .gc-card.warn { border-color: #f3d3d3; background: linear-gradient(180deg, #fff6f6, #ffecec); } #guideModal .guide-compact .gc-head { font-weight: 900; margin-bottom: 6px; } #guideModal .guide-compact .gc-list, #guideModal .guide-compact .gc-qa, #guideModal .guide-compact .gc-steps { display: block !important; width: auto !important; max-width: 100% !important; margin: 0; padding-left: 18px; list-style-position: outside; } #guideModal .guide-compact .gc-list li, #guideModal .guide-compact .gc-qa li, #guideModal .guide-compact .gc-steps li { display: list-item !important; line-height: 1.6; white-space: normal !important; word-break: normal !important; overflow-wrap: break-word !important; } #guideModal .guide-compact .gc-list.dot li { list-style: disc; } #guideModal .guide-compact .kbd, #guideModal .guide-compact .lvl { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 999px; border: 1px solid var(--edge-mid); background: #fff; font-weight: 800; font-size: 12px; word-break: normal !important; overflow-wrap: anywhere; } #guideModal .guide-compact .lvl.l1 { background: #ecfff2; border-color: #bdecc8; } #guideModal .guide-compact .lvl.l2 { background: #eef4ff; border-color: #cbdafe; } #guideModal .guide-compact .lvl.l3 { background: #fff6e4; border-color: #f5d9b5; } #guideModal .guide-compact .lvl.l4 { background: #ffecec; border-color: #f3d3d3; } #guideModal .guide-compact .gc-callout { margin-top: 8px; padding: 8px 10px; border-radius: 12px; border: 1px solid var(--edge-mid); background: linear-gradient(180deg, #fff, #f7fbff); box-shadow: inset 0 1px 0 var(--edge-hi), inset 0 -1px 0 var(--edge-low); font-size: 13px; } #guideModal .guide-compact .gc-callout.bad { border-color: #f3d3d3; background: linear-gradient(180deg, #fff6f6, #ffecec); } #guideModal .guide-compact .gc-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(280px, 1fr)); gap: 10px; } #guideModal .guide-compact .gc-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(220px, 1fr)); gap: 10px; } @media (max-width: 860px) { #guideModal .guide-compact .gc-grid-2, #guideModal .guide-compact .gc-grid-3 { grid-template-columns: 1fr; } } #rightNoticeList { max-height: 520px; overflow-y: auto; padding-right: 6px; overscroll-behavior: contain; scrollbar-gutter: stable both-edges; scrollbar-width: thin; scrollbar-color: #d2dcebe6 #f8fbff99; } #rightNoticeList::-webkit-scrollbar { width: 10px; } #rightNoticeList::-webkit-scrollbar-track { background: linear-gradient(180deg, #fff, #f7faff); border-radius: 8px; box-shadow: inset 0 0 0 1px #0000000f; } #rightNoticeList::-webkit-scrollbar-thumb { background: linear-gradient(180deg, #fff 0%, #eef3ff 100%); border-radius: 8px; border: 1px solid #00000014; box-shadow: inset 0 0 0 1px #ffffffe6 0 1px 6px #10142814; } #rightNoticeList::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, #f7faff 0%, #eaf1ff 100%); } #rightNoticeList::-webkit-scrollbar-thumb:active { background: linear-gradient(180deg, #eaf1ff 0%, #dbe7fb 100%); } #rightNoticeList { min-height: 0; }