Image-Text-to-Text
Transformers
Safetensors
gemma4
mergekit
Merge
roleplay
storytelling
conversational
Instructions to use Vortex5/Luminous-Mirror-26B-A4B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Vortex5/Luminous-Mirror-26B-A4B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="Vortex5/Luminous-Mirror-26B-A4B") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("Vortex5/Luminous-Mirror-26B-A4B") model = AutoModelForMultimodalLM.from_pretrained("Vortex5/Luminous-Mirror-26B-A4B", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Vortex5/Luminous-Mirror-26B-A4B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Vortex5/Luminous-Mirror-26B-A4B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Vortex5/Luminous-Mirror-26B-A4B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/Vortex5/Luminous-Mirror-26B-A4B
- SGLang
How to use Vortex5/Luminous-Mirror-26B-A4B with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "Vortex5/Luminous-Mirror-26B-A4B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Vortex5/Luminous-Mirror-26B-A4B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "Vortex5/Luminous-Mirror-26B-A4B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Vortex5/Luminous-Mirror-26B-A4B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use Vortex5/Luminous-Mirror-26B-A4B with Docker Model Runner:
docker model run hf.co/Vortex5/Luminous-Mirror-26B-A4B
| base_model: | |
| - electroglyph/gemma4-26b-fiction-bf16 | |
| - ReadyArt/For-Her-Darkside-26B-A4B-v1.4 | |
| - TeichAI/gemma-4-26B-A4B-it-Claude-Opus-Distill-v2 | |
| - google/gemma-4-26B-A4B-it | |
| library_name: transformers | |
| tags: | |
| - mergekit | |
| - merge | |
| - roleplay | |
| - storytelling | |
| license: apache-2.0 | |
| <section class="card"> | |
| <div class="background"></div> | |
| <div class="frame"></div> | |
| <div class="edge edge-left"></div> | |
| <div class="edge edge-right"></div> | |
| <header class="header"> | |
| <h1 class="title" data-text="Luminous-Mirror-26B-A4B">Luminous-Mirror-26B-A4B</h1> | |
| <div class="line"></div> | |
| </header> | |
| <figure class="media"> | |
| <span class="corner corner-tl"></span> | |
| <span class="corner corner-tr"></span> | |
| <span class="corner corner-bl"></span> | |
| <span class="corner corner-br"></span> | |
| <div class="media-inner"> | |
| <img | |
| src="https://cdn-uploads.huggingface.co/production/uploads/6669a3a617b838fda45637b8/hT9zMi2hTZGLxQmfTClPY.png" | |
| alt="Luminous-Mirror-26B-A4B artwork" | |
| > | |
| </div> | |
| </figure> | |
| <section class="panel panel-main"> | |
| <div class="panel-head"> | |
| <h2>Overview</h2> | |
| </div> | |
| <p class="copy"> | |
| <strong>Luminous-Mirror-26B-A4B</strong> was created by merging | |
| <a href="https://huggingface.co/TeichAI/gemma-4-26B-A4B-it-Claude-Opus-Distill-v2">gemma-4-26B-A4B-it-Claude-Opus-Distill-v2</a>, | |
| <a href="https://huggingface.co/ReadyArt/For-Her-Darkside-26B-A4B-v1.4">For-Her-Darkside-26B-A4B-v1.4</a>, | |
| <a href="https://huggingface.co/electroglyph/gemma4-26b-fiction-bf16">gemma4-26b-fiction-bf16</a>, | |
| and | |
| <a href="https://huggingface.co/google/gemma-4-26B-A4B-it">Gemma-4-26B-A4B-it</a> using a custom method. | |
| </p> | |
| <details class="details"> | |
| <summary><span>Merge configuration</span></summary> | |
| <pre><code>base_model: google/gemma-4-26B-A4B-it | |
| models: | |
| - model: TeichAI/gemma-4-26B-A4B-it-Claude-Opus-Distill-v2 | |
| - model: ReadyArt/For-Her-Darkside-26B-A4B-v1.4 | |
| - model: electroglyph/gemma4-26b-fiction-bf16 | |
| merge_method: arcs | |
| chat_template: auto | |
| parameters: | |
| strength: 0.92 | |
| sharp: 0.55 | |
| voice: 0.45 | |
| envelope: 1.15 | |
| tol: 1e-7 | |
| dtype: float32 | |
| out_dtype: bfloat16 | |
| tokenizer: | |
| source: union</code></pre> | |
| </details> | |
| </section> | |
| <section class="panel"> | |
| <div class="panel-head"> | |
| <h2>Intended Use</h2> | |
| </div> | |
| <div class="grid"> | |
| <article class="item"> | |
| <div class="item-copy"> | |
| <h3>Roleplay</h3> | |
| <p>Character interaction, dialogue, personas, and multi-turn scenes.</p> | |
| </div> | |
| </article> | |
| <article class="item"> | |
| <div class="item-copy"> | |
| <h3>Creative Writing</h3> | |
| <p>Drafting fiction, descriptions, dialogue, and scene variations.</p> | |
| </div> | |
| </article> | |
| <article class="item"> | |
| <div class="item-copy"> | |
| <h3>Storytelling</h3> | |
| <p>Short stories, longer narratives, plot development, and worldbuilding.</p> | |
| </div> | |
| </article> | |
| <article class="item"> | |
| <div class="item-copy"> | |
| <h3>Brainstorming</h3> | |
| <p>Generating concepts, outlines, alternatives, and writing ideas.</p> | |
| </div> | |
| </article> | |
| </div> | |
| </section> | |
| </section> | |
| <style> | |
| @import url("https://fonts.googleapis.com/css2?family=Cardo:wght@400;700&family=Cormorant+Garamond:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&family=Marcellus&display=swap"); | |
| .card { | |
| --paper: #f3f0e8; | |
| --paper-light: #fbfaf6; | |
| --paper-deep: #e5e0d4; | |
| --paper-shadow: #d2ccbe; | |
| --ink: #282b30; | |
| --ink-soft: #535861; | |
| --ink-faint: #777c84; | |
| --silver: #adb3bb; | |
| --silver-light: #e3e6e9; | |
| --silver-dark: #777e88; | |
| --blue-silver: #a8b8c8; | |
| --violet-silver: #b9b2c3; | |
| --line-color: rgba(91, 97, 106, 0.28); | |
| position: relative; | |
| isolation: isolate; | |
| container-type: inline-size; | |
| width: 100%; | |
| max-width: 1280px; | |
| margin: 48px auto; | |
| padding: clamp(38px, 5.2vw, 72px); | |
| overflow: hidden; | |
| color: var(--ink); | |
| font-family: "Cardo", Georgia, serif; | |
| border: 1px solid rgba(117, 122, 128, 0.46); | |
| border-radius: 2px; | |
| background: | |
| radial-gradient(circle at 18% 5%, rgba(255, 255, 255, 0.95), transparent 28%), | |
| radial-gradient(circle at 82% 9%, rgba(213, 220, 228, 0.30), transparent 24%), | |
| radial-gradient(circle at 9% 88%, rgba(196, 190, 177, 0.21), transparent 29%), | |
| radial-gradient(circle at 92% 82%, rgba(201, 208, 216, 0.22), transparent 30%), | |
| repeating-linear-gradient( | |
| 0deg, | |
| rgba(72, 74, 78, 0.013) 0, | |
| rgba(72, 74, 78, 0.013) 1px, | |
| transparent 1px, | |
| transparent 5px | |
| ), | |
| linear-gradient( | |
| 112deg, | |
| #eeeae0 0%, | |
| #faf8f2 21%, | |
| #f1eee6 50%, | |
| #fbfaf6 76%, | |
| #e8e4da 100% | |
| ); | |
| box-shadow: | |
| inset 0 0 0 7px rgba(255, 255, 255, 0.38), | |
| inset 0 0 52px rgba(89, 87, 80, 0.11), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.96); | |
| } | |
| .card, | |
| .card * { | |
| box-sizing: border-box; | |
| } | |
| .card::before, | |
| .card::after { | |
| content: ""; | |
| position: absolute; | |
| pointer-events: none; | |
| } | |
| .card::before { | |
| inset: 16px; | |
| z-index: 20; | |
| border: 1px solid rgba(115, 120, 127, 0.21); | |
| outline: 1px solid rgba(255, 255, 255, 0.72); | |
| outline-offset: -5px; | |
| } | |
| .card::after { | |
| top: 9px; | |
| left: 14%; | |
| right: 14%; | |
| z-index: 21; | |
| height: 1px; | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| transparent, | |
| rgba(109, 116, 126, 0.25), | |
| rgba(232, 236, 239, 0.98), | |
| rgba(116, 123, 132, 0.55), | |
| rgba(238, 241, 243, 0.96), | |
| rgba(109, 116, 126, 0.25), | |
| transparent | |
| ); | |
| } | |
| .card .background { | |
| position: absolute; | |
| inset: 0; | |
| z-index: -3; | |
| pointer-events: none; | |
| opacity: 0.88; | |
| background: | |
| repeating-radial-gradient( | |
| ellipse at 33% 24%, | |
| transparent 0 28px, | |
| rgba(75, 78, 82, 0.011) 29px, | |
| transparent 30px 56px | |
| ), | |
| linear-gradient( | |
| 91deg, | |
| transparent 0 49.7%, | |
| rgba(126, 130, 135, 0.045) 49.8%, | |
| rgba(255, 255, 255, 0.22) 50%, | |
| rgba(126, 130, 135, 0.045) 50.2%, | |
| transparent 50.3% | |
| ); | |
| } | |
| .card .background::before, | |
| .card .background::after { | |
| content: ""; | |
| position: absolute; | |
| pointer-events: none; | |
| } | |
| .card .background::before { | |
| top: 0; | |
| left: 0; | |
| width: 38%; | |
| height: 100%; | |
| opacity: 0.44; | |
| background: | |
| linear-gradient( | |
| 108deg, | |
| transparent, | |
| rgba(255, 255, 255, 0.42) 47%, | |
| transparent 48% | |
| ); | |
| } | |
| .card .background::after { | |
| top: 0; | |
| right: 0; | |
| width: 38%; | |
| height: 100%; | |
| opacity: 0.34; | |
| background: | |
| linear-gradient( | |
| 252deg, | |
| transparent, | |
| rgba(181, 189, 198, 0.19) 47%, | |
| transparent 48% | |
| ); | |
| } | |
| .card .frame { | |
| position: absolute; | |
| inset: 27px; | |
| z-index: 18; | |
| pointer-events: none; | |
| border-top: 1px solid rgba(113, 119, 127, 0.17); | |
| border-bottom: 1px solid rgba(113, 119, 127, 0.17); | |
| } | |
| .card .frame::before, | |
| .card .frame::after { | |
| content: ""; | |
| position: absolute; | |
| top: 0; | |
| bottom: 0; | |
| width: 1px; | |
| background: | |
| linear-gradient( | |
| to bottom, | |
| transparent, | |
| rgba(112, 118, 126, 0.24) 15%, | |
| rgba(230, 234, 237, 0.85) 50%, | |
| rgba(112, 118, 126, 0.24) 85%, | |
| transparent | |
| ); | |
| } | |
| .card .frame::before { | |
| left: 0; | |
| } | |
| .card .frame::after { | |
| right: 0; | |
| } | |
| .card .edge { | |
| position: absolute; | |
| z-index: 19; | |
| top: 12%; | |
| bottom: 12%; | |
| width: 2px; | |
| pointer-events: none; | |
| } | |
| .card .edge-left { | |
| left: 15px; | |
| background: | |
| linear-gradient( | |
| to bottom, | |
| transparent, | |
| rgba(118, 124, 132, 0.38), | |
| rgba(235, 238, 240, 0.84), | |
| rgba(118, 124, 132, 0.38), | |
| transparent | |
| ); | |
| } | |
| .card .edge-right { | |
| right: 15px; | |
| background: | |
| linear-gradient( | |
| to bottom, | |
| transparent, | |
| rgba(126, 132, 140, 0.30), | |
| rgba(246, 247, 248, 0.92), | |
| rgba(126, 132, 140, 0.30), | |
| transparent | |
| ); | |
| } | |
| .card .header { | |
| position: relative; | |
| z-index: 3; | |
| padding: clamp(7px, 1vw, 14px) 0 clamp(39px, 4.5vw, 58px); | |
| text-align: center; | |
| } | |
| .card .header::before { | |
| content: ""; | |
| position: absolute; | |
| left: 13%; | |
| right: 13%; | |
| top: -39px; | |
| bottom: 3px; | |
| z-index: -1; | |
| pointer-events: none; | |
| background: | |
| radial-gradient( | |
| ellipse at center, | |
| rgba(255, 255, 255, 0.90), | |
| rgba(210, 217, 224, 0.18) 39%, | |
| transparent 67% | |
| ); | |
| } | |
| .card .title { | |
| position: relative; | |
| display: inline-block; | |
| max-width: 100%; | |
| margin: 0 auto; | |
| padding: 0.12em 0.18em 0.18em; | |
| white-space: nowrap; | |
| color: #39434e; | |
| -webkit-text-fill-color: #39434e; | |
| font-family: "Marcellus", "Cormorant Garamond", Georgia, serif; | |
| font-size: clamp(1.16rem, 5.45vw, 4.72rem); | |
| font-size: clamp(1.16rem, 5.72cqi, 4.72rem); | |
| font-weight: 400; | |
| line-height: 1.04; | |
| letter-spacing: 0.006em; | |
| text-align: center; | |
| text-rendering: optimizeLegibility; | |
| text-shadow: | |
| 0 1px 0 rgba(255, 255, 255, 0.96), | |
| 0 3px 9px rgba(65, 70, 77, 0.12); | |
| } | |
| .card .title::before, | |
| .card .title::after { | |
| content: ""; | |
| position: absolute; | |
| top: 50%; | |
| width: clamp(18px, 3.5vw, 54px); | |
| height: 1px; | |
| pointer-events: none; | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| transparent, | |
| rgba(91, 101, 111, 0.44) | |
| ); | |
| } | |
| .card .title::before { | |
| right: calc(100% + clamp(10px, 1.7vw, 23px)); | |
| } | |
| .card .title::after { | |
| left: calc(100% + clamp(10px, 1.7vw, 23px)); | |
| transform: rotate(180deg); | |
| } | |
| .card .line { | |
| position: relative; | |
| width: min(800px, 84%); | |
| height: 12px; | |
| margin: 28px auto 0; | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| transparent 0%, | |
| rgba(112, 120, 129, 0.16) 7%, | |
| rgba(99, 108, 118, 0.52) 27%, | |
| rgba(223, 227, 230, 0.90) 43%, | |
| transparent 48%, | |
| transparent 52%, | |
| rgba(223, 227, 230, 0.90) 57%, | |
| rgba(99, 108, 118, 0.52) 73%, | |
| rgba(112, 120, 129, 0.16) 93%, | |
| transparent 100% | |
| ) center 3px / 100% 1px no-repeat, | |
| linear-gradient( | |
| 90deg, | |
| transparent 0%, | |
| rgba(255, 255, 255, 0.18) 12%, | |
| rgba(255, 255, 255, 0.96) 34%, | |
| transparent 46%, | |
| transparent 54%, | |
| rgba(255, 255, 255, 0.96) 66%, | |
| rgba(255, 255, 255, 0.18) 88%, | |
| transparent 100% | |
| ) center 7px / 91% 1px no-repeat; | |
| } | |
| .card .line::before { | |
| content: ""; | |
| position: absolute; | |
| top: 1px; | |
| left: 50%; | |
| width: 92px; | |
| height: 8px; | |
| border-top: 1px solid rgba(88, 98, 108, 0.44); | |
| border-bottom: 1px solid rgba(139, 147, 155, 0.24); | |
| border-radius: 50%; | |
| transform: translateX(-50%); | |
| } | |
| .card .line::after { | |
| content: none; | |
| } | |
| .card .media { | |
| position: relative; | |
| z-index: 3; | |
| width: 100%; | |
| margin: 0 auto 39px; | |
| padding: clamp(13px, 1.8vw, 21px); | |
| overflow: hidden; | |
| border: 1px solid rgba(104, 110, 118, 0.37); | |
| border-radius: 2px; | |
| background: | |
| linear-gradient(135deg, rgba(255, 255, 255, 0.91), transparent 34%), | |
| linear-gradient(315deg, rgba(181, 188, 196, 0.15), transparent 37%), | |
| linear-gradient(180deg, #efede6, #dcd8cf); | |
| box-shadow: | |
| inset 0 0 0 5px rgba(255, 255, 255, 0.36), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.96), | |
| 0 9px 21px rgba(74, 73, 68, 0.13); | |
| } | |
| .card .media::before { | |
| content: ""; | |
| position: absolute; | |
| inset: 7px; | |
| z-index: 5; | |
| pointer-events: none; | |
| border: 1px solid rgba(111, 117, 124, 0.18); | |
| } | |
| .card .media::after { | |
| content: ""; | |
| position: absolute; | |
| left: 15%; | |
| right: 15%; | |
| bottom: 7px; | |
| z-index: 6; | |
| height: 1px; | |
| pointer-events: none; | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| transparent, | |
| rgba(108, 114, 122, 0.27), | |
| rgba(244, 246, 247, 0.96), | |
| rgba(108, 114, 122, 0.27), | |
| transparent | |
| ); | |
| } | |
| .card .media-inner { | |
| position: relative; | |
| width: 100%; | |
| overflow: hidden; | |
| border: 1px solid rgba(88, 93, 100, 0.36); | |
| background: #e8e5dd; | |
| box-shadow: | |
| inset 0 0 18px rgba(57, 58, 59, 0.16), | |
| 0 0 0 1px rgba(255, 255, 255, 0.67); | |
| } | |
| .card .media-inner::after { | |
| content: ""; | |
| position: absolute; | |
| inset: 0; | |
| pointer-events: none; | |
| box-shadow: | |
| inset 0 0 34px rgba(52, 54, 57, 0.18), | |
| inset 0 0 0 1px rgba(255, 255, 255, 0.27); | |
| } | |
| .card .media-inner img { | |
| display: block; | |
| width: 100%; | |
| max-width: 100%; | |
| height: auto; | |
| margin: 0 auto; | |
| border: 0; | |
| object-fit: contain; | |
| object-position: center; | |
| } | |
| .card .corner { | |
| position: absolute; | |
| z-index: 8; | |
| width: 47px; | |
| height: 47px; | |
| pointer-events: none; | |
| } | |
| .card .corner-tl { | |
| top: 0; | |
| left: 0; | |
| border-top: 3px double rgba(99, 105, 112, 0.67); | |
| border-left: 3px double rgba(99, 105, 112, 0.67); | |
| } | |
| .card .corner-tr { | |
| top: 0; | |
| right: 0; | |
| border-top: 3px double rgba(136, 142, 149, 0.67); | |
| border-right: 3px double rgba(136, 142, 149, 0.67); | |
| } | |
| .card .corner-bl { | |
| bottom: 0; | |
| left: 0; | |
| border-bottom: 3px double rgba(132, 137, 143, 0.60); | |
| border-left: 3px double rgba(132, 137, 143, 0.60); | |
| } | |
| .card .corner-br { | |
| right: 0; | |
| bottom: 0; | |
| border-right: 3px double rgba(93, 100, 108, 0.63); | |
| border-bottom: 3px double rgba(93, 100, 108, 0.63); | |
| } | |
| .card .panel { | |
| position: relative; | |
| z-index: 3; | |
| margin-bottom: 33px; | |
| padding: clamp(31px, 4.3vw, 50px); | |
| overflow: hidden; | |
| border: 1px solid rgba(112, 117, 123, 0.34); | |
| border-radius: 2px; | |
| background: | |
| radial-gradient(circle at 8% 4%, rgba(255, 255, 255, 0.88), transparent 26%), | |
| radial-gradient(circle at 95% 95%, rgba(188, 194, 201, 0.12), transparent 31%), | |
| repeating-linear-gradient( | |
| 0deg, | |
| rgba(64, 66, 70, 0.011) 0, | |
| rgba(64, 66, 70, 0.011) 1px, | |
| transparent 1px, | |
| transparent 6px | |
| ), | |
| linear-gradient( | |
| 132deg, | |
| #f7f5ef, | |
| #eae6dc 100% | |
| ); | |
| box-shadow: | |
| inset 0 0 0 4px rgba(255, 255, 255, 0.34), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.96), | |
| 0 7px 17px rgba(79, 77, 70, 0.10); | |
| } | |
| .card .panel::before, | |
| .card .panel::after { | |
| content: ""; | |
| position: absolute; | |
| pointer-events: none; | |
| } | |
| .card .panel::before { | |
| top: 8px; | |
| left: 8%; | |
| right: 8%; | |
| height: 1px; | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| transparent, | |
| rgba(105, 111, 119, 0.24), | |
| rgba(250, 251, 251, 0.96), | |
| rgba(105, 111, 119, 0.24), | |
| transparent | |
| ); | |
| } | |
| .card .panel::after { | |
| bottom: 8px; | |
| left: 22%; | |
| right: 22%; | |
| height: 1px; | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| transparent, | |
| rgba(125, 131, 138, 0.22), | |
| rgba(244, 245, 246, 0.89), | |
| rgba(125, 131, 138, 0.22), | |
| transparent | |
| ); | |
| } | |
| .card .panel-main { | |
| border-color: rgba(100, 106, 113, 0.42); | |
| background: | |
| radial-gradient(circle at 10% 0%, rgba(255, 255, 255, 0.96), transparent 28%), | |
| radial-gradient(circle at 94% 100%, rgba(178, 186, 195, 0.13), transparent 29%), | |
| linear-gradient( | |
| 140deg, | |
| #faf9f4, | |
| #e9e5db 100% | |
| ); | |
| } | |
| .card .panel-head { | |
| position: relative; | |
| display: flex; | |
| align-items: center; | |
| margin-bottom: 26px; | |
| padding: 0 0 16px; | |
| border-bottom: 1px solid rgba(106, 112, 119, 0.23); | |
| } | |
| .card .panel-head::before { | |
| content: ""; | |
| flex: 0 0 25px; | |
| height: 13px; | |
| margin-right: 15px; | |
| border-top: 1px solid rgba(103, 109, 116, 0.57); | |
| border-bottom: 1px solid rgba(103, 109, 116, 0.25); | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| transparent, | |
| rgba(255, 255, 255, 0.94), | |
| rgba(127, 133, 140, 0.42), | |
| transparent | |
| ); | |
| } | |
| .card .panel-head::after { | |
| content: ""; | |
| flex: 1; | |
| height: 1px; | |
| margin-left: 20px; | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| rgba(104, 110, 117, 0.40), | |
| rgba(221, 224, 226, 0.85), | |
| transparent | |
| ); | |
| } | |
| .card .panel h2 { | |
| margin: 0; | |
| color: #3c4147; | |
| font-family: "Cormorant Garamond", Georgia, serif; | |
| font-size: clamp(1.58rem, 2.85vw, 2.35rem); | |
| font-weight: 600; | |
| line-height: 1.08; | |
| letter-spacing: 0.015em; | |
| text-shadow: 0 1px 0 rgba(255, 255, 255, 0.92); | |
| } | |
| .card .panel:not(.panel-main) .panel-head { | |
| justify-content: center; | |
| text-align: center; | |
| } | |
| .card .panel:not(.panel-main) .panel-head::before, | |
| .card .panel:not(.panel-main) .panel-head::after { | |
| flex: 1 1 0; | |
| width: auto; | |
| height: 1px; | |
| margin: 0; | |
| border: 0; | |
| } | |
| .card .panel:not(.panel-main) .panel-head::before { | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| transparent, | |
| rgba(113, 120, 128, 0.18) 22%, | |
| rgba(91, 100, 110, 0.48) 72%, | |
| rgba(232, 235, 237, 0.92) | |
| ); | |
| } | |
| .card .panel:not(.panel-main) .panel-head::after { | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| rgba(232, 235, 237, 0.92), | |
| rgba(91, 100, 110, 0.48) 28%, | |
| rgba(113, 120, 128, 0.18) 78%, | |
| transparent | |
| ); | |
| } | |
| .card .panel:not(.panel-main) .panel-head h2 { | |
| flex: 0 0 auto; | |
| min-width: 0; | |
| max-width: 100%; | |
| margin: 0 clamp(14px, 2vw, 24px); | |
| font-size: clamp(1.28rem, 2.28vw, 1.92rem); | |
| line-height: 1.08; | |
| letter-spacing: 0.01em; | |
| white-space: nowrap; | |
| text-align: center; | |
| } | |
| .card .copy { | |
| max-width: 1080px; | |
| margin: 0 0 29px; | |
| color: #4f5359; | |
| font-size: clamp(1rem, 1.34vw, 1.10rem); | |
| line-height: 1.84; | |
| letter-spacing: 0.002em; | |
| } | |
| .card .copy strong { | |
| color: #30343a; | |
| font-weight: 700; | |
| } | |
| .card .copy a { | |
| color: #56697a; | |
| font-weight: 700; | |
| text-decoration: none; | |
| border-bottom: 1px solid rgba(86, 105, 122, 0.32); | |
| transition: | |
| color 0.18s ease, | |
| border-color 0.18s ease; | |
| } | |
| .card .copy a:hover { | |
| color: #303f4d; | |
| border-bottom-color: rgba(48, 63, 77, 0.74); | |
| } | |
| .card .details { | |
| position: relative; | |
| width: 100%; | |
| overflow: hidden; | |
| border: 1px solid rgba(105, 111, 118, 0.33); | |
| border-radius: 1px; | |
| background: | |
| repeating-linear-gradient( | |
| 0deg, | |
| rgba(72, 74, 76, 0.012) 0, | |
| rgba(72, 74, 76, 0.012) 1px, | |
| transparent 1px, | |
| transparent 5px | |
| ), | |
| linear-gradient( | |
| 135deg, | |
| #eeeae1, | |
| #faf8f3 | |
| ); | |
| box-shadow: | |
| inset 0 0 0 4px rgba(255, 255, 255, 0.34), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.92); | |
| } | |
| .card .details::before { | |
| content: ""; | |
| position: absolute; | |
| top: 13px; | |
| bottom: 13px; | |
| left: 8px; | |
| width: 1px; | |
| background: | |
| linear-gradient( | |
| to bottom, | |
| transparent, | |
| rgba(96, 102, 110, 0.50), | |
| rgba(229, 232, 234, 0.90), | |
| rgba(96, 102, 110, 0.50), | |
| transparent | |
| ); | |
| } | |
| .card .details summary { | |
| position: relative; | |
| display: flex; | |
| align-items: center; | |
| min-height: 63px; | |
| padding: 17px 66px 17px 24px; | |
| cursor: pointer; | |
| list-style: none; | |
| color: #474c52; | |
| font-family: "IBM Plex Mono", monospace; | |
| font-size: 0.82rem; | |
| font-weight: 500; | |
| letter-spacing: 0.045em; | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| rgba(185, 190, 196, 0.11), | |
| rgba(255, 255, 255, 0.25), | |
| transparent 72% | |
| ); | |
| } | |
| .card .details summary::-webkit-details-marker { | |
| display: none; | |
| } | |
| .card .details summary::after { | |
| content: ""; | |
| position: absolute; | |
| right: 25px; | |
| width: 10px; | |
| height: 10px; | |
| border-right: 2px solid rgba(81, 88, 96, 0.67); | |
| border-bottom: 2px solid rgba(81, 88, 96, 0.67); | |
| transform: rotate(45deg) translateY(-3px); | |
| transition: transform 0.18s ease; | |
| } | |
| .card .details[open] summary::after { | |
| transform: rotate(225deg) translate(-3px, -3px); | |
| } | |
| .card .details summary:hover { | |
| color: #262b30; | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| rgba(184, 190, 197, 0.17), | |
| rgba(255, 255, 255, 0.36), | |
| transparent 72% | |
| ); | |
| } | |
| .card .details pre { | |
| margin: 0; | |
| padding: clamp(23px, 3vw, 33px); | |
| overflow-x: auto; | |
| color: #4c5259; | |
| font-family: "IBM Plex Mono", monospace; | |
| font-size: clamp(0.77rem, 1.10vw, 0.89rem); | |
| line-height: 1.74; | |
| white-space: pre; | |
| border-top: 1px solid rgba(108, 114, 121, 0.20); | |
| background: | |
| linear-gradient( | |
| 135deg, | |
| rgba(255, 255, 255, 0.48), | |
| rgba(216, 212, 202, 0.16) | |
| ); | |
| } | |
| .card .details code { | |
| color: #454b52; | |
| font-family: inherit; | |
| } | |
| .card .grid { | |
| position: relative; | |
| display: grid; | |
| grid-template-columns: repeat(2, minmax(0, 1fr)); | |
| grid-template-rows: repeat(2, minmax(188px, 1fr)); | |
| width: 100%; | |
| gap: 14px; | |
| padding: 10px; | |
| overflow: hidden; | |
| border: 1px solid rgba(101, 108, 116, 0.24); | |
| border-radius: 2px; | |
| background: | |
| radial-gradient(circle at center, rgba(255, 255, 255, 0.76), transparent 40%), | |
| linear-gradient(135deg, #e9e6de 0%, #f8f6f0 50%, #e9e5dc 100%); | |
| box-shadow: | |
| inset 0 0 0 3px rgba(255, 255, 255, 0.31), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.95); | |
| } | |
| .card .grid::before { | |
| content: ""; | |
| position: absolute; | |
| top: 20px; | |
| bottom: 20px; | |
| left: 50%; | |
| width: 1px; | |
| pointer-events: none; | |
| background: | |
| linear-gradient( | |
| to bottom, | |
| transparent, | |
| rgba(100, 108, 117, 0.16) 12%, | |
| rgba(255, 255, 255, 0.93) 50%, | |
| rgba(100, 108, 117, 0.16) 88%, | |
| transparent | |
| ); | |
| transform: translateX(-50%); | |
| } | |
| .card .grid::after { | |
| content: ""; | |
| position: absolute; | |
| top: 50%; | |
| left: 20px; | |
| right: 20px; | |
| height: 1px; | |
| pointer-events: none; | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| transparent, | |
| rgba(100, 108, 117, 0.16) 12%, | |
| rgba(255, 255, 255, 0.93) 50%, | |
| rgba(100, 108, 117, 0.16) 88%, | |
| transparent | |
| ); | |
| transform: translateY(-50%); | |
| } | |
| .card .item { | |
| position: relative; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 100%; | |
| min-width: 0; | |
| min-height: 188px; | |
| overflow: hidden; | |
| border: 1px solid rgba(101, 108, 116, 0.25); | |
| border-radius: 1px; | |
| background: | |
| radial-gradient(circle at 50% 18%, rgba(255, 255, 255, 0.82), transparent 45%), | |
| linear-gradient(180deg, #f8f6f0 0%, #ece8df 100%); | |
| box-shadow: | |
| inset 0 0 0 3px rgba(255, 255, 255, 0.24), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.94); | |
| transition: | |
| border-color 0.18s ease, | |
| background 0.18s ease; | |
| } | |
| .card .item::before, | |
| .card .item::after { | |
| content: ""; | |
| position: absolute; | |
| left: 16%; | |
| right: 16%; | |
| height: 1px; | |
| pointer-events: none; | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| transparent, | |
| rgba(103, 111, 120, 0.22) 24%, | |
| rgba(255, 255, 255, 0.90) 50%, | |
| rgba(103, 111, 120, 0.22) 76%, | |
| transparent | |
| ); | |
| } | |
| .card .item::before { | |
| top: 12px; | |
| } | |
| .card .item::after { | |
| bottom: 12px; | |
| } | |
| .card .item:nth-child(2), | |
| .card .item:nth-child(3), | |
| .card .item:nth-child(4) { | |
| background: | |
| radial-gradient(circle at 50% 18%, rgba(255, 255, 255, 0.82), transparent 45%), | |
| linear-gradient(180deg, #f8f6f0 0%, #ece8df 100%); | |
| } | |
| .card .item:hover { | |
| border-color: rgba(81, 91, 102, 0.42); | |
| background-color: #fbfaf6; | |
| } | |
| .card .item-copy { | |
| position: relative; | |
| z-index: 2; | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| width: 100%; | |
| min-width: 0; | |
| height: 100%; | |
| padding: clamp(25px, 2.6vw, 34px) clamp(24px, 3.15vw, 40px); | |
| text-align: center; | |
| } | |
| .card .item h3 { | |
| margin: 0 0 12px; | |
| max-width: 100%; | |
| color: #3c444c; | |
| font-family: "Cormorant Garamond", Georgia, serif; | |
| font-size: clamp(0.92rem, 1.08vw, 1.08rem); | |
| font-weight: 600; | |
| line-height: 1.12; | |
| letter-spacing: 0.002em; | |
| white-space: nowrap; | |
| overflow-wrap: normal; | |
| word-break: normal; | |
| text-align: center; | |
| text-shadow: 0 1px 0 rgba(255, 255, 255, 0.96); | |
| } | |
| .card .item h3::after { | |
| content: ""; | |
| display: block; | |
| width: 44px; | |
| height: 1px; | |
| margin: 9px auto 0; | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| transparent, | |
| rgba(82, 91, 101, 0.44), | |
| rgba(221, 224, 227, 0.80), | |
| rgba(82, 91, 101, 0.44), | |
| transparent | |
| ); | |
| } | |
| .card .item:nth-child(2) h3, | |
| .card .item:nth-child(3) h3, | |
| .card .item:nth-child(4) h3 { | |
| color: #3c444c; | |
| } | |
| .card .item p { | |
| margin: 0 auto; | |
| min-width: 0; | |
| max-width: 94%; | |
| color: #565c62; | |
| font-size: clamp(0.92rem, 1vw, 1rem); | |
| line-height: 1.58; | |
| letter-spacing: 0.001em; | |
| white-space: normal; | |
| overflow-wrap: break-word; | |
| word-break: normal; | |
| text-align: center; | |
| } | |
| @media (max-width: 760px) { | |
| .card .title { | |
| font-size: clamp(0.96rem, 5.25vw, 2.58rem); | |
| letter-spacing: 0.002em; | |
| } | |
| .card .panel:not(.panel-main) .panel-head h2 { | |
| margin-inline: 14px; | |
| font-size: clamp(1.16rem, 3.7vw, 1.48rem); | |
| } | |
| .card .grid { | |
| grid-template-rows: repeat(2, minmax(172px, 1fr)); | |
| gap: 11px; | |
| padding: 8px; | |
| } | |
| .card .item { | |
| min-height: 172px; | |
| } | |
| .card .item-copy { | |
| padding: 23px 20px; | |
| } | |
| .card .item h3 { | |
| font-size: clamp(0.84rem, 2.1vw, 0.98rem); | |
| } | |
| .card .item p { | |
| max-width: 96%; | |
| font-size: clamp(0.84rem, 1.9vw, 0.94rem); | |
| line-height: 1.54; | |
| } | |
| } | |
| @media (max-width: 620px) { | |
| .card { | |
| margin: 18px auto; | |
| padding: 26px 14px 31px; | |
| } | |
| .card .header { | |
| padding: 5px 0 33px; | |
| } | |
| .card .title { | |
| font-size: clamp(0.76rem, 4.95vw, 1.48rem); | |
| padding-inline: 0.08em; | |
| } | |
| .card .title::before, | |
| .card .title::after { | |
| width: 14px; | |
| } | |
| .card .title::before { | |
| right: calc(100% + 7px); | |
| } | |
| .card .title::after { | |
| left: calc(100% + 7px); | |
| } | |
| .card .line { | |
| width: 88%; | |
| margin-top: 18px; | |
| } | |
| .card .media { | |
| padding: 8px; | |
| margin-bottom: 24px; | |
| } | |
| .card .corner { | |
| width: 30px; | |
| height: 30px; | |
| } | |
| .card .panel { | |
| padding: 25px 17px; | |
| margin-bottom: 23px; | |
| } | |
| .card .panel-head::before { | |
| flex-basis: 17px; | |
| margin-right: 10px; | |
| } | |
| .card .panel h2 { | |
| font-size: 1.53rem; | |
| } | |
| .card .panel:not(.panel-main) .panel-head h2 { | |
| margin-inline: 10px; | |
| font-size: 1.08rem; | |
| letter-spacing: 0; | |
| } | |
| .card .panel:not(.panel-main) .panel-head::before, | |
| .card .panel:not(.panel-main) .panel-head::after { | |
| min-width: 12px; | |
| } | |
| .card .grid { | |
| grid-template-columns: repeat(2, minmax(0, 1fr)); | |
| grid-template-rows: repeat(2, minmax(154px, 1fr)); | |
| gap: 8px; | |
| padding: 6px; | |
| } | |
| .card .grid::before { | |
| top: 14px; | |
| bottom: 14px; | |
| } | |
| .card .grid::after { | |
| left: 14px; | |
| right: 14px; | |
| } | |
| .card .item { | |
| min-height: 154px; | |
| } | |
| .card .item-copy { | |
| padding: 21px 12px; | |
| } | |
| .card .item::before, | |
| .card .item::after { | |
| left: 12%; | |
| right: 12%; | |
| } | |
| .card .item h3 { | |
| font-size: clamp(0.72rem, 2.55vw, 0.90rem); | |
| letter-spacing: -0.006em; | |
| } | |
| .card .item p { | |
| max-width: 98%; | |
| font-size: clamp(0.76rem, 2.2vw, 0.88rem); | |
| line-height: 1.48; | |
| } | |
| } | |
| @media (max-width: 470px) { | |
| .card .grid { | |
| grid-template-columns: 1fr; | |
| grid-template-rows: none; | |
| gap: 9px; | |
| } | |
| .card .grid::before, | |
| .card .grid::after { | |
| display: none; | |
| } | |
| .card .item { | |
| min-height: 132px; | |
| } | |
| .card .item-copy { | |
| padding: 22px 18px; | |
| } | |
| .card .item h3 { | |
| font-size: 0.96rem; | |
| } | |
| .card .item p { | |
| max-width: 96%; | |
| font-size: 0.86rem; | |
| line-height: 1.5; | |
| } | |
| } | |
| </style> |