Download style.css from klein-ml/blog: direct link, hf CLI and curl.
- Browser
- Download file 18.2 kB
-
https://huggingface.co/spaces/klein-ml/blog/resolve/main/style.css
- Command line
-
hf download hf://spaces/klein-ml/blog/style.css
-
curl -L -o style.css https://huggingface.co/spaces/klein-ml/blog/resolve/main/style.css
18.2 kB
| /* Klein ML — shared styles for index.html and every post page. | |
| Pixel display type (Pixelify Sans) to match the pixel K mark; | |
| accent is International Klein Blue. */ | |
| :root { | |
| --bg: #ffffff; | |
| --ink: #111111; | |
| --muted: #5c5f66; | |
| --surface: #f6f7f9; | |
| --surface-2:#eceef2; | |
| --rule: #d9dce3; | |
| --accent: #002fa7; /* International Klein Blue */ | |
| --accent-hover: #00237d; | |
| --accent-ink: #ffffff; /* text on blue */ | |
| --accent-soft: #e8edfb; | |
| --accent-deep: #002fa7; /* blue safe for text on white */ | |
| --link: #002fa7; | |
| --band-1: #dfe6fb; | |
| --band-2: #f7f9fe; | |
| --code-bg: #0a0a0a; | |
| --code-ink: #e8eaed; | |
| --display: "Pixelify Sans", "Courier New", monospace; | |
| --text: "Google Sans Text", "Helvetica Neue", Arial, sans-serif; | |
| --mono: "Google Sans Code", ui-monospace, "SF Mono", Menlo, monospace; | |
| --radius: 6px; /* cards and boxes: near-square, like the pixels */ | |
| --measure: 44rem; | |
| --wide: 78rem; | |
| } | |
| @media (prefers-color-scheme: dark) { | |
| :root:not([data-theme="light"]) { | |
| --bg: #0b0b0c; | |
| --ink: #ececec; | |
| --muted: #9a9ea6; | |
| --surface: #161719; | |
| --surface-2:#202226; | |
| --rule: #2e3036; | |
| --accent: #3d63ff; | |
| --accent-hover: #5b7cff; | |
| --accent-soft: #111a3d; | |
| --accent-deep: #9db2ff; | |
| --link: #9db2ff; | |
| --band-1: #0c1538; | |
| --band-2: #0b0b0c; | |
| --code-bg: #000000; | |
| } | |
| } | |
| :root[data-theme="dark"] { | |
| --bg: #0b0b0c; | |
| --ink: #ececec; | |
| --muted: #9a9ea6; | |
| --surface: #161719; | |
| --surface-2:#202226; | |
| --rule: #2e3036; | |
| --accent: #3d63ff; | |
| --accent-hover: #5b7cff; | |
| --accent-soft: #111a3d; | |
| --accent-deep: #9db2ff; | |
| --link: #9db2ff; | |
| --band-1: #0c1538; | |
| --band-2: #0b0b0c; | |
| --code-bg: #000000; | |
| } | |
| * { box-sizing: border-box; } | |
| html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; } | |
| body { | |
| margin: 0; | |
| background: var(--bg); | |
| color: var(--ink); | |
| font-family: var(--text); | |
| font-size: 1.125rem; | |
| line-height: 1.7; | |
| } | |
| h1, h2, h3, .wordmark, .btn, .cat, .eyebrow { | |
| font-family: var(--display); | |
| font-weight: 400; | |
| } | |
| a { color: inherit; } | |
| a:focus-visible, button:focus-visible { | |
| outline: 3px solid var(--accent); | |
| outline-offset: 3px; | |
| border-radius: 4px; | |
| } | |
| img { max-width: 100%; height: auto; } | |
| /* ---------- header ---------- */ | |
| .site-header { | |
| position: sticky; | |
| top: 0; | |
| z-index: 10; | |
| background: color-mix(in srgb, var(--bg) 92%, transparent); | |
| backdrop-filter: blur(10px); | |
| border-bottom: 1px solid var(--rule); | |
| } | |
| .bar { | |
| max-width: var(--wide); | |
| height: 4rem; | |
| margin: 0 auto; | |
| padding: 0 1.5rem; | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| } | |
| .wordmark { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 0.6rem; | |
| font-size: 1.35rem; | |
| font-weight: 500; | |
| text-decoration: none; | |
| letter-spacing: 0; | |
| } | |
| .wordmark .mark { width: 1.9rem; height: 1.9rem; flex: none; } | |
| .wordmark .pixel-word { height: 0.95rem; width: auto; display: block; } | |
| .mark { border-radius: 0; image-rendering: pixelated; } | |
| @media (prefers-color-scheme: dark) { | |
| :root:not([data-theme="light"]) .mark { box-shadow: 0 0 0 1px var(--rule); } | |
| } | |
| :root[data-theme="dark"] .mark { box-shadow: 0 0 0 1px var(--rule); } | |
| .wordmark .sub { | |
| color: var(--muted); | |
| padding-left: 0.6rem; | |
| border-left: 1px solid var(--rule); | |
| font-weight: 400; | |
| } | |
| .top-nav { display: flex; align-items: center; gap: 0.5rem; font-family: var(--display); } | |
| .top-nav a { | |
| text-decoration: none; | |
| font-size: 0.95rem; | |
| font-weight: 500; | |
| padding: 0.5rem 0.9rem; | |
| border-radius: 999px; | |
| } | |
| .top-nav a:hover { background: var(--surface-2); } | |
| .top-nav a.btn, .btn { | |
| background: var(--accent); | |
| color: var(--accent-ink); | |
| font-weight: 500; | |
| } | |
| .top-nav a.btn:hover { background: var(--accent-hover); } | |
| /* ---------- shell ---------- */ | |
| .shell { | |
| max-width: var(--wide); | |
| margin: 0 auto; | |
| padding: 3rem 1.5rem 6rem; | |
| } | |
| /* ---------- home ---------- */ | |
| .hero { padding: 1rem 0 2rem; } | |
| .hero h1 { | |
| font-size: clamp(2.5rem, 7vw, 4rem); | |
| line-height: 1.05; | |
| letter-spacing: 0; | |
| margin: 0 0 0.75rem; | |
| } | |
| .hero .lede { max-width: 40rem; margin: 0; font-size: 1.2rem; line-height: 1.5; color: var(--muted); } | |
| .cat { | |
| align-self: flex-start; | |
| font-size: 0.8rem; | |
| font-weight: 500; | |
| letter-spacing: 0.04em; | |
| text-transform: uppercase; | |
| padding: 0.25rem 0.7rem; | |
| border-radius: 999px; | |
| background: var(--accent); | |
| color: var(--accent-ink); | |
| } | |
| .feature { | |
| display: grid; | |
| grid-template-columns: minmax(0, 5fr) minmax(0, 8fr); | |
| gap: 0.6rem; | |
| border-radius: var(--radius); | |
| } | |
| .feature-text { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: flex-start; | |
| padding: 2rem; | |
| border-radius: var(--radius); | |
| background: linear-gradient(160deg, var(--band-1), var(--band-2)); | |
| } | |
| .feature-text .cat { margin-bottom: 1.25rem; } | |
| .feature h2 { | |
| font-size: clamp(1.7rem, 3vw, 2.4rem); | |
| line-height: 1.15; | |
| letter-spacing: 0; | |
| margin: 0 0 1rem; | |
| } | |
| .feature h2 a { text-decoration: none; } | |
| .feature h2 a:hover { text-decoration: underline; text-decoration-color: var(--accent); text-decoration-thickness: 3px; text-underline-offset: 5px; } | |
| .feature-text > p { margin: 0; font-size: 1.05rem; line-height: 1.6; } | |
| .feature-foot { margin-top: auto; padding-top: 2.5rem; } | |
| .by { margin: 0 0 1rem; font-size: 0.95rem; line-height: 1.5; } | |
| .by time { display: block; font-weight: 500; } | |
| .by span { color: var(--muted); font-size: 0.9rem; } | |
| .pill { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 0.6rem; | |
| padding: 0.75rem 1.5rem; | |
| border: 1px solid var(--ink); | |
| border-radius: 999px; | |
| font-family: var(--display); | |
| font-weight: 500; | |
| font-size: 1rem; | |
| text-decoration: none; | |
| } | |
| .pill:hover { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); } | |
| .feature-img { display: block; border-radius: var(--radius); overflow: hidden; min-height: 18rem; } | |
| .feature-img img { width: 100%; height: 100%; object-fit: cover; display: block; } | |
| section { margin-top: 4.5rem; } | |
| section > h2 { font-size: clamp(1.75rem, 4vw, 2.5rem); letter-spacing: 0; margin: 0 0 1.5rem; } | |
| .posts { | |
| list-style: none; | |
| margin: 0; | |
| padding: 0; | |
| display: grid; | |
| grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); | |
| gap: 1.5rem; | |
| } | |
| .posts li { display: flex; } | |
| .posts a { | |
| display: flex; | |
| flex-direction: column; | |
| width: 100%; | |
| border-radius: var(--radius); | |
| overflow: hidden; | |
| background: var(--surface); | |
| text-decoration: none; | |
| transition: background 0.15s; | |
| } | |
| .posts a:hover { background: var(--surface-2); } | |
| .posts img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; } | |
| .card-body { display: flex; flex-direction: column; align-items: flex-start; gap: 0.6rem; padding: 1.5rem; flex: 1; } | |
| .posts h3 { font-size: 1.6rem; line-height: 1.2; letter-spacing: 0; margin: 0; } | |
| .posts a:hover h3 { text-decoration: underline; text-decoration-color: var(--accent); text-decoration-thickness: 3px; text-underline-offset: 5px; } | |
| .posts time { margin-top: auto; padding-top: 0.5rem; color: var(--muted); font-size: 0.9rem; } | |
| .tags { margin: 0.5rem 0 0; color: var(--muted); font-size: 0.85rem; } | |
| /* ---------- article: title band ---------- */ | |
| .band { | |
| background: linear-gradient(180deg, var(--band-1) 0%, var(--band-2) 100%); | |
| padding: 2.5rem 1.5rem 3rem; | |
| } | |
| .band-inner { max-width: 56rem; margin: 0 auto; } | |
| .crumbs { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 0.6rem; | |
| margin: 0 0 3rem; | |
| font-family: var(--display); | |
| font-size: 0.9rem; | |
| } | |
| .crumbs a { color: var(--link); text-decoration: none; } | |
| .crumbs a:hover { text-decoration: underline; } | |
| .crumbs span { color: var(--muted); } | |
| .band h1 { | |
| font-size: clamp(2.4rem, 6.5vw, 4.25rem); | |
| line-height: 1.08; | |
| letter-spacing: 0; | |
| margin: 0 0 2rem; | |
| } | |
| .meta { display: flex; gap: 1.5rem 2.25rem; align-items: baseline; padding-bottom: 2rem; } | |
| .meta .when { margin: 0; flex: none; font-size: 0.9rem; line-height: 1.6; color: var(--muted); } | |
| .meta .when time, .meta .when .read { display: block; } | |
| .meta .dek { margin: 0; font-family: var(--text); font-size: clamp(1.2rem, 2.4vw, 1.6rem); line-height: 1.4; color: var(--muted); } | |
| .byline { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 1rem; | |
| padding: 1.1rem 0; | |
| border-top: 1px solid var(--rule); | |
| border-bottom: 1px solid var(--rule); | |
| } | |
| .byline p { margin: 0; line-height: 1.4; } | |
| .byline strong { display: block; font-family: var(--display); font-weight: 500; font-size: 0.95rem; } | |
| .byline span { color: var(--muted); font-size: 0.9rem; } | |
| .share { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 0.6rem; | |
| font-family: var(--display); | |
| font-weight: 500; | |
| font-size: 1rem; | |
| color: var(--ink); | |
| background: none; | |
| border: 0; | |
| padding: 0.5rem 0.9rem; | |
| border-radius: 999px; | |
| cursor: pointer; | |
| } | |
| .share:hover { background: var(--accent); color: var(--accent-ink); } | |
| .hero-img { margin: 0; } | |
| .hero-img img { display: block; width: 100%; height: clamp(16rem, 42vw, 40rem); object-fit: cover; } | |
| /* ---------- article: body ---------- */ | |
| .post-shell { | |
| display: grid; | |
| grid-template-columns: minmax(0, 1fr) minmax(0, var(--measure)) minmax(0, 1fr); | |
| gap: 0 2rem; | |
| padding-top: 3rem; | |
| max-width: none; | |
| } | |
| .post-shell > main { grid-column: 2; } | |
| .toc { | |
| grid-column: 1; | |
| grid-row: 1; | |
| justify-self: end; | |
| width: 15rem; | |
| position: sticky; | |
| top: 5.5rem; | |
| align-self: start; | |
| font-family: var(--display); | |
| font-size: 0.9rem; | |
| line-height: 1.4; | |
| } | |
| .toc details { border-radius: var(--radius); background: var(--surface); padding: 0.4rem 1.1rem 0.8rem; } | |
| .toc summary { | |
| cursor: pointer; | |
| list-style: none; | |
| padding: 0.7rem 0; | |
| font-weight: 500; | |
| font-size: 0.95rem; | |
| display: flex; | |
| justify-content: space-between; | |
| } | |
| .toc summary::-webkit-details-marker { display: none; } | |
| .toc summary::after { content: "⌃"; transition: transform 0.15s; } | |
| .toc details:not([open]) summary::after { transform: rotate(180deg); } | |
| .toc ol { list-style: none; margin: 0; padding: 0.4rem 0 0; border-top: 1px solid var(--rule); } | |
| .toc li { margin: 0; } | |
| .toc a { | |
| display: block; | |
| padding: 0.55rem 0 0.55rem 0.7rem; | |
| margin-left: -0.7rem; | |
| border-left: 3px solid transparent; | |
| text-decoration: none; | |
| color: var(--muted); | |
| } | |
| .toc a:hover { color: var(--ink); } | |
| .toc a.on { color: var(--ink); border-left-color: var(--accent); font-weight: 500; } | |
| .article { max-width: var(--measure); margin: 0 auto; } | |
| .article h2 { | |
| font-size: 2rem; | |
| line-height: 1.2; | |
| letter-spacing: 0; | |
| margin: 3.5rem 0 1.25rem; | |
| padding-bottom: 0.75rem; | |
| border-bottom: 1px solid var(--rule); | |
| scroll-margin-top: 5rem; | |
| } | |
| .article h3 { font-size: 1.35rem; font-weight: 500; margin: 2.25rem 0 0.5rem; } | |
| .article p, .article ul, .article ol { margin: 0 0 1.4rem; } | |
| .article ul, .article ol { padding-left: 1.4rem; } | |
| .article li { margin-bottom: 0.5rem; padding-left: 0.2rem; } | |
| .article li::marker { color: var(--accent-deep); } | |
| .article a { color: var(--link); text-decoration: none; } | |
| .article a:hover { text-decoration: underline; text-underline-offset: 3px; } | |
| .article blockquote { | |
| margin: 2.5rem 0; | |
| padding: 0.25rem 0 0.25rem 1.5rem; | |
| border-left: 6px solid var(--accent); | |
| font-family: var(--display); | |
| font-size: 1.6rem; | |
| line-height: 1.35; | |
| } | |
| code, pre, .table td.num { font-family: var(--mono); font-size: 0.88em; } | |
| code { background: var(--accent-soft); padding: 0.1em 0.38em; border-radius: 6px; } | |
| pre { | |
| background: var(--code-bg); | |
| color: var(--code-ink); | |
| border-radius: var(--radius); | |
| padding: 1.25rem 1.5rem; | |
| overflow-x: auto; | |
| line-height: 1.6; | |
| margin: 1.75rem 0; | |
| } | |
| pre code { background: none; padding: 0; } | |
| .table { | |
| width: 100%; | |
| border-collapse: separate; | |
| border-spacing: 0; | |
| margin: 2rem 0; | |
| font-size: 1rem; | |
| border: 1px solid var(--rule); | |
| border-radius: var(--radius); | |
| overflow: hidden; | |
| } | |
| .table th, .table td { text-align: left; padding: 0.8rem 1.1rem; border-bottom: 1px solid var(--rule); } | |
| .table tr:last-child td { border-bottom: 0; } | |
| .table th { font-family: var(--display); font-weight: 500; background: var(--accent-soft); } | |
| .table td.num { text-align: right; font-variant-numeric: tabular-nums; } | |
| .figure { margin: 2.5rem 0; } | |
| .article img { border-radius: var(--radius); display: block; } | |
| .figure figcaption { color: var(--muted); font-size: 0.9rem; line-height: 1.5; margin-top: 0.75rem; } | |
| .center { text-align: center; margin: 1.5rem 0; } | |
| .stat { text-align: center; margin: 2.5rem 0; padding: 2.25rem 1.5rem; border-radius: var(--radius); background: var(--accent-soft); } | |
| .article .stat h2, .article .stat h3 { | |
| margin: 0 0 0.35rem; | |
| padding: 0; | |
| border: 0; | |
| font-weight: 500; | |
| font-size: clamp(1.8rem, 5vw, 2.75rem); | |
| } | |
| .article hr { border: 0; border-top: 1px solid var(--rule); margin: 3rem 0; } | |
| .article-foot { margin-top: 4rem; padding-top: 1.5rem; border-top: 1px solid var(--rule); color: var(--muted); font-size: 0.95rem; } | |
| .article-foot p { margin: 0; } | |
| .article-foot p + p { margin-top: 0.75rem; } | |
| .article .back { color: var(--ink); font-family: var(--display); font-weight: 500; } | |
| .article .back:hover { text-decoration: underline; text-decoration-color: var(--accent); text-decoration-thickness: 2px; } | |
| /* ---------- listen to article ---------- */ | |
| .listen { margin: 0 0 2.5rem; } | |
| .listen-bar { | |
| position: relative; | |
| display: flex; | |
| align-items: center; | |
| gap: 0.9rem; | |
| min-height: 3.75rem; | |
| padding: 0.4rem 0.6rem 0.4rem 0.5rem; | |
| border-radius: 999px; | |
| background: var(--surface); | |
| overflow: hidden; | |
| font-family: var(--display); | |
| } | |
| .listen-play { | |
| flex: none; | |
| display: grid; | |
| place-items: center; | |
| width: 2.9rem; | |
| height: 2.9rem; | |
| border: 0; | |
| border-radius: 50%; | |
| background: var(--accent); | |
| color: var(--accent-ink); | |
| cursor: pointer; | |
| } | |
| .listen-play:hover { background: var(--accent-hover); } | |
| .listen-title { font-weight: 500; font-size: 1.05rem; } | |
| .listen-status { margin-left: auto; color: var(--muted); font-size: 0.9rem; white-space: nowrap; } | |
| .listen-info { | |
| flex: none; | |
| display: grid; | |
| place-items: center; | |
| width: 2.5rem; | |
| height: 2.5rem; | |
| border: 0; | |
| border-radius: 50%; | |
| background: none; | |
| color: var(--ink); | |
| cursor: pointer; | |
| } | |
| .listen-info:hover { background: var(--surface-2); } | |
| .listen-progress { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: transparent; } | |
| .listen-progress i { display: block; height: 100%; width: 0; background: var(--accent); transition: width 0.4s; } | |
| .listen-opts { | |
| display: flex; | |
| flex-wrap: wrap; | |
| align-items: center; | |
| gap: 0.75rem 1.25rem; | |
| margin-top: 0.75rem; | |
| padding: 1rem 1.25rem; | |
| border-radius: var(--radius); | |
| background: var(--surface); | |
| font-family: var(--display); | |
| font-size: 0.95rem; | |
| } | |
| .listen-opts[hidden] { display: none; } | |
| .listen-opts label { display: inline-flex; align-items: center; gap: 0.5rem; font-weight: 500; } | |
| .listen-opts select { | |
| font: inherit; | |
| color: var(--ink); | |
| background: var(--bg); | |
| border: 1px solid var(--rule); | |
| border-radius: 999px; | |
| padding: 0.35rem 0.8rem; | |
| } | |
| .listen-opts p { flex-basis: 100%; margin: 0; color: var(--muted); font-family: var(--text); font-size: 0.85rem; line-height: 1.5; } | |
| .speaking { | |
| background: var(--accent-soft); | |
| box-shadow: 0 0 0 0.45rem var(--accent-soft); | |
| border-radius: 0.3rem; | |
| transition: background 0.2s; | |
| } | |
| @media (max-width: 40rem) { | |
| .listen-title { font-size: 0.98rem; } | |
| .listen-status { display: none; } | |
| .listen-info { margin-left: auto; } | |
| } | |
| /* ---------- live hero (canvas over the cover image) ---------- */ | |
| .hero-live { | |
| position: relative; | |
| aspect-ratio: 1200 / 630; | |
| overflow: hidden; | |
| line-height: 0; | |
| background: #030a2a; | |
| user-select: none; | |
| -webkit-user-select: none; | |
| touch-action: pan-y; | |
| cursor: grab; | |
| } | |
| .hero-live img, | |
| .hero-live canvas { | |
| position: absolute; | |
| inset: 0; | |
| width: 100%; | |
| height: 100%; | |
| display: block; | |
| object-fit: cover; | |
| pointer-events: none; | |
| -webkit-user-drag: none; | |
| } | |
| /* ---------- empty state (no posts yet) ---------- */ | |
| .empty { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: flex-start; | |
| gap: 0.25rem; | |
| padding: 2.5rem 2rem; | |
| border-radius: var(--radius); | |
| background: linear-gradient(160deg, var(--band-1), var(--band-2)); | |
| } | |
| .empty-mark { width: 3.5rem; height: 3.5rem; color: var(--accent); margin: -0.6rem 0 0.5rem -0.8rem; } | |
| .empty-title { margin: 0; font-family: var(--display); font-size: clamp(1.7rem, 3vw, 2.4rem); line-height: 1.15; } | |
| .empty p { margin: 0; color: var(--muted); } | |
| .empty .empty-title { color: var(--ink); } | |
| .empty a { color: var(--link); } | |
| /* ---------- footer ---------- */ | |
| .site-footer { background: var(--surface); border-top: 1px solid var(--rule); } | |
| .site-footer .inner { | |
| max-width: var(--wide); | |
| margin: 0 auto; | |
| padding: 3rem 1.5rem; | |
| font-size: 0.95rem; | |
| line-height: 1.6; | |
| color: var(--muted); | |
| } | |
| .site-footer p { margin: 0 0 1rem; max-width: 42rem; } | |
| .foot-brand { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.6rem; | |
| font-family: var(--display); | |
| font-size: 1.2rem; | |
| font-weight: 500; | |
| color: var(--ink); | |
| } | |
| .foot-brand .mark { width: 1.6rem; height: 1.6rem; } | |
| .foot-links { display: flex; gap: 1.5rem; margin: 0; } | |
| .foot-links a { color: var(--ink); text-decoration: none; font-weight: 500; } | |
| .foot-links a:hover { text-decoration: underline; text-decoration-color: var(--accent); text-decoration-thickness: 2px; } | |
| /* ---------- responsive ---------- */ | |
| @media (max-width: 72rem) { | |
| .post-shell { display: block; max-width: var(--measure); padding-top: 2rem; } | |
| .toc { position: static; width: auto; justify-self: stretch; margin: 0 0 2rem; } | |
| } | |
| @media (max-width: 52rem) { | |
| .feature { grid-template-columns: minmax(0, 1fr); } | |
| .feature-img { min-height: 0; aspect-ratio: 16 / 9; } | |
| } | |
| @media (max-width: 40rem) { | |
| body { font-size: 1.0625rem; } | |
| .bar { padding: 0 1rem; } | |
| .wordmark .sub { display: none; } | |
| .shell { padding: 2rem 1rem 4rem; } | |
| .band { padding: 1.75rem 1rem 2rem; } | |
| .crumbs { margin-bottom: 2rem; } | |
| .meta { flex-direction: column; gap: 0.75rem; } | |
| .feature-text { padding: 1.5rem; } | |
| .article blockquote { font-size: 1.3rem; } | |
| } | |