Image-Text-to-Text
Transformers
Safetensors
gemma4
mergekit
Merge
roleplay
storytelling
conversational
Instructions to use Vortex5/Shadow-Siren-26B-A4B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Vortex5/Shadow-Siren-26B-A4B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="Vortex5/Shadow-Siren-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/Shadow-Siren-26B-A4B") model = AutoModelForMultimodalLM.from_pretrained("Vortex5/Shadow-Siren-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/Shadow-Siren-26B-A4B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Vortex5/Shadow-Siren-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/Shadow-Siren-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/Shadow-Siren-26B-A4B
- SGLang
How to use Vortex5/Shadow-Siren-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/Shadow-Siren-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/Shadow-Siren-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/Shadow-Siren-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/Shadow-Siren-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/Shadow-Siren-26B-A4B with Docker Model Runner:
docker model run hf.co/Vortex5/Shadow-Siren-26B-A4B
| base_model: | |
| - google/gemma-4-26B-A4B-it | |
| - zerofata/G4-MeroMero-26B-A4B | |
| - ReadyArt/Serenity-26B-A4B | |
| - Gryphe/Pantheon-Reasoning-26B-A4B-1.1 | |
| - ReadyArt/Dark-Scarlett-v1.0-26B-A4B | |
| - Darkhn/Gemma-4-26B-A4B-Animus-V14.1-FFT | |
| 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="Shadow-Siren-26B-A4B">Shadow-Siren-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/2H1mnWbQxhVGOJ9Uocoq0.png" | |
| alt="Shadow-Siren-26B-A4B artwork" | |
| > | |
| </div> | |
| </figure> | |
| <section class="panel panel-main"> | |
| <div class="panel-head"> | |
| <h2>Overview</h2> | |
| </div> | |
| <p class="copy"> | |
| <strong>Shadow-Siren-26B-A4B</strong> was created through a multi-stage merge combining | |
| <a href="https://huggingface.co/zerofata/G4-MeroMero-26B-A4B">G4-MeroMero-26B-A4B</a>, | |
| <a href="https://huggingface.co/ReadyArt/Serenity-26B-A4B">Serenity-26B-A4B</a>, | |
| <a href="https://huggingface.co/google/gemma-4-26B-A4B-it">Gemma-4-26B-A4B-it</a>, | |
| <a href="https://huggingface.co/Gryphe/Pantheon-Reasoning-26B-A4B-1.1">Pantheon-Reasoning-26B-A4B-1.1</a>, | |
| <a href="https://huggingface.co/ReadyArt/Dark-Scarlett-v1.0-26B-A4B">Dark-Scarlett-v1.0-26B-A4B</a>, | |
| and | |
| <a href="https://huggingface.co/Darkhn/Gemma-4-26B-A4B-Animus-V14.1-FFT">Gemma-4-26B-A4B-Animus-V14.1-FFT</a>. | |
| </p> | |
| <details class="details"> | |
| <summary><span>Multi-stage merge configuration</span></summary> | |
| <pre><code>name: First | |
| models: | |
| - model: zerofata/G4-MeroMero-26B-A4B | |
| - model: ReadyArt/Serenity-26B-A4B | |
| - model: google/gemma-4-26B-A4B-it | |
| - model: Gryphe/Pantheon-Reasoning-26B-A4B-1.1 | |
| merge_method: saef | |
| parameters: | |
| paradox: 0.40 | |
| strength: 0.88 | |
| boost: 0.28 | |
| modes: 2 | |
| dtype: float32 | |
| out_dtype: bfloat16 | |
| tokenizer: | |
| source: union | |
| --- | |
| name: Second | |
| models: | |
| - model: ReadyArt/Dark-Scarlett-v1.0-26B-A4B | |
| - model: google/gemma-4-26B-A4B-it | |
| - model: Darkhn/Gemma-4-26B-A4B-Animus-V14.1-FFT | |
| merge_method: karcher | |
| chat_template: auto | |
| dtype: float32 | |
| out_dtype: bfloat16 | |
| parameters: | |
| tol: 1e-9 | |
| max_iter: 250 | |
| tokenizer: | |
| source: union | |
| --- | |
| base_model: google/gemma-4-26B-A4B-it | |
| models: | |
| - model: First | |
| - model: Second | |
| merge_method: hcr | |
| chat_template: auto | |
| parameters: | |
| strength: 0.6 | |
| retention: 0.6 | |
| novelty: 0.36 | |
| stability: 0.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=Cinzel+Decorative:wght@700;900&family=Manrope:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap"); | |
| .card { | |
| --base: #05030a; | |
| --deep: #0b0712; | |
| --surface: #120b1c; | |
| --surface-2: #191026; | |
| --text: #f3edf8; | |
| --muted: #b9adbf; | |
| --silver: #d8d2e2; | |
| --violet: #a66cff; | |
| --violet-2: #6030aa; | |
| --crimson: #e44b78; | |
| --cyan: #55d8dc; | |
| --amber: #d7a85e; | |
| --border: rgba(197, 166, 230, 0.30); | |
| position: relative; | |
| isolation: isolate; | |
| container-type: inline-size; | |
| width: 100%; | |
| max-width: 1280px; | |
| margin: 48px auto; | |
| padding: clamp(34px, 5vw, 68px); | |
| overflow: hidden; | |
| color: var(--text); | |
| font-family: "Manrope", "Segoe UI", sans-serif; | |
| border: 1px solid rgba(209, 182, 237, 0.34); | |
| border-radius: 4px; | |
| background: | |
| radial-gradient(circle at 50% -8%, rgba(166, 108, 255, 0.23), transparent 31%), | |
| radial-gradient(circle at 7% 27%, rgba(228, 75, 120, 0.13), transparent 27%), | |
| radial-gradient(circle at 94% 66%, rgba(85, 216, 220, 0.10), transparent 30%), | |
| radial-gradient(circle at 42% 93%, rgba(96, 48, 170, 0.13), transparent 32%), | |
| linear-gradient(135deg, rgba(215, 168, 94, 0.035), transparent 30%), | |
| linear-gradient(180deg, #100919 0%, #05030a 48%, #0c0712 100%); | |
| box-shadow: | |
| inset 0 1px 0 rgba(255, 255, 255, 0.09), | |
| inset 0 -1px 0 rgba(99, 48, 141, 0.42), | |
| inset 0 0 90px rgba(0, 0, 0, 0.68); | |
| } | |
| .card, | |
| .card * { | |
| box-sizing: border-box; | |
| } | |
| .card::before, | |
| .card::after { | |
| content: ""; | |
| position: absolute; | |
| pointer-events: none; | |
| } | |
| .card::before { | |
| inset: 11px; | |
| z-index: 20; | |
| border: 1px solid rgba(224, 204, 242, 0.08); | |
| clip-path: polygon(0 0, 48px 0, 56px 8px, calc(100% - 56px) 8px, calc(100% - 48px) 0, 100% 0, 100% 100%, calc(100% - 48px) 100%, calc(100% - 56px) calc(100% - 8px), 56px calc(100% - 8px), 48px 100%, 0 100%); | |
| } | |
| .card::after { | |
| top: 0; | |
| left: 8%; | |
| right: 8%; | |
| z-index: 21; | |
| height: 3px; | |
| background: linear-gradient( | |
| 90deg, | |
| transparent, | |
| rgba(228, 75, 120, 0.42), | |
| rgba(166, 108, 255, 0.88), | |
| rgba(224, 212, 239, 0.92), | |
| rgba(85, 216, 220, 0.72), | |
| transparent | |
| ); | |
| } | |
| .card .background { | |
| position: absolute; | |
| inset: 0; | |
| z-index: -3; | |
| pointer-events: none; | |
| opacity: 0.90; | |
| background: | |
| repeating-linear-gradient(118deg, transparent 0 54px, rgba(196, 166, 224, 0.018) 55px 56px, transparent 57px 112px), | |
| repeating-linear-gradient(62deg, transparent 0 76px, rgba(85, 216, 220, 0.014) 77px 78px, transparent 79px 148px), | |
| radial-gradient(ellipse at 50% 16%, rgba(132, 72, 202, 0.15), transparent 26%); | |
| } | |
| .card .background::before, | |
| .card .background::after { | |
| content: ""; | |
| position: absolute; | |
| width: 46%; | |
| height: 44%; | |
| filter: blur(4px); | |
| opacity: 0.46; | |
| } | |
| .card .background::before { | |
| top: 10%; | |
| left: -17%; | |
| transform: rotate(28deg); | |
| background: radial-gradient(ellipse, rgba(213, 53, 105, 0.19), transparent 68%); | |
| } | |
| .card .background::after { | |
| right: -17%; | |
| bottom: 12%; | |
| transform: rotate(-24deg); | |
| background: radial-gradient(ellipse, rgba(62, 190, 202, 0.16), transparent 68%); | |
| } | |
| .card .frame { | |
| position: absolute; | |
| inset: 20px; | |
| z-index: 18; | |
| pointer-events: none; | |
| border-top: 1px solid rgba(223, 200, 241, 0.07); | |
| border-bottom: 1px solid rgba(100, 58, 139, 0.22); | |
| } | |
| .card .frame::before, | |
| .card .frame::after { | |
| content: ""; | |
| position: absolute; | |
| top: 0; | |
| bottom: 0; | |
| width: 1px; | |
| background: linear-gradient( | |
| to bottom, | |
| transparent, | |
| rgba(228, 75, 120, 0.20) 18%, | |
| rgba(166, 108, 255, 0.38) 45%, | |
| rgba(85, 216, 220, 0.23) 76%, | |
| transparent | |
| ); | |
| } | |
| .card .frame::before { | |
| left: 0; | |
| } | |
| .card .frame::after { | |
| right: 0; | |
| } | |
| .card .edge { | |
| position: absolute; | |
| top: 8%; | |
| bottom: 8%; | |
| z-index: 19; | |
| width: 4px; | |
| pointer-events: none; | |
| background: linear-gradient( | |
| to bottom, | |
| transparent, | |
| rgba(228, 75, 120, 0.54) 26%, | |
| rgba(166, 108, 255, 0.78) 49%, | |
| rgba(85, 216, 220, 0.50) 74%, | |
| transparent | |
| ); | |
| box-shadow: 0 0 16px rgba(132, 76, 212, 0.24); | |
| } | |
| .card .edge-left { | |
| left: 14px; | |
| } | |
| .card .edge-right { | |
| right: 14px; | |
| } | |
| .card .header { | |
| position: relative; | |
| z-index: 3; | |
| padding: clamp(4px, 1vw, 10px) 0 clamp(34px, 4vw, 50px); | |
| text-align: center; | |
| } | |
| .card .header::before { | |
| content: ""; | |
| position: absolute; | |
| left: 9%; | |
| right: 9%; | |
| top: -38px; | |
| bottom: 2px; | |
| z-index: -1; | |
| pointer-events: none; | |
| background: | |
| radial-gradient(ellipse at center, rgba(161, 87, 239, 0.19), transparent 49%), | |
| linear-gradient(90deg, transparent, rgba(227, 69, 118, 0.045), rgba(82, 209, 216, 0.045), transparent); | |
| } | |
| .card .title { | |
| position: relative; | |
| display: block; | |
| width: fit-content; | |
| max-width: 100%; | |
| margin: 0 auto; | |
| padding: 0.05em 0.06em 0.15em; | |
| color: #d2a4ff; | |
| white-space: nowrap; | |
| font-family: "Cinzel Decorative", Georgia, serif; | |
| font-size: clamp(1.32rem, 6.85vw, 6.10rem); | |
| font-size: clamp(1.32rem, 7.35cqi, 6.10rem); | |
| font-weight: 900; | |
| line-height: 1; | |
| letter-spacing: -0.045em; | |
| text-align: center; | |
| background: none; | |
| -webkit-text-stroke: 0; | |
| text-shadow: none; | |
| } | |
| .card .line { | |
| position: relative; | |
| width: min(690px, 72%); | |
| height: 4px; | |
| margin: 22px auto 0; | |
| background: linear-gradient( | |
| 90deg, | |
| transparent, | |
| rgba(228, 75, 120, 0.70), | |
| rgba(166, 108, 255, 0.96), | |
| rgba(234, 222, 243, 0.90), | |
| rgba(85, 216, 220, 0.74), | |
| transparent | |
| ); | |
| box-shadow: 0 0 15px rgba(147, 79, 221, 0.26); | |
| } | |
| .card .line::before, | |
| .card .line::after { | |
| content: ""; | |
| position: absolute; | |
| top: 50%; | |
| width: 12px; | |
| height: 12px; | |
| border: 1px solid rgba(222, 201, 238, 0.58); | |
| background: #160b20; | |
| transform: translateY(-50%) rotate(45deg); | |
| } | |
| .card .line::before { | |
| left: calc(50% - 38px); | |
| } | |
| .card .line::after { | |
| right: calc(50% - 38px); | |
| } | |
| .card .media { | |
| position: relative; | |
| z-index: 3; | |
| width: 100%; | |
| margin: 0 auto 36px; | |
| padding: clamp(13px, 1.8vw, 20px); | |
| overflow: hidden; | |
| border: 1px solid rgba(204, 176, 229, 0.32); | |
| border-radius: 3px; | |
| background: | |
| radial-gradient(circle at 10% 0%, rgba(228, 75, 120, 0.12), transparent 28%), | |
| radial-gradient(circle at 92% 100%, rgba(85, 216, 220, 0.10), transparent 30%), | |
| linear-gradient(135deg, rgba(166, 108, 255, 0.07), transparent 32%), | |
| linear-gradient(180deg, #1a1025, #08050d); | |
| box-shadow: | |
| inset 0 1px 0 rgba(255, 255, 255, 0.10), | |
| inset 0 -1px 0 rgba(95, 50, 134, 0.38), | |
| inset 0 0 24px rgba(0, 0, 0, 0.56), | |
| 0 13px 28px rgba(0, 0, 0, 0.40); | |
| } | |
| .card .media::before, | |
| .card .media::after { | |
| content: ""; | |
| position: absolute; | |
| z-index: 5; | |
| pointer-events: none; | |
| } | |
| .card .media::before { | |
| inset: 7px; | |
| border: 1px solid rgba(231, 214, 245, 0.08); | |
| } | |
| .card .media::after { | |
| left: 14%; | |
| right: 14%; | |
| bottom: 7px; | |
| height: 2px; | |
| background: linear-gradient(90deg, transparent, rgba(228, 75, 120, 0.42), rgba(166, 108, 255, 0.68), rgba(85, 216, 220, 0.40), transparent); | |
| } | |
| .card .media-inner { | |
| position: relative; | |
| width: 100%; | |
| overflow: hidden; | |
| border: 1px solid rgba(161, 116, 201, 0.28); | |
| background: #030207; | |
| box-shadow: | |
| inset 0 2px 6px rgba(0, 0, 0, 0.92), | |
| inset 0 0 24px rgba(0, 0, 0, 0.62); | |
| } | |
| .card .media-inner::after { | |
| content: ""; | |
| position: absolute; | |
| inset: 0; | |
| pointer-events: none; | |
| box-shadow: inset 0 0 34px rgba(3, 1, 8, 0.62); | |
| } | |
| .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: 7; | |
| width: 45px; | |
| height: 45px; | |
| pointer-events: none; | |
| } | |
| .card .corner-tl { | |
| top: 0; | |
| left: 0; | |
| border-top: 3px solid rgba(236, 195, 218, 0.83); | |
| border-left: 3px solid rgba(236, 195, 218, 0.83); | |
| } | |
| .card .corner-tr { | |
| top: 0; | |
| right: 0; | |
| border-top: 3px solid rgba(208, 186, 237, 0.82); | |
| border-right: 3px solid rgba(208, 186, 237, 0.82); | |
| } | |
| .card .corner-bl { | |
| bottom: 0; | |
| left: 0; | |
| border-bottom: 3px solid rgba(190, 93, 159, 0.78); | |
| border-left: 3px solid rgba(190, 93, 159, 0.78); | |
| } | |
| .card .corner-br { | |
| right: 0; | |
| bottom: 0; | |
| border-right: 3px solid rgba(73, 190, 197, 0.76); | |
| border-bottom: 3px solid rgba(73, 190, 197, 0.76); | |
| } | |
| .card .panel { | |
| position: relative; | |
| z-index: 3; | |
| margin-bottom: 32px; | |
| padding: clamp(30px, 4.3vw, 48px); | |
| overflow: hidden; | |
| border: 1px solid var(--border); | |
| border-radius: 3px; | |
| background: | |
| radial-gradient(circle at 0% 0%, rgba(226, 70, 120, 0.09), transparent 30%), | |
| radial-gradient(circle at 100% 100%, rgba(77, 205, 211, 0.07), transparent 30%), | |
| linear-gradient(145deg, rgba(173, 113, 229, 0.055), transparent 36%), | |
| linear-gradient(180deg, rgba(24, 14, 35, 0.98), rgba(8, 5, 13, 0.99)); | |
| box-shadow: | |
| inset 0 1px 0 rgba(255, 255, 255, 0.075), | |
| inset 0 -1px 0 rgba(96, 50, 137, 0.30), | |
| inset 0 -8px 18px rgba(0, 0, 0, 0.54), | |
| 0 10px 24px rgba(0, 0, 0, 0.30); | |
| } | |
| .card .panel::before, | |
| .card .panel::after { | |
| content: ""; | |
| position: absolute; | |
| pointer-events: none; | |
| } | |
| .card .panel::before { | |
| top: 0; | |
| left: 7%; | |
| width: 56%; | |
| height: 2px; | |
| background: linear-gradient(90deg, transparent, rgba(228, 75, 120, 0.76), rgba(166, 108, 255, 0.65), transparent); | |
| } | |
| .card .panel::after { | |
| top: 14%; | |
| bottom: 14%; | |
| left: 0; | |
| width: 3px; | |
| background: linear-gradient(to bottom, transparent, rgba(228, 75, 120, 0.72), rgba(166, 108, 255, 0.68), rgba(85, 216, 220, 0.56), transparent); | |
| } | |
| .card .panel-main { | |
| border-color: rgba(181, 127, 225, 0.38); | |
| background: | |
| radial-gradient(circle at 5% 0%, rgba(221, 66, 116, 0.12), transparent 31%), | |
| radial-gradient(circle at 96% 100%, rgba(75, 204, 211, 0.08), transparent 30%), | |
| linear-gradient(145deg, rgba(171, 103, 231, 0.07), transparent 38%), | |
| linear-gradient(180deg, rgba(27, 16, 40, 0.99), rgba(8, 5, 13, 0.99)); | |
| } | |
| .card .panel-head { | |
| position: relative; | |
| display: flex; | |
| align-items: center; | |
| margin-bottom: 24px; | |
| padding-bottom: 17px; | |
| border-bottom: 1px solid rgba(186, 149, 217, 0.18); | |
| } | |
| .card .panel-head::after { | |
| content: ""; | |
| flex: 1; | |
| height: 1px; | |
| margin-left: 22px; | |
| background: linear-gradient(90deg, rgba(173, 105, 227, 0.48), rgba(228, 75, 120, 0.20), transparent); | |
| } | |
| .card .panel h2 { | |
| margin: 0; | |
| color: #f2e9f6; | |
| font-family: "Cinzel Decorative", Georgia, serif; | |
| font-size: clamp(1.35rem, 2.6vw, 2.05rem); | |
| font-weight: 700; | |
| line-height: 1.16; | |
| letter-spacing: -0.025em; | |
| text-shadow: 0 3px 12px rgba(0, 0, 0, 0.70); | |
| } | |
| .card .copy { | |
| max-width: 1080px; | |
| margin: 0 0 28px; | |
| color: #c5b9ca; | |
| font-size: clamp(1rem, 1.35vw, 1.10rem); | |
| line-height: 1.82; | |
| } | |
| .card .copy strong { | |
| color: #f7effa; | |
| font-weight: 700; | |
| } | |
| .card .copy a { | |
| color: #c999ff; | |
| font-weight: 600; | |
| text-decoration: none; | |
| border-bottom: 1px solid rgba(201, 153, 255, 0.40); | |
| transition: border-color 0.20s ease; | |
| } | |
| .card .copy a:hover { | |
| color: #c999ff; | |
| border-bottom-color: rgba(201, 153, 255, 0.82); | |
| text-shadow: none; | |
| } | |
| .card .details { | |
| position: relative; | |
| width: 100%; | |
| overflow: hidden; | |
| border: 1px solid rgba(174, 126, 213, 0.27); | |
| border-radius: 2px; | |
| background: | |
| linear-gradient(90deg, rgba(165, 87, 219, 0.10), transparent 48%), | |
| linear-gradient(180deg, #120a1b, #060309); | |
| box-shadow: | |
| inset 0 1px 0 rgba(247, 235, 255, 0.06), | |
| inset 0 -5px 10px rgba(0, 0, 0, 0.62); | |
| } | |
| .card .details::before { | |
| content: ""; | |
| position: absolute; | |
| top: 0; | |
| bottom: 0; | |
| left: 0; | |
| width: 3px; | |
| background: linear-gradient(to bottom, transparent, rgba(228, 75, 120, 0.75), rgba(166, 108, 255, 0.77), rgba(85, 216, 220, 0.58), transparent); | |
| } | |
| .card .details summary { | |
| position: relative; | |
| display: flex; | |
| align-items: center; | |
| min-height: 62px; | |
| padding: 17px 66px 17px 22px; | |
| cursor: pointer; | |
| list-style: none; | |
| color: #e4d7ea; | |
| font-family: "JetBrains Mono", monospace; | |
| font-size: 0.84rem; | |
| font-weight: 600; | |
| letter-spacing: 0.045em; | |
| background: linear-gradient(90deg, rgba(172, 87, 221, 0.11), transparent 58%); | |
| } | |
| .card .details summary::-webkit-details-marker { | |
| display: none; | |
| } | |
| .card .details summary::after { | |
| content: ""; | |
| position: absolute; | |
| right: 24px; | |
| width: 11px; | |
| height: 11px; | |
| border-right: 2px solid rgba(201, 153, 255, 0.82); | |
| border-bottom: 2px solid rgba(201, 153, 255, 0.82); | |
| transform: rotate(45deg) translateY(-3px); | |
| transition: transform 0.20s ease; | |
| } | |
| .card .details[open] summary::after { | |
| transform: rotate(225deg) translate(-3px, -3px); | |
| } | |
| .card .details summary:hover { | |
| color: #fff8ff; | |
| text-shadow: 0 0 10px rgba(184, 111, 248, 0.48); | |
| } | |
| .card .details pre { | |
| margin: 0; | |
| padding: clamp(22px, 3vw, 32px); | |
| overflow-x: auto; | |
| color: #cfc1d5; | |
| font-family: "JetBrains Mono", monospace; | |
| font-size: clamp(0.78rem, 1.12vw, 0.90rem); | |
| line-height: 1.72; | |
| white-space: pre; | |
| border-top: 1px solid rgba(174, 126, 213, 0.18); | |
| background: | |
| radial-gradient(circle at 0% 0%, rgba(218, 65, 114, 0.07), transparent 30%), | |
| radial-gradient(circle at 100% 100%, rgba(76, 202, 208, 0.05), transparent 29%), | |
| linear-gradient(180deg, #09050e, #030205); | |
| } | |
| .card .details code { | |
| color: #d5b2f8; | |
| font-family: inherit; | |
| } | |
| .card .grid { | |
| display: grid; | |
| grid-template-columns: repeat(2, minmax(0, 1fr)); | |
| gap: 18px; | |
| } | |
| .card .item { | |
| position: relative; | |
| display: flex; | |
| min-height: 174px; | |
| overflow: hidden; | |
| border: 1px solid rgba(181, 144, 211, 0.22); | |
| border-radius: 2px; | |
| background: | |
| radial-gradient(circle at 0% 0%, rgba(228, 75, 120, 0.095), transparent 34%), | |
| radial-gradient(circle at 100% 100%, rgba(85, 216, 220, 0.065), transparent 34%), | |
| linear-gradient(140deg, rgba(164, 94, 220, 0.055), transparent 44%), | |
| linear-gradient(180deg, #160d20, #09050e); | |
| box-shadow: | |
| inset 0 1px 0 rgba(247, 235, 255, 0.065), | |
| inset 0 -6px 12px rgba(0, 0, 0, 0.54), | |
| 0 7px 17px rgba(0, 0, 0, 0.27); | |
| transition: border-color 0.20s ease, box-shadow 0.20s ease; | |
| } | |
| .card .item::before, | |
| .card .item::after { | |
| content: ""; | |
| position: absolute; | |
| pointer-events: none; | |
| } | |
| .card .item::before { | |
| top: 0; | |
| left: 9%; | |
| width: 55%; | |
| height: 2px; | |
| background: linear-gradient(90deg, rgba(228, 75, 120, 0.62), rgba(166, 108, 255, 0.50), transparent); | |
| } | |
| .card .item::after { | |
| top: 15%; | |
| bottom: 15%; | |
| right: 0; | |
| width: 3px; | |
| background: linear-gradient(to bottom, transparent, rgba(166, 108, 255, 0.62), rgba(85, 216, 220, 0.44), transparent); | |
| } | |
| .card .item:nth-child(2)::before, | |
| .card .item:nth-child(4)::before { | |
| background: linear-gradient(90deg, rgba(85, 216, 220, 0.58), rgba(166, 108, 255, 0.46), transparent); | |
| } | |
| .card .item:nth-child(3)::before { | |
| background: linear-gradient(90deg, rgba(215, 168, 94, 0.55), rgba(228, 75, 120, 0.48), transparent); | |
| } | |
| .card .item:hover { | |
| border-color: rgba(202, 159, 238, 0.40); | |
| box-shadow: | |
| inset 0 1px 0 rgba(247, 235, 255, 0.08), | |
| inset 0 -6px 12px rgba(0, 0, 0, 0.54), | |
| 0 0 18px rgba(146, 77, 205, 0.16), | |
| 0 8px 18px rgba(0, 0, 0, 0.30); | |
| } | |
| .card .item-copy { | |
| align-self: center; | |
| min-width: 0; | |
| padding: 30px 31px; | |
| } | |
| .card .item h3 { | |
| margin: 0 0 11px; | |
| color: #f0e7f4; | |
| font-family: "Cinzel Decorative", Georgia, serif; | |
| font-size: clamp(1.08rem, 1.65vw, 1.30rem); | |
| font-weight: 700; | |
| line-height: 1.25; | |
| letter-spacing: -0.02em; | |
| } | |
| .card .item:nth-child(2) h3 { | |
| color: #d6f3f2; | |
| } | |
| .card .item:nth-child(3) h3 { | |
| color: #f2dfc1; | |
| } | |
| .card .item:nth-child(4) h3 { | |
| color: #e6d6f6; | |
| } | |
| .card .item p { | |
| margin: 0; | |
| color: #ad9fb3; | |
| font-size: clamp(0.94rem, 1.22vw, 1.02rem); | |
| line-height: 1.67; | |
| } | |
| @media (max-width: 760px) { | |
| .card .title { | |
| font-size: clamp(0.98rem, 6vw, 2.9rem); | |
| letter-spacing: -0.06em; | |
| } | |
| } | |
| @media (max-width: 620px) { | |
| .card { | |
| margin: 18px auto; | |
| padding: 24px 14px 29px; | |
| } | |
| .card .header { | |
| padding: 4px 0 31px; | |
| } | |
| .card .title { | |
| font-size: clamp(0.82rem, 6vw, 1.68rem); | |
| } | |
| .card .line { | |
| width: 79%; | |
| margin-top: 17px; | |
| } | |
| .card .line::before { | |
| left: calc(50% - 30px); | |
| } | |
| .card .line::after { | |
| right: calc(50% - 30px); | |
| } | |
| .card .media { | |
| padding: 8px; | |
| margin-bottom: 23px; | |
| } | |
| .card .corner { | |
| width: 28px; | |
| height: 28px; | |
| } | |
| .card .panel { | |
| padding: 24px 17px; | |
| margin-bottom: 22px; | |
| } | |
| .card .panel h2 { | |
| font-size: 1.25rem; | |
| } | |
| .card .copy { | |
| font-size: 0.96rem; | |
| line-height: 1.74; | |
| } | |
| .card .details summary { | |
| min-height: 58px; | |
| padding: 15px 56px 15px 18px; | |
| font-size: 0.74rem; | |
| } | |
| .card .details pre { | |
| font-size: 0.77rem; | |
| } | |
| .card .grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .card .item { | |
| min-height: 152px; | |
| } | |
| .card .item-copy { | |
| padding: 25px 21px; | |
| } | |
| .card .item h3 { | |
| font-size: 1.05rem; | |
| } | |
| .card .item p { | |
| font-size: 0.92rem; | |
| } | |
| } | |
| </style> |