.cel-ai-card{display:flex;flex-direction:column}.cel-ai-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr;gap:.4rem}.cel-ai-list li{margin:0;padding:0}.cel-ai-btn{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;border-radius:12px;background:#ffffff0a;border:1px solid var(--border);color:var(--text);text-decoration:none;cursor:pointer;transition:background .22s ease,border-color .22s ease,transform .22s cubic-bezier(.22,1,.36,1)}.cel-ai-btn:hover{background:#0000cc1f;border-color:var(--color-celavie-light);transform:translate(2px)}.cel-ai-btn:hover .cel-ai-arrow{opacity:1;transform:translate(2px)}.cel-ai-icon{height:22px;width:auto;max-width:130px;flex-shrink:0;object-fit:contain;display:block;filter:brightness(0) invert(1);opacity:.92;transition:opacity .22s ease}.cel-ai-btn:hover .cel-ai-icon{opacity:1}.cel-ai-arrow{width:14px;height:14px;opacity:.4;flex-shrink:0;transition:opacity .22s ease,transform .22s cubic-bezier(.22,1,.36,1)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cel-accent-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--project-color, #0000CC);box-shadow:0 0 8px var(--project-color, #0000CC),0 0 18px color-mix(in srgb,var(--project-color, #0000CC) 50%,transparent);flex-shrink:0;animation:orb-breathe 4s ease-in-out infinite}.cel-logo-halo{position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,var(--project-color, #0000CC) 0%,transparent 65%);opacity:.32;filter:blur(36px);pointer-events:none;z-index:0}.cel-logo-card{border-color:color-mix(in srgb,var(--project-color, #0000CC) 18%,var(--border))!important}.cel-hero-image-wrap{position:relative}.cel-hero-image-frame{width:100%;aspect-ratio:16 / 9;border-radius:32px;overflow:hidden;position:relative;border:1px solid var(--border);box-shadow:0 24px 80px #0006}.cel-hero-image-frame:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(180deg,transparent 70%,rgba(0,0,0,.4) 100%)}.cel-marquee-band{position:sticky;top:80px;z-index:30;margin:2.5rem 0 3rem;border-top:1px solid var(--border);border-bottom:1px solid var(--border);overflow:hidden;background:#05001ac7;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}@media(min-width:768px){.cel-marquee-band{top:96px}}.cel-marquee-band:before,.cel-marquee-band:after{content:"";position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,var(--project-color, #0000CC) 50%,transparent 100%);opacity:.45;pointer-events:none}.cel-marquee-band:before{top:-1px}.cel-marquee-band:after{bottom:-1px}.cel-marquee{padding:1.5rem 0;overflow:hidden;mask-image:linear-gradient(to right,transparent 0%,black 8%,black 92%,transparent 100%);-webkit-mask-image:linear-gradient(to right,transparent 0%,black 8%,black 92%,transparent 100%)}.cel-marquee-track{display:flex;width:max-content;animation:marquee-rtl 45s linear infinite;will-change:transform}.cel-marquee-track:hover{animation-play-state:paused}.cel-marquee-set{display:flex;align-items:center;gap:1.25rem;padding-right:1.25rem;flex-shrink:0}.cel-marquee-label{font-size:.625rem;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--text-faint);font-family:ui-monospace,SFMono-Regular,monospace;white-space:nowrap}.cel-marquee-item{font-size:.875rem;font-family:ui-monospace,SFMono-Regular,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;font-weight:500}.cel-marquee-item-main{color:var(--text);font-weight:700;text-shadow:0 0 18px color-mix(in srgb,var(--project-color, #0000CC) 70%,transparent)}.cel-marquee-dot{width:4px;height:4px;border-radius:50%;background:var(--text-dim);flex-shrink:0}.cel-marquee-dot-accent{background:var(--project-color, #0000CC);box-shadow:0 0 8px color-mix(in srgb,var(--project-color, #0000CC) 70%,transparent);width:5px;height:5px}@media(prefers-reduced-motion:reduce){.cel-marquee-track{animation:none;transform:translateZ(0)}}.cel-toc-head{display:flex;align-items:center;gap:.5rem;margin-bottom:1.25rem}.cel-toc-head-dot{width:6px;height:6px;border-radius:50%;background:var(--project-color, #0000CC);box-shadow:0 0 8px color-mix(in srgb,var(--project-color, #0000CC) 80%,transparent);animation:orb-breathe 6s ease-in-out infinite}.cel-toc-head-label{font-size:.625rem;font-weight:600;letter-spacing:.25em;text-transform:uppercase;color:var(--text-faint);margin:0}.cel-toc{list-style:none;padding:0;margin:0;position:relative}.cel-toc:before{content:"";position:absolute;left:5px;top:14px;bottom:14px;width:1px;background:linear-gradient(180deg,var(--border) 0%,var(--border-strong) 50%,var(--border) 100%);pointer-events:none}.cel-toc-item{margin:0;padding:0;list-style:none;display:block}.cel-toc-link{display:flex;align-items:center;gap:.625rem;position:relative;padding:.55rem 0 .55rem 1.5rem;font-size:.8125rem;color:var(--text-muted);text-decoration:none;cursor:pointer;transition:color .25s ease,transform .25s cubic-bezier(.22,1,.36,1);white-space:nowrap}.cel-toc-link:hover{color:var(--text)}.cel-toc-link:hover .cel-toc-dot{border-color:var(--text-muted);transform:scale(1.15)}.cel-toc-dot{position:absolute;left:1px;top:50%;transform:translateY(-50%);width:9px;height:9px;border-radius:50%;background:var(--bg);border:1px solid var(--border-strong);box-shadow:0 0 0 3px var(--bg);transition:background .25s ease,border-color .25s ease,box-shadow .35s ease,transform .25s cubic-bezier(.22,1,.36,1);z-index:1}.cel-toc-num{font-family:ui-monospace,SFMono-Regular,monospace;font-size:.6875rem;font-weight:500;opacity:.45;letter-spacing:.05em;transition:opacity .25s ease,color .25s ease;flex-shrink:0}.cel-toc-label{font-weight:500;letter-spacing:-.005em}.cel-toc-link[data-active=true]{color:var(--text)}.cel-toc-link[data-active=true] .cel-toc-dot{background:var(--project-color, #0000CC);border-color:var(--project-color, #0000CC);box-shadow:0 0 0 3px var(--bg),0 0 0 5px color-mix(in srgb,var(--project-color, #0000CC) 25%,transparent),0 0 14px color-mix(in srgb,var(--project-color, #0000CC) 70%,transparent);transform:translateY(-50%) scale(1.1)}.cel-toc-link[data-active=true] .cel-toc-num{opacity:1;color:var(--project-color, #0000CC)}@media(prefers-reduced-motion:reduce){.cel-toc-head-dot{animation:none}.cel-toc-link,.cel-toc-dot{transition:none!important}}.cel-section-block{padding:2.5rem 0 3.5rem;border-top:1px solid var(--border-faint)}.cel-section-block:first-child{padding-top:0;border-top:none}.cel-section-head{margin-bottom:1.5rem}.cel-section-head-step{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.cel-section-tag{font-size:.625rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--text-faint);margin-bottom:.5rem}.cel-section-title{font-size:clamp(1.75rem,3vw,2.5rem);font-weight:700;letter-spacing:-.02em;line-height:1.1}.cel-rich p{font-size:1.0625rem;line-height:1.75;margin-bottom:1rem;color:var(--text-muted)}.cel-rich h2,.cel-rich h3,.cel-rich h4{color:var(--text);margin-top:1.75rem;margin-bottom:.75rem;font-weight:700;letter-spacing:-.02em}.cel-rich h2{font-size:1.5rem}.cel-rich h3{font-size:1.25rem}.cel-rich h4{font-size:1.125rem}.cel-rich ul,.cel-rich ol{margin:1rem 0 1.25rem 1.5rem;color:var(--text-muted)}.cel-rich ul{list-style:disc}.cel-rich ol{list-style:decimal}.cel-rich li{margin-bottom:.5rem;line-height:1.65;font-size:1.0625rem}.cel-rich a{color:var(--project-color, #0000CC);text-decoration:underline;text-underline-offset:3px}.cel-rich a:hover{filter:brightness(1.2)}.cel-rich strong{color:var(--text);font-weight:600}.cel-rich img{max-width:100%;border-radius:16px;margin:1.5rem 0}.cel-rich iframe{max-width:100%;border-radius:16px;margin:1.5rem 0;aspect-ratio:16/9;width:100%;height:auto}.cel-rich blockquote{border-left:4px solid var(--project-color, #0000CC);padding-left:1.5rem;margin:1.5rem 0;font-style:italic;color:var(--text)}.cel-rich-lead p{font-size:1.125rem;line-height:1.6}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
