Image-Text-to-Text
Transformers
Safetensors
gemma4
mergekit
Merge
roleplay
storytelling
conversational
Instructions to use Cyclone-Labs/Eon-Blossom-31B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Cyclone-Labs/Eon-Blossom-31B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="Cyclone-Labs/Eon-Blossom-31B") 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("Cyclone-Labs/Eon-Blossom-31B") model = AutoModelForMultimodalLM.from_pretrained("Cyclone-Labs/Eon-Blossom-31B", 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 Cyclone-Labs/Eon-Blossom-31B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Cyclone-Labs/Eon-Blossom-31B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Cyclone-Labs/Eon-Blossom-31B", "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/Cyclone-Labs/Eon-Blossom-31B
- SGLang
How to use Cyclone-Labs/Eon-Blossom-31B 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 "Cyclone-Labs/Eon-Blossom-31B" \ --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": "Cyclone-Labs/Eon-Blossom-31B", "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 "Cyclone-Labs/Eon-Blossom-31B" \ --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": "Cyclone-Labs/Eon-Blossom-31B", "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 Cyclone-Labs/Eon-Blossom-31B with Docker Model Runner:
docker model run hf.co/Cyclone-Labs/Eon-Blossom-31B
| base_model: | |
| - LatitudeGames/Equinox-31B | |
| - zerofata/G4-MeroMero-v2-31B | |
| - Darkhn/Gemma-4-31B-Animus-V15.0 | |
| - ReadyArt/gemma-4-31B-it-scotoma-2 | |
| library_name: transformers | |
| tags: | |
| - mergekit | |
| - merge | |
| - roleplay | |
| - storytelling | |
| license: apache-2.0 | |
| new_version: Cyclone-Labs/Eon-Blossom-V2-31B | |
| <section class="card"> | |
| <figure class="media"> | |
| <img src="https://cdn-uploads.huggingface.co/production/uploads/6669a3a617b838fda45637b8/41sPr8OzLXrOFScs3UMf-.png" alt="Eon-Blossom-31B artwork"> | |
| </figure> | |
| <div class="body"> | |
| <div class="side side-left" aria-hidden="true"> | |
| <span class="leaf leaf-a"></span> | |
| <span class="leaf leaf-b"></span> | |
| <span class="leaf leaf-c"></span> | |
| <span class="bud bud-a"></span> | |
| <span class="bud bud-b"></span> | |
| </div> | |
| <div class="side side-right" aria-hidden="true"> | |
| <span class="leaf leaf-a"></span> | |
| <span class="leaf leaf-b"></span> | |
| <span class="leaf leaf-c"></span> | |
| <span class="bud bud-a"></span> | |
| <span class="bud bud-b"></span> | |
| </div> | |
| <header class="header"> | |
| <div class="ornament" aria-hidden="true"> | |
| <span></span> | |
| <i></i> | |
| <b></b> | |
| <i></i> | |
| <span></span> | |
| </div> | |
| <div class="flower" aria-hidden="true"> | |
| <span class="petal petal-a"></span> | |
| <span class="petal petal-b"></span> | |
| <span class="petal petal-c"></span> | |
| <span class="petal petal-d"></span> | |
| <span class="petal petal-e"></span> | |
| <span class="petal petal-f"></span> | |
| <span class="petal petal-g"></span> | |
| <span class="petal petal-h"></span> | |
| <span class="flower-center"></span> | |
| </div> | |
| <h1>Eon-Blossom-31B</h1> | |
| <div class="title-line" aria-hidden="true"> | |
| <span></span> | |
| <i></i> | |
| <b></b> | |
| <i></i> | |
| <span></span> | |
| </div> | |
| <p class="subtitle"> | |
| A blossom born beyond the end of time. | |
| </p> | |
| </header> | |
| <section class="panel"> | |
| <div class="heading"> | |
| <span></span> | |
| <i></i> | |
| <h2>Overview</h2> | |
| <i></i> | |
| <span></span> | |
| </div> | |
| <div class="ghost ghost-left" aria-hidden="true"> | |
| <span></span> | |
| </div> | |
| <div class="ghost ghost-right" aria-hidden="true"> | |
| <span></span> | |
| </div> | |
| <p class="text"> | |
| <strong>Eon-Blossom-31B</strong> was created by combining | |
| <a href="https://huggingface.co/LatitudeGames/Equinox-31B">Equinox-31B</a>, | |
| <a href="https://huggingface.co/ReadyArt/gemma-4-31B-it-scotoma-2">gemma-4-31B-it-scotoma-2</a>, | |
| <a href="https://huggingface.co/zerofata/G4-MeroMero-v2-31B">G4-MeroMero-v2-31B</a>, | |
| and | |
| <a href="https://huggingface.co/Darkhn/Gemma-4-31B-Animus-V15.0">Gemma-4-31B-Animus-V15.0</a> | |
| using a custom merge method. | |
| </p> | |
| <div class="divider" aria-hidden="true"> | |
| <span></span> | |
| <i></i> | |
| <b></b> | |
| <i></i> | |
| <span></span> | |
| </div> | |
| <details class="details"> | |
| <summary> | |
| <span class="details-title">Merge Configuration</span> | |
| <span class="toggle" aria-hidden="true"></span> | |
| </summary> | |
| <pre><code>models: | |
| - model: LatitudeGames/Equinox-31B | |
| - model: ReadyArt/gemma-4-31B-it-scotoma-2 | |
| - model: zerofata/G4-MeroMero-v2-31B | |
| - model: Darkhn/Gemma-4-31B-Animus-V15.0 | |
| merge_method: hcve | |
| chat_template: auto | |
| parameters: | |
| tol: 1.0e-9 | |
| max_iter: 1000 | |
| exhaustive: true | |
| dtype: float32 | |
| out_dtype: bfloat16 | |
| tokenizer: | |
| source: zerofata/G4-MeroMero-v2-31B</code></pre> | |
| </details> | |
| </section> | |
| <section class="panel use-panel"> | |
| <div class="heading use-heading"> | |
| <span></span> | |
| <i></i> | |
| <h2>Intended Use</h2> | |
| <i></i> | |
| <span></span> | |
| </div> | |
| <div class="grid"> | |
| <article class="item"> | |
| <div class="mark" aria-hidden="true"> | |
| <span class="mark-petal mark-a"></span> | |
| <span class="mark-petal mark-b"></span> | |
| <span class="mark-petal mark-c"></span> | |
| <span class="mark-petal mark-d"></span> | |
| <span class="mark-ring"></span> | |
| <span class="mark-center"></span> | |
| </div> | |
| <div class="copy"> | |
| <h3>Roleplay</h3> | |
| <p>Character-driven interaction, personas, dialogue, emotional scenes, and long-form roleplay.</p> | |
| </div> | |
| </article> | |
| <article class="item"> | |
| <div class="mark" aria-hidden="true"> | |
| <span class="mark-petal mark-a"></span> | |
| <span class="mark-petal mark-b"></span> | |
| <span class="mark-petal mark-c"></span> | |
| <span class="mark-petal mark-d"></span> | |
| <span class="mark-ring"></span> | |
| <span class="mark-center"></span> | |
| </div> | |
| <div class="copy"> | |
| <h3>Creative Writing</h3> | |
| <p>Fiction, dialogue, atmosphere, descriptive writing, stylistic drafting, and imaginative prose.</p> | |
| </div> | |
| </article> | |
| <article class="item"> | |
| <div class="mark" aria-hidden="true"> | |
| <span class="mark-petal mark-a"></span> | |
| <span class="mark-petal mark-b"></span> | |
| <span class="mark-petal mark-c"></span> | |
| <span class="mark-petal mark-d"></span> | |
| <span class="mark-ring"></span> | |
| <span class="mark-center"></span> | |
| </div> | |
| <div class="copy"> | |
| <h3>Storytelling</h3> | |
| <p>Long-form narratives, worldbuilding, continuity, evolving characters, and multi-character plots.</p> | |
| </div> | |
| </article> | |
| <article class="item"> | |
| <div class="mark" aria-hidden="true"> | |
| <span class="mark-petal mark-a"></span> | |
| <span class="mark-petal mark-b"></span> | |
| <span class="mark-petal mark-c"></span> | |
| <span class="mark-petal mark-d"></span> | |
| <span class="mark-ring"></span> | |
| <span class="mark-center"></span> | |
| </div> | |
| <div class="copy"> | |
| <h3>Interactive Fiction</h3> | |
| <p>Branching narratives, scenario play, character interaction, and continuously evolving stories.</p> | |
| </div> | |
| </article> | |
| </div> | |
| </section> | |
| <footer class="footer"> | |
| <div class="footer-line"></div> | |
| <div class="footer-mark" aria-hidden="true"> | |
| <span></span> | |
| </div> | |
| <div class="footer-name"> | |
| Cyclone Labs | |
| </div> | |
| <div class="footer-mark" aria-hidden="true"> | |
| <span></span> | |
| </div> | |
| <div class="footer-line footer-line-right"></div> | |
| </footer> | |
| </div> | |
| </section> | |
| <style> | |
| .card, | |
| .card * { | |
| box-sizing: border-box; | |
| } | |
| .card { | |
| --black: #030405; | |
| --black-soft: #070908; | |
| --night: #0a0e0b; | |
| --night-light: #101611; | |
| --green-dark: #102017; | |
| --green: #294234; | |
| --green-light: #789080; | |
| --plum-dark: #1a111c; | |
| --plum: #533858; | |
| --plum-light: #896d8d; | |
| --silver-dark: #737c76; | |
| --silver: #a5aba7; | |
| --silver-light: #d5d8d6; | |
| --flower: #bda8c0; | |
| --flower-light: #e2d7e4; | |
| --text: #bdc1be; | |
| --text-soft: #989f9a; | |
| --ivory: #e7e8e6; | |
| position: relative; | |
| isolation: isolate; | |
| width: 100%; | |
| max-width: 1472px; | |
| margin: 48px auto; | |
| overflow: hidden; | |
| color: var(--text); | |
| font-family: | |
| Candara, | |
| "Gill Sans", | |
| "Trebuchet MS", | |
| sans-serif; | |
| border: 1px solid rgba(157, 172, 162, 0.13); | |
| border-radius: 2px; | |
| background: | |
| radial-gradient( | |
| ellipse at 50% 0%, | |
| rgba(91, 72, 96, 0.12), | |
| transparent 29% | |
| ), | |
| radial-gradient( | |
| ellipse at 18% 48%, | |
| rgba(36, 68, 48, 0.08), | |
| transparent 34% | |
| ), | |
| radial-gradient( | |
| ellipse at 82% 68%, | |
| rgba(69, 46, 74, 0.07), | |
| transparent 32% | |
| ), | |
| linear-gradient( | |
| 180deg, | |
| #080a09 0%, | |
| #050706 42%, | |
| #030504 100% | |
| ); | |
| box-shadow: | |
| inset 0 0 0 1px rgba(224, 231, 226, 0.012), | |
| inset 0 0 170px rgba(0, 0, 0, 0.54); | |
| } | |
| .card::before { | |
| content: ""; | |
| position: absolute; | |
| z-index: 0; | |
| inset: 0; | |
| pointer-events: none; | |
| background: | |
| radial-gradient( | |
| circle at 11% 18%, | |
| rgba(212, 218, 214, 0.09) 0 1px, | |
| transparent 2px | |
| ), | |
| radial-gradient( | |
| circle at 81% 13%, | |
| rgba(212, 218, 214, 0.07) 0 1px, | |
| transparent 2px | |
| ), | |
| radial-gradient( | |
| circle at 74% 35%, | |
| rgba(186, 158, 191, 0.08) 0 1px, | |
| transparent 2px | |
| ), | |
| radial-gradient( | |
| circle at 24% 65%, | |
| rgba(159, 181, 166, 0.07) 0 1px, | |
| transparent 2px | |
| ); | |
| } | |
| .card::after { | |
| content: ""; | |
| position: absolute; | |
| z-index: 0; | |
| top: 0; | |
| left: 50%; | |
| width: 72%; | |
| height: 430px; | |
| transform: translateX(-50%); | |
| pointer-events: none; | |
| background: | |
| radial-gradient( | |
| ellipse at 50% 0%, | |
| rgba(176, 154, 183, 0.05), | |
| transparent 68% | |
| ); | |
| } | |
| .media { | |
| position: relative; | |
| z-index: 2; | |
| width: 100%; | |
| margin: 0; | |
| padding: 0; | |
| overflow: hidden; | |
| background: #000; | |
| } | |
| .media img { | |
| display: block; | |
| width: 100%; | |
| max-width: 100%; | |
| height: auto; | |
| margin: 0; | |
| border: 0; | |
| } | |
| .media::before { | |
| content: ""; | |
| position: absolute; | |
| z-index: 2; | |
| inset: 0; | |
| pointer-events: none; | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| rgba(0, 0, 0, 0.20), | |
| transparent 20%, | |
| transparent 80%, | |
| rgba(0, 0, 0, 0.20) | |
| ), | |
| linear-gradient( | |
| 180deg, | |
| transparent 55%, | |
| rgba(4, 6, 5, 0.28) | |
| ); | |
| } | |
| .media::after { | |
| content: ""; | |
| position: absolute; | |
| z-index: 3; | |
| left: 0; | |
| right: 0; | |
| bottom: 0; | |
| height: 2px; | |
| pointer-events: none; | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| transparent, | |
| rgba(78, 111, 90, 0.24) 16%, | |
| rgba(179, 191, 183, 0.50) 50%, | |
| rgba(97, 76, 102, 0.25) 84%, | |
| transparent | |
| ); | |
| } | |
| .body { | |
| position: relative; | |
| z-index: 1; | |
| padding: | |
| clamp(24px, 3vw, 38px) | |
| clamp(42px, 5.4vw, 76px) | |
| clamp(44px, 5vw, 70px); | |
| background: | |
| radial-gradient( | |
| ellipse at 50% 0%, | |
| rgba(64, 83, 69, 0.07), | |
| transparent 28% | |
| ); | |
| } | |
| .body::before { | |
| content: ""; | |
| position: absolute; | |
| inset: 14px; | |
| pointer-events: none; | |
| border: | |
| 1px solid rgba(158, 175, 163, 0.045); | |
| clip-path: | |
| polygon( | |
| 0 17px, | |
| 17px 0, | |
| calc(100% - 17px) 0, | |
| 100% 17px, | |
| 100% calc(100% - 17px), | |
| calc(100% - 17px) 100%, | |
| 17px 100%, | |
| 0 calc(100% - 17px) | |
| ); | |
| } | |
| .side { | |
| position: absolute; | |
| z-index: 1; | |
| top: 44px; | |
| bottom: 44px; | |
| width: 38px; | |
| pointer-events: none; | |
| } | |
| .side-left { | |
| left: 5px; | |
| } | |
| .side-right { | |
| right: 5px; | |
| transform: scaleX(-1); | |
| } | |
| .side::before { | |
| content: ""; | |
| position: absolute; | |
| top: 0; | |
| bottom: 0; | |
| left: 17px; | |
| width: 1px; | |
| background: | |
| linear-gradient( | |
| 180deg, | |
| transparent, | |
| rgba(98, 127, 107, 0.10) 8%, | |
| rgba(120, 147, 129, 0.32) 30%, | |
| rgba(100, 128, 108, 0.27) 70%, | |
| rgba(98, 127, 107, 0.08) 92%, | |
| transparent | |
| ); | |
| } | |
| .side::after { | |
| content: ""; | |
| position: absolute; | |
| top: 20%; | |
| left: 17px; | |
| width: 14px; | |
| height: 58%; | |
| border-left: | |
| 1px solid rgba(107, 137, 116, 0.16); | |
| border-radius: | |
| 60% 0 0 60%; | |
| } | |
| .leaf { | |
| position: absolute; | |
| width: 13px; | |
| height: 25px; | |
| border: | |
| 1px solid rgba(121, 148, 129, 0.16); | |
| border-radius: | |
| 100% 0 100% 0; | |
| background: | |
| linear-gradient( | |
| 135deg, | |
| rgba(62, 99, 75, 0.16), | |
| transparent | |
| ); | |
| } | |
| .leaf-a { | |
| top: 23%; | |
| left: 17px; | |
| transform: rotate(28deg); | |
| } | |
| .leaf-b { | |
| top: 48%; | |
| left: 3px; | |
| transform: | |
| scaleX(-1) | |
| rotate(28deg); | |
| } | |
| .leaf-c { | |
| top: 70%; | |
| left: 17px; | |
| transform: rotate(31deg); | |
| } | |
| .bud { | |
| position: absolute; | |
| width: 9px; | |
| height: 14px; | |
| border: | |
| 1px solid rgba(173, 150, 178, 0.18); | |
| border-radius: | |
| 50% 50% 45% 45%; | |
| background: | |
| rgba(92, 68, 97, 0.12); | |
| } | |
| .bud-a { | |
| top: 34%; | |
| left: 12px; | |
| } | |
| .bud-b { | |
| top: 62%; | |
| left: 12px; | |
| } | |
| .header { | |
| position: relative; | |
| z-index: 3; | |
| text-align: center; | |
| padding: 2px 0 58px; | |
| } | |
| .ornament { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: min(790px, 76%); | |
| margin: 0 auto 28px; | |
| } | |
| .ornament span { | |
| flex: 1; | |
| height: 1px; | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| transparent, | |
| rgba(127, 151, 136, 0.26) | |
| ); | |
| } | |
| .ornament span:last-child { | |
| transform: scaleX(-1); | |
| } | |
| .ornament i { | |
| width: 7px; | |
| height: 7px; | |
| margin: 0 10px; | |
| transform: rotate(45deg); | |
| border: | |
| 1px solid rgba(173, 187, 178, 0.25); | |
| background: | |
| rgba(62, 88, 71, 0.10); | |
| } | |
| .ornament b { | |
| width: 54px; | |
| height: 2px; | |
| margin: 0 12px; | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| transparent, | |
| rgba(192, 174, 197, 0.55), | |
| transparent | |
| ); | |
| } | |
| .flower { | |
| position: relative; | |
| width: 96px; | |
| height: 96px; | |
| margin: 0 auto 24px; | |
| pointer-events: none; | |
| } | |
| .petal { | |
| position: absolute; | |
| top: 50%; | |
| left: 50%; | |
| width: 22px; | |
| height: 42px; | |
| margin: -41px 0 0 -11px; | |
| transform-origin: 11px 41px; | |
| border: | |
| 1px solid rgba(198, 183, 202, 0.31); | |
| border-radius: | |
| 52% 52% 47% 47% / 75% 75% 28% 28%; | |
| background: | |
| radial-gradient( | |
| ellipse at 50% 24%, | |
| rgba(217, 199, 220, 0.20), | |
| rgba(109, 81, 115, 0.11) 48%, | |
| transparent 75% | |
| ); | |
| box-shadow: | |
| inset 0 0 8px rgba(215, 202, 219, 0.035); | |
| } | |
| .petal-a { transform: rotate(0deg); } | |
| .petal-b { transform: rotate(45deg); } | |
| .petal-c { transform: rotate(90deg); } | |
| .petal-d { transform: rotate(135deg); } | |
| .petal-e { transform: rotate(180deg); } | |
| .petal-f { transform: rotate(225deg); } | |
| .petal-g { transform: rotate(270deg); } | |
| .petal-h { transform: rotate(315deg); } | |
| .flower-center { | |
| position: absolute; | |
| top: 50%; | |
| left: 50%; | |
| width: 21px; | |
| height: 21px; | |
| transform: | |
| translate(-50%, -50%); | |
| border: | |
| 1px solid rgba(215, 203, 219, 0.43); | |
| border-radius: | |
| 50%; | |
| background: | |
| radial-gradient( | |
| circle, | |
| rgba(181, 159, 187, 0.38), | |
| rgba(75, 53, 80, 0.45) 58%, | |
| rgba(10, 12, 11, 0.90) | |
| ); | |
| } | |
| .flower-center::before { | |
| content: ""; | |
| position: absolute; | |
| top: 50%; | |
| left: 50%; | |
| width: 6px; | |
| height: 6px; | |
| transform: | |
| translate(-50%, -50%) | |
| rotate(45deg); | |
| background: | |
| #c1b1c5; | |
| } | |
| .header h1 { | |
| display: inline-block; | |
| max-width: 100%; | |
| margin: 0; | |
| white-space: nowrap; | |
| color: var(--ivory); | |
| font-family: | |
| Perpetua, | |
| "Baskerville Old Face", | |
| Baskerville, | |
| Georgia, | |
| serif; | |
| font-size: | |
| clamp(1.45rem, 3.8vw, 3.4rem); | |
| font-weight: 600; | |
| line-height: 1; | |
| letter-spacing: 0.065em; | |
| text-transform: uppercase; | |
| text-shadow: | |
| 0 2px 6px rgba(0, 0, 0, 0.55); | |
| } | |
| @supports ((-webkit-background-clip: text) or (background-clip: text)) { | |
| .header h1 { | |
| background: | |
| linear-gradient( | |
| 180deg, | |
| #eff1ef 0%, | |
| #cbd0cc 28%, | |
| #9ca8a0 52%, | |
| #b9a4bc 76%, | |
| #e3dce4 100% | |
| ); | |
| -webkit-background-clip: text; | |
| background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| color: transparent; | |
| } | |
| } | |
| .title-line { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: min(620px, 61%); | |
| margin: 25px auto 16px; | |
| } | |
| .title-line span { | |
| flex: 1; | |
| height: 1px; | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| transparent, | |
| rgba(116, 145, 126, 0.36) | |
| ); | |
| } | |
| .title-line span:last-child { | |
| transform: scaleX(-1); | |
| } | |
| .title-line i { | |
| width: 7px; | |
| height: 7px; | |
| margin: 0 7px; | |
| transform: rotate(45deg); | |
| border: | |
| 1px solid rgba(180, 190, 184, 0.25); | |
| } | |
| .title-line b { | |
| width: 29px; | |
| height: 2px; | |
| margin: 0 8px; | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| rgba(77, 104, 87, 0.15), | |
| rgba(194, 179, 198, 0.48), | |
| rgba(77, 104, 87, 0.15) | |
| ); | |
| } | |
| .subtitle { | |
| max-width: 720px; | |
| margin: 0 auto; | |
| color: #8f9992; | |
| font-family: | |
| Perpetua, | |
| Baskerville, | |
| Georgia, | |
| serif; | |
| font-size: | |
| clamp(0.90rem, 1.3vw, 1.05rem); | |
| font-style: italic; | |
| line-height: 1.6; | |
| letter-spacing: 0.075em; | |
| } | |
| .panel { | |
| position: relative; | |
| z-index: 3; | |
| margin-bottom: 30px; | |
| padding: | |
| clamp(34px, 4.2vw, 52px); | |
| overflow: hidden; | |
| border: | |
| 1px solid rgba(132, 151, 138, 0.11); | |
| clip-path: | |
| polygon( | |
| 14px 0, | |
| calc(100% - 14px) 0, | |
| 100% 14px, | |
| 100% calc(100% - 14px), | |
| calc(100% - 14px) 100%, | |
| 14px 100%, | |
| 0 calc(100% - 14px), | |
| 0 14px | |
| ); | |
| background: | |
| radial-gradient( | |
| ellipse at 12% 0%, | |
| rgba(56, 88, 67, 0.09), | |
| transparent 32% | |
| ), | |
| radial-gradient( | |
| ellipse at 89% 100%, | |
| rgba(84, 57, 88, 0.07), | |
| transparent 34% | |
| ), | |
| linear-gradient( | |
| 90deg, | |
| rgba(5, 8, 6, 0.98), | |
| rgba(10, 14, 11, 0.98) 50%, | |
| rgba(5, 8, 6, 0.98) | |
| ); | |
| box-shadow: | |
| inset 0 0 0 1px rgba(221, 228, 223, 0.01), | |
| inset 0 0 70px rgba(0, 0, 0, 0.15); | |
| } | |
| .panel::before { | |
| content: ""; | |
| position: absolute; | |
| top: 0; | |
| left: 14px; | |
| width: 190px; | |
| height: 1px; | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| rgba(167, 184, 173, 0.41), | |
| transparent | |
| ); | |
| } | |
| .panel::after { | |
| content: ""; | |
| position: absolute; | |
| right: 14px; | |
| bottom: 0; | |
| width: 190px; | |
| height: 1px; | |
| background: | |
| linear-gradient( | |
| 270deg, | |
| rgba(148, 126, 152, 0.33), | |
| transparent | |
| ); | |
| } | |
| .heading { | |
| position: relative; | |
| z-index: 4; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 10px; | |
| width: 100%; | |
| margin: 0 auto 28px; | |
| } | |
| .heading span { | |
| flex: 1; | |
| max-width: 180px; | |
| height: 1px; | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| transparent, | |
| rgba(119, 147, 128, 0.38) | |
| ); | |
| } | |
| .heading span:last-child { | |
| transform: scaleX(-1); | |
| } | |
| .heading i { | |
| width: 7px; | |
| height: 7px; | |
| flex: 0 0 auto; | |
| transform: rotate(45deg); | |
| border: | |
| 1px solid rgba(177, 190, 181, 0.24); | |
| } | |
| .heading h2 { | |
| flex: 0 0 auto; | |
| margin: 0 8px; | |
| color: #d2d6d3; | |
| font-family: | |
| Perpetua, | |
| "Baskerville Old Face", | |
| Baskerville, | |
| Georgia, | |
| serif; | |
| font-size: | |
| clamp(1.4rem, 2.5vw, 2.08rem); | |
| font-weight: 600; | |
| line-height: 1; | |
| letter-spacing: 0.105em; | |
| text-align: center; | |
| text-transform: uppercase; | |
| } | |
| .ghost { | |
| position: absolute; | |
| width: 130px; | |
| height: 130px; | |
| pointer-events: none; | |
| opacity: 0.09; | |
| } | |
| .ghost-left { | |
| top: 6px; | |
| left: -28px; | |
| transform: rotate(-18deg); | |
| } | |
| .ghost-right { | |
| right: -24px; | |
| bottom: -25px; | |
| transform: | |
| rotate(22deg) | |
| scale(0.85); | |
| } | |
| .ghost::before, | |
| .ghost::after, | |
| .ghost span::before, | |
| .ghost span::after { | |
| content: ""; | |
| position: absolute; | |
| top: 50%; | |
| left: 50%; | |
| width: 34px; | |
| height: 76px; | |
| margin: -72px 0 0 -17px; | |
| transform-origin: 17px 72px; | |
| border: | |
| 1px solid rgba(192, 201, 195, 0.55); | |
| border-radius: | |
| 52% 52% 44% 44%; | |
| } | |
| .ghost::before { | |
| transform: rotate(0deg); | |
| } | |
| .ghost::after { | |
| transform: rotate(90deg); | |
| } | |
| .ghost span::before { | |
| transform: rotate(45deg); | |
| } | |
| .ghost span::after { | |
| transform: rotate(135deg); | |
| } | |
| .text { | |
| position: relative; | |
| z-index: 3; | |
| max-width: 1210px; | |
| margin: 0 auto 28px; | |
| color: var(--text); | |
| font-size: | |
| clamp(1.03rem, 1.3vw, 1.16rem); | |
| line-height: 1.82; | |
| text-align: left; | |
| overflow-wrap: anywhere; | |
| } | |
| .text strong { | |
| color: var(--ivory); | |
| font-weight: 700; | |
| } | |
| .text a { | |
| color: #b7c2bb; | |
| font-weight: 600; | |
| text-decoration: none; | |
| border-bottom: | |
| 1px solid rgba(111, 143, 121, 0.25); | |
| } | |
| .text a:hover { | |
| color: #e5ebe7; | |
| border-bottom-color: | |
| rgba(162, 184, 169, 0.56); | |
| } | |
| .divider { | |
| position: relative; | |
| z-index: 3; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: | |
| min(660px, 72%); | |
| margin: | |
| 28px auto; | |
| } | |
| .divider span { | |
| flex: 1; | |
| height: 1px; | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| transparent, | |
| rgba(100, 130, 110, 0.28) | |
| ); | |
| } | |
| .divider span:last-child { | |
| transform: scaleX(-1); | |
| } | |
| .divider i { | |
| width: 6px; | |
| height: 6px; | |
| margin: 0 7px; | |
| transform: rotate(45deg); | |
| border: | |
| 1px solid rgba(159, 174, 164, 0.22); | |
| } | |
| .divider b { | |
| position: relative; | |
| width: 22px; | |
| height: 22px; | |
| margin: 0 8px; | |
| border: | |
| 1px solid rgba(152, 132, 156, 0.28); | |
| border-radius: | |
| 50%; | |
| } | |
| .divider b::before { | |
| content: ""; | |
| position: absolute; | |
| top: 50%; | |
| left: 50%; | |
| width: 7px; | |
| height: 7px; | |
| transform: | |
| translate(-50%, -50%) | |
| rotate(45deg); | |
| border: | |
| 1px solid rgba(191, 178, 194, 0.35); | |
| } | |
| .details { | |
| position: relative; | |
| z-index: 3; | |
| width: 100%; | |
| overflow: hidden; | |
| border: | |
| 1px solid rgba(112, 139, 120, 0.13); | |
| background: | |
| #050806; | |
| } | |
| .details summary { | |
| position: relative; | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| min-height: | |
| 59px; | |
| padding: | |
| 14px 22px; | |
| cursor: pointer; | |
| list-style: none; | |
| color: #c4cac6; | |
| border-left: | |
| 2px solid rgba(104, 142, 116, 0.52); | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| rgba(35, 61, 43, 0.16), | |
| rgba(6, 9, 7, 0.98) 36% | |
| ); | |
| } | |
| .details summary::-webkit-details-marker { | |
| display: none; | |
| } | |
| .details-title { | |
| font-family: | |
| Perpetua, | |
| Baskerville, | |
| Georgia, | |
| serif; | |
| font-size: 0.96rem; | |
| font-weight: 600; | |
| letter-spacing: 0.095em; | |
| text-transform: uppercase; | |
| } | |
| .toggle { | |
| position: relative; | |
| flex: 0 0 auto; | |
| width: 25px; | |
| height: 25px; | |
| margin-left: 16px; | |
| border: | |
| 1px solid rgba(145, 166, 151, 0.22); | |
| border-radius: | |
| 50%; | |
| background: | |
| rgba(43, 69, 51, 0.11); | |
| } | |
| .toggle::before { | |
| content: ""; | |
| position: absolute; | |
| top: 7px; | |
| left: 8px; | |
| width: 7px; | |
| height: 7px; | |
| border-right: | |
| 1px solid rgba(195, 207, 199, 0.72); | |
| border-bottom: | |
| 1px solid rgba(195, 207, 199, 0.72); | |
| transform: | |
| rotate(45deg); | |
| transition: | |
| transform 0.18s ease, | |
| top 0.18s ease; | |
| } | |
| .details[open] .toggle::before { | |
| top: 10px; | |
| transform: rotate(225deg); | |
| } | |
| .details pre { | |
| margin: 0; | |
| padding: | |
| clamp(21px, 2.8vw, 32px); | |
| overflow-x: auto; | |
| color: #abb9b0; | |
| font-family: | |
| "Lucida Console", | |
| Monaco, | |
| "DejaVu Sans Mono", | |
| monospace; | |
| font-size: | |
| clamp(0.80rem, 0.96vw, 0.90rem); | |
| line-height: 1.68; | |
| white-space: pre; | |
| border-top: | |
| 1px solid rgba(101, 130, 110, 0.10); | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| #040605, | |
| #080c09 50%, | |
| #040605 | |
| ); | |
| } | |
| .details code { | |
| color: inherit; | |
| font-family: inherit; | |
| } | |
| .use-panel { | |
| padding: | |
| clamp(29px, 3.5vw, 40px) | |
| clamp(25px, 4vw, 46px) | |
| clamp(30px, 3.5vw, 42px); | |
| } | |
| .use-heading { | |
| margin-bottom: 25px; | |
| } | |
| .use-heading h2 { | |
| font-size: | |
| clamp(1.3rem, 2.25vw, 1.82rem); | |
| } | |
| .grid { | |
| position: relative; | |
| z-index: 3; | |
| display: grid; | |
| grid-template-columns: | |
| repeat(2, minmax(0, 1fr)); | |
| gap: 10px; | |
| width: | |
| min(1120px, 100%); | |
| margin: | |
| 0 auto; | |
| } | |
| .item { | |
| position: relative; | |
| display: grid; | |
| grid-template-columns: | |
| 42px minmax(0, 1fr); | |
| align-items: | |
| start; | |
| min-width: | |
| 0; | |
| padding: | |
| 15px 16px 14px 10px; | |
| border: | |
| 1px solid rgba(113, 140, 121, 0.09); | |
| background: | |
| linear-gradient( | |
| 135deg, | |
| rgba(32, 55, 39, 0.10), | |
| rgba(5, 8, 6, 0.10) 52% | |
| ); | |
| } | |
| .item::before { | |
| content: ""; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| width: 52px; | |
| height: 1px; | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| rgba(128, 156, 137, 0.38), | |
| transparent | |
| ); | |
| } | |
| .mark { | |
| position: relative; | |
| width: 38px; | |
| height: 42px; | |
| margin-top: | |
| 1px; | |
| pointer-events: | |
| none; | |
| } | |
| .mark-petal { | |
| position: absolute; | |
| top: 50%; | |
| left: 50%; | |
| width: 9px; | |
| height: 17px; | |
| margin: | |
| -16px 0 0 -4.5px; | |
| transform-origin: | |
| 4.5px 16px; | |
| border: | |
| 1px solid rgba(132, 165, 143, 0.38); | |
| border-radius: | |
| 55% 55% 45% 45% / 72% 72% 32% 32%; | |
| background: | |
| linear-gradient( | |
| 180deg, | |
| rgba(122, 157, 135, 0.33), | |
| rgba(45, 80, 57, 0.19) 54%, | |
| rgba(10, 18, 13, 0.10) | |
| ); | |
| } | |
| .mark-a { | |
| transform: | |
| rotate(0deg); | |
| } | |
| .mark-b { | |
| transform: | |
| rotate(90deg); | |
| } | |
| .mark-c { | |
| transform: | |
| rotate(180deg); | |
| } | |
| .mark-d { | |
| transform: | |
| rotate(270deg); | |
| } | |
| .mark-ring { | |
| position: absolute; | |
| top: 50%; | |
| left: 50%; | |
| width: 15px; | |
| height: 15px; | |
| transform: | |
| translate(-50%, -50%); | |
| border: | |
| 1px solid rgba(165, 182, 170, 0.31); | |
| border-radius: | |
| 50%; | |
| background: | |
| radial-gradient( | |
| circle, | |
| rgba(65, 94, 75, 0.28), | |
| rgba(11, 18, 13, 0.78) 68% | |
| ); | |
| } | |
| .mark-center { | |
| position: absolute; | |
| top: 50%; | |
| left: 50%; | |
| width: 7px; | |
| height: 7px; | |
| transform: | |
| translate(-50%, -50%); | |
| border: | |
| 1px solid rgba(181, 196, 186, 0.42); | |
| border-radius: | |
| 50%; | |
| background: | |
| radial-gradient( | |
| circle, | |
| #172119 0%, | |
| #090d0a 63%, | |
| #020302 100% | |
| ); | |
| } | |
| .copy { | |
| min-width: 0; | |
| padding: | |
| 0 0 0 4px; | |
| } | |
| .item h3 { | |
| margin: | |
| 0 0 5px; | |
| color: | |
| #ced4d0; | |
| font-family: | |
| Perpetua, | |
| Baskerville, | |
| Georgia, | |
| serif; | |
| font-size: | |
| clamp(0.95rem, 1.25vw, 1.08rem); | |
| font-weight: 600; | |
| line-height: 1.2; | |
| letter-spacing: 0.055em; | |
| text-transform: uppercase; | |
| } | |
| .item p { | |
| margin: 0; | |
| color: var(--text-soft); | |
| font-size: | |
| clamp(0.84rem, 0.97vw, 0.94rem); | |
| line-height: 1.48; | |
| overflow-wrap: normal; | |
| word-break: normal; | |
| } | |
| .item:hover { | |
| border-color: | |
| rgba(130, 160, 140, 0.16); | |
| background: | |
| linear-gradient( | |
| 135deg, | |
| rgba(42, 70, 51, 0.13), | |
| rgba(7, 10, 8, 0.10) 55% | |
| ); | |
| } | |
| .item:hover h3 { | |
| color: | |
| #e5e9e6; | |
| } | |
| .item:hover .mark-petal { | |
| border-color: | |
| rgba(148, 181, 159, 0.50); | |
| background: | |
| linear-gradient( | |
| 180deg, | |
| rgba(137, 172, 149, 0.40), | |
| rgba(50, 88, 63, 0.23) 54%, | |
| rgba(10, 18, 13, 0.10) | |
| ); | |
| } | |
| .footer { | |
| position: relative; | |
| z-index: 3; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: | |
| min(880px, 80%); | |
| margin: | |
| 48px auto 2px; | |
| } | |
| .footer-line { | |
| flex: 1; | |
| height: 1px; | |
| background: | |
| linear-gradient( | |
| 90deg, | |
| transparent, | |
| rgba(102, 131, 112, 0.26), | |
| rgba(165, 151, 169, 0.13) | |
| ); | |
| } | |
| .footer-line-right { | |
| transform: | |
| scaleX(-1); | |
| } | |
| .footer-mark { | |
| position: relative; | |
| flex: | |
| 0 0 auto; | |
| width: | |
| 18px; | |
| height: | |
| 18px; | |
| margin: | |
| 0 9px; | |
| border: | |
| 1px solid rgba(155, 174, 161, 0.20); | |
| border-radius: | |
| 50%; | |
| } | |
| .footer-mark::before, | |
| .footer-mark::after { | |
| content: ""; | |
| position: absolute; | |
| top: 50%; | |
| left: 50%; | |
| width: | |
| 4px; | |
| height: | |
| 11px; | |
| margin: | |
| -10px 0 0 -2px; | |
| transform-origin: | |
| 2px 10px; | |
| border: | |
| 1px solid rgba(180, 162, 184, 0.24); | |
| border-radius: | |
| 50%; | |
| } | |
| .footer-mark::after { | |
| transform: | |
| rotate(90deg); | |
| } | |
| .footer-name { | |
| flex: | |
| 0 0 auto; | |
| margin: | |
| 0 12px; | |
| color: | |
| rgba(163, 176, 167, 0.68); | |
| font-family: | |
| Perpetua, | |
| Baskerville, | |
| Georgia, | |
| serif; | |
| font-size: | |
| 0.76rem; | |
| font-weight: | |
| 600; | |
| letter-spacing: | |
| 0.27em; | |
| text-transform: | |
| uppercase; | |
| white-space: | |
| nowrap; | |
| } | |
| @media (max-width: 900px) { | |
| .body { | |
| padding: | |
| 44px 29px 48px; | |
| } | |
| .side { | |
| display: | |
| none; | |
| } | |
| .header { | |
| padding-bottom: | |
| 50px; | |
| } | |
| .panel { | |
| padding: | |
| 32px 25px; | |
| } | |
| .use-panel { | |
| padding: | |
| 29px 24px 31px; | |
| } | |
| } | |
| @media (max-width: 700px) { | |
| .card { | |
| margin: | |
| 24px auto; | |
| } | |
| .body { | |
| padding: | |
| 34px 15px 39px; | |
| } | |
| .body::before { | |
| inset: | |
| 7px; | |
| } | |
| .header { | |
| padding: | |
| 1px 0 42px; | |
| } | |
| .ornament { | |
| width: | |
| 84%; | |
| margin-bottom: | |
| 23px; | |
| } | |
| .ornament i { | |
| width: | |
| 5px; | |
| height: | |
| 5px; | |
| margin: | |
| 0 6px; | |
| } | |
| .ornament b { | |
| width: | |
| 31px; | |
| margin: | |
| 0 7px; | |
| } | |
| .flower { | |
| width: | |
| 70px; | |
| height: | |
| 70px; | |
| margin-bottom: | |
| 19px; | |
| } | |
| .petal { | |
| width: | |
| 16px; | |
| height: | |
| 30px; | |
| margin: | |
| -29px 0 0 -8px; | |
| transform-origin: | |
| 8px 29px; | |
| } | |
| .flower-center { | |
| width: | |
| 16px; | |
| height: | |
| 16px; | |
| } | |
| .header h1 { | |
| font-size: | |
| clamp(0.98rem, 5vw, 1.62rem); | |
| letter-spacing: | |
| 0.03em; | |
| } | |
| .title-line { | |
| width: | |
| 76%; | |
| margin-top: | |
| 19px; | |
| } | |
| .subtitle { | |
| max-width: | |
| 90%; | |
| font-size: | |
| 0.80rem; | |
| letter-spacing: | |
| 0.045em; | |
| } | |
| .panel { | |
| padding: | |
| 27px 17px; | |
| margin-bottom: | |
| 25px; | |
| } | |
| .heading { | |
| gap: | |
| 6px; | |
| margin-bottom: | |
| 23px; | |
| } | |
| .heading span { | |
| max-width: | |
| 43px; | |
| } | |
| .heading i { | |
| width: | |
| 5px; | |
| height: | |
| 5px; | |
| } | |
| .heading h2 { | |
| margin: | |
| 0 4px; | |
| font-size: | |
| 1.18rem; | |
| letter-spacing: | |
| 0.07em; | |
| } | |
| .text { | |
| margin-bottom: | |
| 24px; | |
| font-size: | |
| 0.97rem; | |
| line-height: | |
| 1.7; | |
| } | |
| .divider { | |
| width: | |
| 86%; | |
| margin: | |
| 25px auto; | |
| } | |
| .details summary { | |
| min-height: | |
| 54px; | |
| padding: | |
| 12px 15px; | |
| } | |
| .details-title { | |
| font-size: | |
| 0.82rem; | |
| letter-spacing: | |
| 0.065em; | |
| } | |
| .toggle { | |
| width: | |
| 21px; | |
| height: | |
| 21px; | |
| } | |
| .toggle::before { | |
| top: | |
| 6px; | |
| left: | |
| 7px; | |
| width: | |
| 6px; | |
| height: | |
| 6px; | |
| } | |
| .details[open] .toggle::before { | |
| top: | |
| 8px; | |
| } | |
| .details pre { | |
| padding: | |
| 18px 14px; | |
| font-size: | |
| 0.70rem; | |
| } | |
| .use-panel { | |
| padding: | |
| 25px 15px 26px; | |
| } | |
| .use-heading { | |
| margin-bottom: | |
| 20px; | |
| } | |
| .grid { | |
| grid-template-columns: | |
| 1fr; | |
| gap: | |
| 8px; | |
| } | |
| .item { | |
| grid-template-columns: | |
| 38px minmax(0, 1fr); | |
| padding: | |
| 12px 13px 12px 8px; | |
| } | |
| .mark { | |
| width: | |
| 34px; | |
| height: | |
| 38px; | |
| } | |
| .mark-petal { | |
| width: | |
| 8px; | |
| height: | |
| 15px; | |
| margin: | |
| -14px 0 0 -4px; | |
| transform-origin: | |
| 4px 14px; | |
| } | |
| .mark-ring { | |
| width: | |
| 13px; | |
| height: | |
| 13px; | |
| } | |
| .mark-center { | |
| width: | |
| 6px; | |
| height: | |
| 6px; | |
| } | |
| .item h3 { | |
| font-size: | |
| 0.93rem; | |
| } | |
| .item p { | |
| font-size: | |
| 0.84rem; | |
| line-height: | |
| 1.43; | |
| } | |
| .footer { | |
| width: | |
| 91%; | |
| margin-top: | |
| 39px; | |
| } | |
| .footer-mark { | |
| width: | |
| 14px; | |
| height: | |
| 14px; | |
| margin: | |
| 0 6px; | |
| } | |
| .footer-name { | |
| margin: | |
| 0 8px; | |
| font-size: | |
| 0.65rem; | |
| letter-spacing: | |
| 0.18em; | |
| } | |
| } | |
| </style> |