/* LimiX Studio — deep immersive dark theme (DeepSeek-inspired) */ :root { --bg: #070b16; --bg2: #0a1020; --panel: rgba(255, 255, 255, .035); --panel2: rgba(255, 255, 255, .055); --line: rgba(255, 255, 255, .09); --line2: rgba(255, 255, 255, .14); --ink: #e9edf6; --ink2: #aab2c5; --mut: #6b7387; --blue: #6e8fe8; --blue-d: #4a6fd4; --blue-glow: rgba(110, 143, 232, .35); --ok: #2dd4a7; --warn: #f0b35c; --err: #ef6a6a; --ctx: rgba(110, 143, 232, .55); --qry: rgba(45, 212, 167, .55); --r: 16px; } * { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; } body { font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Segoe UI", "Microsoft YaHei", sans-serif; background: var(--bg); color: var(--ink); line-height: 1.65; -webkit-font-smoothing: antialiased; overflow-x: hidden; } .hidden { display: none !important; } a { color: var(--blue); text-decoration: none; } ::selection { background: rgba(110, 143, 232, .3); } /* ---------- animated causal-network background ---------- */ #bg { position: fixed; inset: 0; z-index: 0; pointer-events: none; transition: opacity .8s ease; opacity: 1; } body.working #bg { opacity: .38; } main, .nav, .ft { position: relative; z-index: 1; } /* ---------- nav ---------- */ .nav { position: sticky; top: 0; z-index: 40; background: rgba(7, 11, 22, .72); backdrop-filter: blur(16px); border-bottom: 1px solid var(--line); } .nav-in { max-width: 1240px; margin: 0 auto; padding: 0 24px; height: 54px; display: flex; align-items: center; justify-content: space-between; } .brand { display: flex; align-items: center; gap: 8px; color: var(--ink); font-weight: 800; font-size: 17px; } .brand em { font-style: normal; font-weight: 500; color: var(--mut); } .bm { width: 22px; height: 22px; color: var(--blue); } img.bm { object-fit: contain; filter: brightness(1.55) saturate(1.1); } /* official mark lifted for dark bg */ /* ---------- inference progress ---------- */ .prog { margin-top: 14px; border: 1px solid var(--line); border-radius: 11px; padding: 12px 14px; background: var(--panel); } .prog-stage { font-size: 12.5px; font-weight: 600; color: var(--ink2); margin-bottom: 8px; } .prog-bar { height: 6px; border-radius: 99px; background: rgba(255, 255, 255, .07); overflow: hidden; } #prog-fill { height: 100%; width: 0%; border-radius: 99px; background: linear-gradient(90deg, var(--blue-d), var(--blue) 60%, #3ec6b8); box-shadow: 0 0 12px rgba(110, 143, 232, .6); transition: width .18s ease-out; } .prog-meta { display: flex; justify-content: space-between; margin-top: 7px; font-size: 11px; color: var(--mut); font-variant-numeric: tabular-nums; } .nav-r { display: flex; align-items: center; gap: 18px; } .nav-r a { color: var(--ink2); font-size: 13.5px; font-weight: 600; } .nav-r a:hover { color: var(--blue); } .st { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--mut); } .st b { white-space: nowrap; } .st i { width: 8px; height: 8px; border-radius: 50%; background: var(--warn); animation: pl 1.2s infinite; box-shadow: 0 0 8px currentColor; } .st.ready i { background: var(--ok); animation: none; } .st.error i { background: var(--err); animation: none; } @keyframes pl { 50% { opacity: .3; } } /* ---------- landing scroll morph ---------- */ #landing { height: 150vh; position: relative; z-index: 1; } .lv-sticky { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; } .hero { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 0 24px; will-change: opacity, transform; } .finale { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; padding: 0 24px 7vh; opacity: 0; pointer-events: none; will-change: opacity, transform; text-align: center; } .fin-tag { font-size: clamp(18px, 2.6vw, 26px); font-weight: 700; letter-spacing: 1px; color: var(--ink); text-shadow: 0 0 40px rgba(110, 143, 232, .35); } .cta2 { margin-top: 18px; padding: 12px 34px; border: 1.5px solid rgba(110, 143, 232, .5); border-radius: 14px; cursor: pointer; font-size: 15px; font-weight: 700; color: #fff; background: linear-gradient(135deg, var(--blue-d), #5a82e8); box-shadow: 0 8px 30px rgba(74, 111, 212, .4); transition: all .2s; } .cta2:hover { transform: translateY(-2px); box-shadow: 0 12px 38px rgba(74, 111, 212, .55); } .scroll-cue { margin-top: 44px; display: flex; flex-direction: column; align-items: center; gap: 8px; color: var(--mut); font-size: 12px; letter-spacing: 2px; } .scroll-cue i { width: 1px; height: 34px; background: linear-gradient(180deg, var(--blue), transparent); display: block; animation: cue 1.8s ease-in-out infinite; } @keyframes cue { 0% { transform: scaleY(.2); transform-origin: top; opacity: 0; } 45% { transform: scaleY(1); opacity: 1; } 100% { transform: scaleY(1); opacity: 0; } } .finale .edu { margin-top: 5vh; width: min(860px, 100%); } .finale .edu-card { backdrop-filter: none; } /* avoid compositing jank during scroll morph */ /* history item delete button */ .he-del { border: none; background: none; color: var(--mut); cursor: pointer; font-size: 12px; padding: 2px 5px; flex-shrink: 0; opacity: 0; transition: opacity .13s; } .he:hover .he-del { opacity: 1; } .he-del:hover { color: var(--err); } /* ---------- hero ---------- */ .hero-in { text-align: center; max-width: 860px; } .kicker { display: inline-block; font-size: 12.5px; letter-spacing: 2.5px; font-weight: 600; color: var(--blue); border: 1px solid rgba(110, 143, 232, .35); border-radius: 99px; padding: 6px 18px; background: rgba(110, 143, 232, .07); text-shadow: 0 0 18px var(--blue-glow); max-width: 100%; text-align: center; } .hero h1 { margin-top: 26px; font-size: clamp(38px, 6.4vw, 66px); font-weight: 800; letter-spacing: 1px; line-height: 1.25; text-shadow: 0 0 60px rgba(110, 143, 232, .25); } .grad { background: linear-gradient(115deg, #9db8ff 0%, #6e8fe8 45%, #3ec6b8 100%); -webkit-background-clip: text; background-clip: text; color: transparent; } .sub { margin-top: 20px; color: var(--ink2); font-size: 16.5px; line-height: 2; } .cta-row { margin-top: 36px; display: flex; justify-content: center; } .drop { position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 26px 54px; cursor: pointer; border-radius: 20px; min-width: min(420px, 100%); /* zh/en keep the same box size */ border: 1.5px solid rgba(110, 143, 232, .4); background: linear-gradient(180deg, rgba(110, 143, 232, .13), rgba(110, 143, 232, .04)); box-shadow: 0 0 44px rgba(110, 143, 232, .14), inset 0 0 30px rgba(110, 143, 232, .05); transition: all .2s; animation: dropBreath 3.8s ease-in-out infinite; } .drop:hover, .drop.ov { border-color: var(--blue); transform: translateY(-2px); box-shadow: 0 0 60px rgba(110, 143, 232, .3), inset 0 0 34px rgba(110, 143, 232, .1); } .drop:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; border-color: var(--blue); } /* travelling sheen — signals "this is the entry point" without screaming */ .drop::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; background: linear-gradient(112deg, transparent 34%, rgba(170, 196, 255, .16) 50%, transparent 66%); transform: translateX(-130%); animation: dropSheen 5.4s ease-in-out infinite; } @keyframes dropBreath { 0%, 100% { border-color: rgba(110, 143, 232, .38); box-shadow: 0 0 44px rgba(110, 143, 232, .14), inset 0 0 30px rgba(110, 143, 232, .05); } 50% { border-color: rgba(140, 170, 240, .78); box-shadow: 0 0 64px rgba(110, 143, 232, .34), inset 0 0 38px rgba(110, 143, 232, .11); } } @keyframes dropSheen { 0%, 52% { transform: translateX(-130%); } 88%, 100% { transform: translateX(130%); } } /* stronger pulse when the finale CTA sends the user back up here */ .drop.attn { animation: dropAttn 1.15s ease-in-out 2; } @keyframes dropAttn { 50% { border-color: #9db8ff; box-shadow: 0 0 78px rgba(110, 143, 232, .55), inset 0 0 46px rgba(110, 143, 232, .2); } } @media (prefers-reduced-motion: reduce) { .drop, .drop::after, .drop.attn { animation: none; } } .drop svg { width: 26px; height: 26px; color: var(--blue); } .drop span { font-size: 16px; font-weight: 700; margin-top: 6px; } .drop small { font-size: 12px; color: var(--mut); } .ex-row { margin-top: 24px; font-size: 13px; color: var(--mut); display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; align-items: center; } .ex { border: 1px solid var(--line2); background: var(--panel); border-radius: 99px; padding: 6px 15px; font-size: 13px; font-weight: 600; color: var(--ink2); cursor: pointer; transition: all .15s; } .ex:hover { border-color: var(--blue); color: var(--blue); background: rgba(110, 143, 232, .1); } /* ---------- education cards ---------- */ .edu { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 58px; text-align: left; } .edu-card { border: 1px solid var(--line); border-radius: var(--r); padding: 20px 22px; background: var(--panel); backdrop-filter: blur(8px); transition: all .2s; } .edu-card:hover { border-color: rgba(110, 143, 232, .4); background: var(--panel2); transform: translateY(-3px); } .ei { font-size: 22px; } .edu-card h3 { font-size: 15px; font-weight: 700; margin: 8px 0 6px; } .edu-card p { font-size: 13px; color: var(--mut); line-height: 1.75; } /* ---------- workbench ---------- */ .work { max-width: 1240px; margin: 0 auto; padding: 26px 24px 80px; } .work-grid { display: grid; grid-template-columns: 372px 1fr; gap: 22px; align-items: start; } @media (max-width: 980px) { .work-grid { grid-template-columns: 1fr; } } .panel { border: 1px solid var(--line); border-radius: var(--r); background: rgba(10, 16, 32, .82); backdrop-filter: blur(14px); padding: 20px; position: sticky; top: 76px; } .p-title { font-size: 12px; font-weight: 700; letter-spacing: 1.5px; color: var(--mut); margin-bottom: 10px; } .p-title.mt { margin-top: 22px; } /* chips */ .chip { display: flex; align-items: center; gap: 9px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 11px; background: var(--panel); font-size: 13px; } .chip + .chip { margin-top: 8px; } .ci { font-size: 11px; font-weight: 700; color: var(--blue); background: rgba(110, 143, 232, .13); padding: 2px 9px; border-radius: 99px; flex-shrink: 0; } .ci.q { color: var(--ok); background: rgba(45, 212, 167, .12); } .cn { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .cm { color: var(--mut); font-size: 11.5px; margin-left: auto; white-space: nowrap; } .cx { border: none; background: none; color: var(--mut); cursor: pointer; font-size: 13px; padding: 2px 4px; flex-shrink: 0; } .cx:hover { color: var(--err); } .linklike { border: 1px dashed rgba(110, 143, 232, .4); background: none; color: var(--blue); font-size: 12.5px; font-weight: 600; border-radius: 10px; padding: 8px 12px; cursor: pointer; width: 100%; margin-top: 8px; transition: background .15s; } .linklike:hover { background: rgba(110, 143, 232, .1); } .note { margin-top: 10px; font-size: 12px; color: var(--mut); background: var(--panel); border: 1px solid var(--line); border-radius: 10px; padding: 8px 11px; line-height: 1.7; } .note b { color: var(--ink2); } /* preview */ .pv { margin-top: 12px; } .pv summary { font-size: 13px; font-weight: 600; cursor: pointer; user-select: none; color: var(--ink2); } .lg { font-size: 11px; font-weight: 500; color: var(--mut); margin-left: 8px; } .lg i { display: inline-block; width: 9px; height: 9px; border-radius: 3px; margin: 0 4px 0 10px; vertical-align: -1px; } .lg i.a { background: var(--ctx); margin-left: 8px; } .lg i.b { background: var(--qry); } .ts { overflow: auto; border: 1px solid var(--line); border-radius: 10px; max-height: 240px; margin-top: 8px; } .ts.tall { max-height: 380px; } table { border-collapse: collapse; width: 100%; font-size: 12px; white-space: nowrap; } thead th { position: sticky; top: 0; background: #10182e; color: var(--mut); font-weight: 600; text-align: left; padding: 7px 10px; border-bottom: 1px solid var(--line); z-index: 1; } tbody td { padding: 5px 10px; border-bottom: 1px solid rgba(255, 255, 255, .04); color: var(--ink2); font-variant-numeric: tabular-nums; } tbody tr.rctx td:first-child { box-shadow: inset 3px 0 0 var(--ctx); } tbody tr.rqry td:first-child { box-shadow: inset 3px 0 0 var(--qry); } td.imp { background: rgba(45, 212, 167, .13); color: var(--ok); font-weight: 600; } /* sliders / controls */ .split { margin-top: 14px; } .split label { display: flex; justify-content: space-between; font-size: 12.5px; font-weight: 600; color: var(--ink2); } .split output { color: var(--blue); font-weight: 700; } input[type=range] { width: 100%; margin-top: 6px; accent-color: var(--blue); } .sm { font-size: 11.5px; color: var(--mut); margin-top: 4px; line-height: 1.6; } .tsel { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; } .tb { border: 1.5px solid var(--line); background: var(--panel); border-radius: 11px; padding: 10px 4px; cursor: pointer; font-size: 13px; font-weight: 700; color: var(--ink2); transition: all .13s; } .tb:hover { border-color: rgba(110, 143, 232, .5); } .tb.active { border-color: var(--blue); background: rgba(110, 143, 232, .14); color: var(--blue); box-shadow: 0 0 18px rgba(110, 143, 232, .12); } .tdesc { font-size: 11.5px; color: var(--mut); margin-top: 8px; } .badge { display: inline-block; font-size: 11.5px; font-weight: 700; color: var(--ok); background: rgba(45, 212, 167, .1); border: 1px solid rgba(45, 212, 167, .35); padding: 2px 10px; border-radius: 99px; margin-top: 8px; } /* advisory: the user's task choice cannot run on the chosen target column */ .twarn { margin-top: 8px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 11.5px; line-height: 1.5; color: var(--warn); background: rgba(240, 179, 92, .09); border: 1px solid rgba(240, 179, 92, .32); border-radius: 10px; padding: 7px 10px; } .twarn-fix { flex-shrink: 0; border: 1px solid rgba(240, 179, 92, .5); background: rgba(240, 179, 92, .12); color: var(--warn); border-radius: 8px; padding: 2px 9px; font-size: 11px; font-weight: 700; cursor: pointer; transition: all .15s; } .twarn-fix:hover { background: rgba(240, 179, 92, .22); } /* result card produced with settings other than the current panel state */ .rc-stale { font-size: 10.5px; font-weight: 700; color: var(--warn); white-space: nowrap; border: 1px solid rgba(240, 179, 92, .42); background: rgba(240, 179, 92, .1); border-radius: 99px; padding: 1px 8px; margin-left: 6px; flex-shrink: 0; } .frow { display: grid; grid-template-columns: 52px 1fr; gap: 8px; align-items: center; margin-top: 14px; } .frow label { font-size: 12.5px; font-weight: 600; color: var(--ink2); } .sel { padding: 8px 11px; font-size: 13px; border: 1.5px solid var(--line); border-radius: 10px; background: var(--bg2); color: var(--ink); outline: none; } /* imputation has no target column: show why instead of an empty selector */ .tnote { margin-top: 10px; font-size: 11.5px; line-height: 1.55; color: var(--mut); border: 1px dashed var(--line2); border-radius: 10px; padding: 7px 10px; } .sel:focus { border-color: var(--blue); } .run { width: 100%; margin-top: 18px; padding: 12px; border: none; border-radius: 12px; background: linear-gradient(135deg, var(--blue-d), #5a82e8); color: #fff; font-size: 15px; font-weight: 700; cursor: pointer; box-shadow: 0 6px 24px rgba(74, 111, 212, .35); transition: all .15s; } .run:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 10px 30px rgba(74, 111, 212, .5); } .run:disabled { opacity: .4; cursor: not-allowed; box-shadow: none; } .rh { font-size: 11px; color: var(--mut); margin-top: 9px; text-align: center; } /* ---------- run history ---------- */ .h-empty { border: 1px dashed var(--line2); border-radius: var(--r); padding: 60px 30px; text-align: center; color: var(--ink2); } .he-icon { font-size: 26px; color: var(--blue); text-shadow: 0 0 24px var(--blue-glow); margin-bottom: 12px; } .he-sub { font-size: 13px; color: var(--mut); margin-top: 6px; } .run-card { border: 1px solid var(--line); border-radius: var(--r); background: rgba(10, 16, 32, .82); backdrop-filter: blur(14px); margin-bottom: 18px; overflow: hidden; animation: rise .45s ease both; } @keyframes rise { from { opacity: 0; transform: translateY(14px); } } .rc-head { display: flex; align-items: center; gap: 10px; padding: 13px 18px; border-bottom: 1px solid var(--line); cursor: pointer; user-select: none; } .rc-head:hover { background: var(--panel); } .rc-no { font-size: 11px; font-weight: 800; color: var(--blue); background: rgba(110, 143, 232, .13); border-radius: 8px; padding: 3px 9px; flex-shrink: 0; } .rc-title { font-size: 14px; font-weight: 700; } .rc-meta { font-size: 11.5px; color: var(--mut); margin-left: auto; white-space: nowrap; } .rc-fold { color: var(--mut); font-size: 12px; transition: transform .2s; flex-shrink: 0; } .run-card.closed .rc-fold { transform: rotate(-90deg); } .rc-body { padding: 16px 18px; } .run-card.closed .rc-body { display: none; } .mrow { display: grid; grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)); gap: 9px; } .mc { background: var(--panel); border: 1px solid var(--line); border-radius: 11px; padding: 10px 13px; } .mc .l { font-size: 11px; color: var(--mut); font-weight: 600; } .mc .v { font-size: 21px; font-weight: 800; color: var(--ink); margin-top: 1px; font-variant-numeric: tabular-nums; } .mc .v.hl { color: var(--blue); text-shadow: 0 0 18px var(--blue-glow); } .cgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 10px; margin-top: 10px; } .cb { border: 1px solid var(--line); border-radius: 11px; padding: 12px 13px; background: var(--panel); } .cb h4 { font-size: 12.5px; font-weight: 700; color: var(--ink2); margin-bottom: 6px; } .cb svg { width: 100%; height: auto; display: block; } .cb p { font-size: 12px; color: var(--mut); } .cb { max-height: 380px; overflow: auto; } .cb-cell { display: flex; flex-direction: column; min-width: 0; } .cn-note { font-size: 11px; color: var(--mut); margin-top: 5px; line-height: 1.5; } /* ---------- collapsible result tables ---------- */ .tbl { margin-top: 14px; border: 1px solid var(--line); border-radius: 11px; background: var(--panel); overflow: hidden; } .tbl > summary { display: flex; align-items: center; gap: 8px; padding: 10px 14px; cursor: pointer; user-select: none; font-size: 13px; font-weight: 700; color: var(--ink2); list-style: none; } .tbl > summary::-webkit-details-marker { display: none; } .tbl > summary:hover { background: var(--panel2); } .tbl-arrow { flex-shrink: 0; width: 0; height: 0; border-left: 5px solid var(--mut); border-top: 4px solid transparent; border-bottom: 4px solid transparent; transition: transform .18s ease; } .tbl[open] > summary .tbl-arrow { transform: rotate(90deg); } .tbl-meta { margin-left: auto; font-size: 11.5px; font-weight: 500; color: var(--mut); font-variant-numeric: tabular-nums; } .tbl-head { display: flex; align-items: center; gap: 8px; padding: 10px 14px; font-size: 13px; font-weight: 700; color: var(--ink2); } .tbl .ph { padding: 0 14px; margin: 6px 0 8px; } .tbl .ts { max-height: 320px; margin: 0 14px 14px; } .tbl.open .ts { max-height: 260px; } td.rown, th.rown { color: var(--mut); font-weight: 600; text-align: right; width: 1%; white-space: nowrap; } /* ---------- column picker (bounded-width matrix inspection) ---------- */ .colpick { padding: 4px 14px 10px; } .cp-hint { font-size: 11.5px; color: var(--mut); margin-bottom: 8px; } .cp-chips { display: flex; flex-wrap: wrap; gap: 6px; max-height: 116px; overflow: auto; } .cp-chip { max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border: 1px solid var(--line2); background: transparent; color: var(--ink2); border-radius: 99px; padding: 4px 11px; font-size: 12px; font-weight: 600; cursor: pointer; transition: all .13s; } .cp-chip:hover { border-color: var(--blue); color: var(--blue); } .cp-chip.on { background: rgba(110, 143, 232, .16); border-color: var(--blue); color: var(--blue); } /* layout safety: no child may ever widen the card or the page */ .run-card, .rc-body, .tbl, .cb-cell, .cgrid > * { min-width: 0; max-width: 100%; } .ts { width: 100%; } .ts table { width: max-content; min-width: 100%; } .hint { display: flex; gap: 9px; align-items: flex-start; margin-top: 12px; font-size: 12.5px; color: var(--ink2); border: 1px solid rgba(110, 143, 232, .28); border-radius: 11px; background: rgba(110, 143, 232, .07); padding: 10px 13px; line-height: 1.7; } .hint .hi { color: var(--blue); flex-shrink: 0; } .ph { display: flex; justify-content: space-between; align-items: center; margin: 14px 0 8px; } .ph h3 { font-size: 13px; font-weight: 700; color: var(--ink2); } .lk { border: 1px solid var(--line2); background: none; border-radius: 8px; padding: 4px 12px; font-size: 12px; font-weight: 600; color: var(--blue); cursor: pointer; } .lk:hover { background: rgba(110, 143, 232, .12); } /* ---------- footer / toast ---------- */ .ft { border-top: 1px solid var(--line); padding: 22px; text-align: center; font-size: 12.5px; color: var(--mut); background: rgba(7, 11, 22, .6); } .toast { position: fixed; left: 50%; bottom: 30px; transform: translateX(-50%); z-index: 90; max-width: 82vw; background: #1a2440; border: 1px solid var(--line2); color: var(--ink); font-size: 13.5px; padding: 11px 18px; border-radius: 12px; box-shadow: 0 10px 30px rgba(0, 0, 0, .5); } .toast.error { background: #3a1620; border-color: rgba(239, 106, 106, .4); } /* ---------- lang toggle (DeepSeek-style) ---------- */ .lang-btn { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--line2); background: var(--panel); color: var(--ink2); border-radius: 99px; padding: 5px 13px; font-size: 12.5px; font-weight: 700; cursor: pointer; transition: all .15s; min-width: 74px; justify-content: center; /* "EN" / "中文" — nav never shifts */ } .lang-btn:hover { border-color: var(--blue); color: var(--blue); } .lg-ic { width: 15px; height: 15px; } /* ---------- history panel ---------- */ .hist-wrap { border-top: 1px solid var(--line); margin-top: 20px; padding-top: 4px; } .hist-note { display: flex; align-items: center; gap: 8px; margin-top: 8px; font-size: 11px; color: var(--mut); line-height: 1.5; } .hist-restore { flex-shrink: 0; border: 1px solid var(--line2); background: var(--panel); color: var(--ink2); border-radius: 8px; padding: 2px 9px; font-size: 11px; font-weight: 600; cursor: pointer; transition: all .15s; } .hist-restore:hover { border-color: var(--blue); color: var(--blue); } .hist-count { font-size: 11px; color: var(--mut); font-weight: 500; margin-left: 4px; } .hist-clear { float: right; border: none; background: none; color: var(--mut); font-size: 11px; cursor: pointer; padding: 1px 4px; } .hist-clear:hover { color: var(--err); } .he { display: flex; gap: 9px; align-items: center; padding: 8px 10px; margin-top: 6px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel); cursor: pointer; transition: all .13s; } .he:hover { border-color: rgba(110, 143, 232, .45); background: var(--panel2); } .he-no { font-size: 10.5px; font-weight: 800; color: var(--blue); background: rgba(110, 143, 232, .13); border-radius: 7px; padding: 2px 7px; flex-shrink: 0; } .he-info { min-width: 0; } .he-info b { display: block; font-size: 12.5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .he-info small { display: block; font-size: 11px; color: var(--mut); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .he-kv { margin-left: auto; font-size: 11px; font-weight: 700; color: var(--ok); flex-shrink: 0; } /* ---------- recent (hero) ---------- */ .recent { margin-top: 26px; } .recent-t { font-size: 12px; font-weight: 700; letter-spacing: 1.5px; color: var(--mut); margin-bottom: 10px; } #recent-list { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; } .rc-chip { display: inline-flex; align-items: center; gap: 7px; border: 1px solid var(--line2); background: var(--panel); border-radius: 99px; padding: 6px 14px; font-size: 12.5px; color: var(--ink2); cursor: pointer; transition: all .15s; } .rc-chip:hover { border-color: var(--blue); color: var(--blue); background: rgba(110, 143, 232, .1); } .rc-chip b { color: var(--blue); font-weight: 700; } @media (max-width: 640px) { .hero { padding: 0 18px; } .hero h1 { font-size: clamp(32px, 9vw, 44px); } .sub { font-size: 14.5px; } .kicker { font-size: 11px; letter-spacing: 1.6px; padding: 5px 14px; } .cta-row { margin-top: 26px; } .drop { padding: 20px 24px; min-width: 100%; } .drop span { font-size: 15px; } .drop small { font-size: 11.5px; } .ex-row { margin-top: 18px; } .scroll-cue { margin-top: 26px; } /* finale: bounded height so the wordmark never floats over the copy */ .finale { padding: 0 18px 4.5vh; } .fin-tag { font-size: 17px; letter-spacing: .5px; } .cta2 { margin-top: 12px; padding: 10px 24px; font-size: 14px; } .finale .edu { margin-top: 3vh; display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; scrollbar-width: none; } .finale .edu::-webkit-scrollbar { display: none; } .finale .edu-card { min-width: 80%; scroll-snap-align: center; padding: 14px 16px; } .finale .edu-card p { font-size: 12.5px; } .edu { grid-template-columns: 1fr; margin-top: 40px; } .panel { position: static; } .cm { display: none; } } /* landscape phones / very short viewports: drop the cards entirely */ @media (max-height: 560px) and (max-width: 900px) { .finale .edu { display: none; } .fin-tag { font-size: 15px; } }