/* Public site only. Reuses the Studio palette without changing its layout. */
.public-site { --public-line: var(--border-color); --text-muted: #929297; }
body.light-theme.public-site { --text-muted: #6b6b70; }
.public-site [hidden] { display: none !important; }
.public-site #main-content { position: relative; z-index: 3; }
.public-site a { text-decoration: none; }
.public-site svg { width: 22px; height: 22px; flex-shrink: 0; }
.public-site a:focus-visible, .public-site button:focus-visible, .public-site summary:focus-visible { outline: 2px solid var(--accent-yellow); outline-offset: 5px; }
.public-site section[id] { scroll-margin-top: 110px; }
.public-site .btn-primary, .public-site .btn-secondary { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 14px 20px; border-radius: 12px; font-size: 14px; font-weight: 600; cursor: pointer; }
.public-site .btn-large { min-height: 52px; }
.public-site .landing-nav .nav-links { gap: 24px; }
.public-site .landing-nav .nav-actions { gap: 10px; }
.public-site .landing-nav .nav-cta-register { padding: 10px 16px; font-size: 13px; }
.public-site .nav-logo { color: var(--text-primary); }
.public-menu-button { display: none; padding: 8px; border: 1px solid var(--public-line); border-radius: 9px; background: transparent; color: var(--text-primary); cursor: pointer; }
.public-mobile-nav { position: absolute; top: 100%; left: 0; right: 0; display: grid; gap: 4px; padding: 12px 20px 18px; border-bottom: 1px solid var(--public-line); background: var(--bg-sidebar); box-shadow: 0 14px 24px rgba(0,0,0,.12); }
.public-mobile-nav a { padding: 12px; border-radius: 8px; color: var(--text-primary); }
.public-mobile-nav a:hover { background: var(--bg-input); }
.public-skip { position: fixed; top: 10px; left: 16px; z-index: 2000; padding: 12px; background: var(--accent-yellow); color: #111; transform: translateY(-150%); }
.public-skip:focus { transform: none; }
.public-hero { padding: 150px 0 84px; background: radial-gradient(ellipse at 80% 30%, rgba(127,127,127,.045), transparent 60%); }
.public-hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.public-hero-visual { position: relative; min-width: 0; }
.public-site .section-badge { display: inline-flex; gap: 8px; align-items: center; color: var(--accent-yellow); font-size: 11px; letter-spacing: .12em; font-weight: 700; text-transform: uppercase; margin-bottom: 16px; }
.public-hero h1 { font-family: var(--font-display); font-size: clamp(44px, 4.8vw, 66px); line-height: 1.06; letter-spacing: -.04em; font-weight: 700; }
.public-hero h1 > span { color: var(--accent-yellow); }
.public-word-cycle { display: inline-grid; vertical-align: baseline; }
.public-word-cycle > span { grid-area: 1 / 1; white-space: nowrap; }
.public-word-cuan { opacity: 0; transform: translateY(.22em); }
.public-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.public-hero-copy > p { color: var(--text-secondary); font-size: 15px; line-height: 1.8; max-width: 460px; margin-top: 24px; }
.public-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 30px; }
.public-hero-copy > .public-bonus { font-size: 12px; margin-top: 14px; }
.public-hero-art { min-width: 0; padding: 18px; border: 1px solid var(--public-line); border-radius: 26px; background: var(--bg-card); box-shadow: 0 30px 70px rgba(0,0,0,.15); }
.public-art-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 18px; }
.public-art-heading > span { display: inline-flex; align-items: center; gap: 8px; color: var(--text-primary); font-size: 12px; font-weight: 600; }
.public-art-heading > span svg { width: 24px; height: 24px; color: var(--text-secondary); }
.public-art-heading > a { display: inline-flex; align-items: center; gap: 6px; color: var(--text-muted); font-size: 10px; }
.public-art-heading > a svg { width: 14px; height: 14px; }
.public-art-grid { position: relative; height: 316px; margin-bottom: 18px; }
.public-art-grid .public-art-contour { position: absolute; inset: 0; width: 100%; height: 100%; stroke: var(--text-muted); stroke-width: 1; opacity: .22; }
.public-art-shot { position: absolute; display: block; }
.public-art-portrait { left: 0; top: 0; width: 66%; height: 100%; }
.public-art-product { right: 0; top: 48px; width: 45%; height: 238px; transform: rotate(5deg); }
.public-art-grid figure { height: 100%; position: relative; overflow: hidden; border-radius: 18px; border: 1px solid rgba(255,255,255,.16); background: #151515; box-shadow: 0 12px 28px rgba(0,0,0,.22); }
.public-art-grid img { display: block; height: 100%; width: 100%; object-fit: cover; }
.public-art-portrait img { object-position: 43% center; }
.public-art-grid figure::after { content: ''; position: absolute; inset: 0; background: linear-gradient(transparent 60%,rgba(0,0,0,.82)); pointer-events: none; }
.public-art-grid figcaption { position: absolute; z-index: 1; bottom: 16px; left: 16px; right: 14px; display: flex; align-items: end; justify-content: space-between; gap: 8px; color: white; font-family: var(--font-display); font-size: 18px; font-weight: 500; }
.public-art-grid figcaption small { display: block; margin-bottom: 4px; color: rgba(255,255,255,.7); font: 500 9px var(--font-ui); letter-spacing: .08em; }
.public-art-grid figcaption svg { width: 17px; height: 17px; }
.public-art-video { display: grid; grid-template-columns: 64px minmax(0,1fr) 18px; align-items: center; gap: 14px; padding: 14px; margin-bottom: 10px; border: 1px solid var(--public-line); border-radius: 16px; color: var(--text-primary); background: var(--bg-input); }
.public-art-video strong { font-family: var(--font-display); font-size: 16px; font-weight: 600; }
.public-art-video small { display: block; margin-top: 5px; color: var(--text-muted); font-size: 10px; line-height: 1.5; }
.public-art-video > svg { width: 18px; height: 18px; color: var(--text-muted); }
.public-motion-emblem { display: grid; place-items: center; color: var(--text-primary); }
.public-motion-emblem svg { display: block; width: 56px; height: 56px; }
.public-art-audio { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.public-art-sound { display: grid; grid-template-columns: 42px minmax(0,1fr); align-items: center; gap: 10px; min-height: 96px; padding: 14px; border: 1px solid var(--public-line); border-radius: 16px; color: var(--text-primary); background: var(--bg-input); }
.public-sound-emblem { display: grid; place-items: center; color: var(--text-primary); }
.public-sound-emblem svg { display: block; width: 42px; height: 42px; }
.public-art-sound-copy { min-width: 0; }
.public-art-sound-title { display: block; font-size: 13px; font-weight: 600; }
.public-art-sound small { display: block; margin-top: 8px; color: var(--text-muted); font-size: 10px; line-height: 1.6; }
.public-section { padding: 80px 0; border-top: 1px solid var(--public-line); }
.public-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 36px; margin-bottom: 34px; }
.public-section-heading h2, .public-credit-copy h2, .public-final-cta h2 { font-family: var(--font-display); font-size: clamp(28px, 3vw, 38px); line-height: 1.2; font-weight: 600; letter-spacing: -.025em; }
.public-section-heading > p, .public-section-heading > div > p { max-width: 380px; color: var(--text-secondary); font-size: 14px; line-height: 1.7; }
.public-service-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.public-service-card { display: flex; flex-direction: column; padding: 26px 22px; border: 1px solid var(--public-line); border-radius: 18px; color: var(--text-primary); background: var(--bg-card); transition: border-color .2s, transform .2s; }
.public-service-card:hover { transform: translateY(-4px); border-color: var(--text-muted); }
.public-service-icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--bg-input); color: var(--text-secondary); margin-bottom: 24px; }
.public-service-icon .edan-symbol { width: 32px; height: 32px; }
.public-card-label { display: block; font-size: 11px; color: var(--text-muted); margin-bottom: 8px; }
.public-service-card h3 { font-family: var(--font-display); font-size: 21px; line-height: 1.3; font-weight: 600; }
.public-service-card p { flex: 1; color: var(--text-secondary); font-size: 13px; line-height: 1.7; margin-top: 14px; }
.public-text-link { display: inline-flex; align-items: center; gap: 8px; color: var(--text-primary); font-size: 13px; font-weight: 600; }
.public-text-link svg { width: 16px; height: 16px; }
.public-service-card .public-text-link { margin-top: 24px; }
.public-model-filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 24px; }
.public-model-filters button { display: inline-flex; align-items: center; gap: 8px; padding: 11px 14px; border: 1px solid var(--public-line); background: var(--bg-card); border-radius: 11px; color: var(--text-secondary); cursor: pointer; font: 500 13px var(--font-ui); }
.public-model-filters svg { width: 17px; height: 17px; }
.public-model-filters button > span { font-size: 10px; opacity: .65; }
.public-model-filters button[aria-pressed="true"] { background: var(--bg-input); border-color: var(--text-muted); color: var(--text-primary); }
.public-model-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.public-model-card { padding: 22px; border: 1px solid var(--public-line); border-radius: 16px; background: var(--bg-card); }
.public-model-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.public-model-top > span:last-child { color: var(--text-muted); font-size: 10px; }
.public-model-icon { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--public-line); border-radius: 12px; background: var(--bg-card); color: var(--text-primary); }
.public-model-icon svg { width: 25px; height: 25px; }
.public-provider-openai { color: #10a37f; background: rgba(16,163,127,.07); border-color: rgba(16,163,127,.16); }
.public-provider-google { color: #f0a000; background: rgba(240,160,0,.07); border-color: rgba(240,160,0,.16); }
.public-provider-kling { color: #8a59ff; background: rgba(138,89,255,.07); border-color: rgba(138,89,255,.16); }
.public-provider-bytedance { color: var(--text-secondary); }
.public-provider-audio, .public-provider-lyria { color: #b38aff; background: rgba(138,89,255,.07); border-color: rgba(138,89,255,.16); }
body.light-theme .public-provider-audio, body.light-theme .public-provider-lyria { color: #7950cc; }
.public-model-card h3 { font-family: var(--font-display); font-size: 18px; font-weight: 600; }
.public-model-card p { font-size: 12px; line-height: 1.65; color: var(--text-secondary); margin-top: 8px; }
.public-model-more { display: flex; justify-content: space-between; align-items: center; margin-top: 20px; gap: 16px; }
.public-model-more p { font-size: 12px; color: var(--text-muted); }
.public-catalog-note { color: var(--text-muted); font-size: 12px; line-height: 1.7; margin: 22px 0 16px; max-width: 760px; }
.public-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); list-style: none; gap: 36px; }
.public-steps li > span { color: var(--accent-yellow); font-family: var(--font-display); font-size: 15px; display: block; margin-bottom: 18px; }
.public-steps h3 { font-size: 18px; font-family: var(--font-display); margin-bottom: 10px; }
.public-steps p { color: var(--text-secondary); font-size: 13px; line-height: 1.7; }
.public-credit-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.public-credit-copy p { color: var(--text-secondary); font-size: 14px; line-height: 1.8; max-width: 390px; margin: 20px 0; }
.public-credit-card { padding: 32px; background: var(--bg-card); border: 1px solid rgba(var(--accent-yellow-rgb),.3); border-radius: 22px; }
.public-credit-price { font-family: var(--font-display); font-size: 42px; line-height: 1.2; font-weight: 600; margin: 12px 0 22px; }
.public-credit-price span { margin-left: 10px; color: var(--text-muted); font-family: var(--font-ui); font-weight: 400; font-size: 13px; }
.public-credit-card ul { list-style: none; display: grid; gap: 12px; margin-bottom: 26px; font-size: 13px; color: var(--text-secondary); }
.public-credit-card li::before { content: '✓'; color: var(--accent-yellow); margin-right: 10px; }
.public-credit-card .btn-primary { width: 100%; }
.public-fine-print { margin-top: 14px; color: var(--text-muted); font-size: 11px; line-height: 1.6; }
.public-faq-layout { display: grid; grid-template-columns: .7fr 1fr; gap: 72px; }
.public-faq-layout .public-section-heading { display: block; }
.public-faq-layout .public-section-heading p { margin-top: 18px; }
.public-faq-layout .public-text-link { margin-top: 22px; }
.public-faq-item { border-bottom: 1px solid var(--public-line); }
.public-faq-item:first-child { border-top: 1px solid var(--public-line); }
.public-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 0; cursor: pointer; list-style: none; font-size: 14px; font-weight: 500; line-height: 1.6; }
.public-faq-item summary::-webkit-details-marker { display: none; }
.public-faq-toggle { font-size: 22px; color: var(--text-muted); transition: transform .2s; flex-shrink: 0; }
.public-faq-item[open] .public-faq-toggle { transform: rotate(45deg); color: var(--accent-yellow); }
.public-faq-answer { padding-bottom: 24px; }
.public-faq-answer p { color: var(--text-secondary); font-size: 13px; line-height: 1.85; max-width: 700px; }
.public-faq-answer p + p { margin-top: 12px; }
.public-faq-groups { min-width: 0; }
.public-faq-group + .public-faq-group { margin-top: 52px; }
.public-faq-group > header { margin-bottom: 24px; }
.public-faq-group > header h2 { font-family: var(--font-display); font-size: 26px; font-weight: 600; line-height: 1.3; }
.public-faq-group > header p { color: var(--text-secondary); font-size: 14px; line-height: 1.8; margin-top: 10px; }
.public-qna { padding: 28px 30px; border: 1px solid var(--public-line); border-radius: 18px; background: var(--bg-card); }
.public-qna + .public-qna { margin-top: 16px; }
.public-qna-label { display: block; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: var(--accent-yellow); margin-bottom: 10px; }
.public-qna h3 { font-family: var(--font-display); font-weight: 600; font-size: 21px; line-height: 1.4; }
.public-qna-answer { padding-top: 20px; margin-top: 20px; border-top: 1px solid var(--public-line); }
.public-qna-answer .public-qna-label { color: var(--text-muted); }
.public-qna-answer p { font-size: 14px; line-height: 1.9; color: var(--text-secondary); }
.public-qna-answer p + p { margin-top: 14px; }
.public-contact-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.public-contact-card { display: flex; gap: 18px; padding: 26px; border: 1px solid var(--public-line); border-radius: 18px; color: var(--text-primary); background: var(--bg-card); }
.public-contact-card:hover { border-color: rgba(var(--accent-yellow-rgb),.35); }
.public-contact-icon { color: var(--accent-yellow); display: grid; place-items: center; width: 44px; height: 44px; flex-shrink: 0; border: 1px solid rgba(var(--accent-yellow-rgb),.16); background: var(--accent-muted-yellow); border-radius: 12px; }
.public-contact-card > div { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; }
.public-contact-card h3 { font-family: var(--font-display); font-size: 20px; font-weight: 600; }
.public-contact-card p { color: var(--text-secondary); font-size: 13px; line-height: 1.8; margin-top: 14px; margin-bottom: 24px; }
.public-contact-address { color: var(--text-muted); font-size: 12px; margin-top: 8px; overflow-wrap: anywhere; }
.public-contact-action { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 600; color: var(--text-primary); margin-top: auto; }
.public-contact-action svg { width: 16px; height: 16px; }
.public-contact-guides { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 44px; margin-top: 48px; padding-top: 42px; border-top: 1px solid var(--public-line); }
.public-contact-guide h2 { font-family: var(--font-display); font-size: 24px; font-weight: 600; line-height: 1.4; margin-bottom: 16px; }
.public-contact-guide p, .public-contact-guide li { font-size: 14px; line-height: 1.85; color: var(--text-secondary); }
.public-contact-guide p + p { margin-top: 16px; }
.public-contact-guide ul { display: grid; gap: 10px; margin-top: 18px; padding-left: 18px; }
.public-contact-help { max-width: none; }
.public-final-cta { padding: 50px 0 80px; }
.public-final-cta .landing-container > div { padding: 56px 24px; border: 1px solid var(--public-line); border-radius: 24px; text-align: center; background: radial-gradient(ellipse at 50% 100%,rgba(var(--accent-yellow-rgb),.08),var(--bg-card) 70%); }
.public-final-cta p { color: var(--text-secondary); margin: 18px 0 26px; font-size: 14px; }
.public-terms-link { display: block; color: var(--text-muted); font-size: 11px; margin-top: 18px; }
.public-footer { position: relative; z-index: 3; padding: 52px 0 0; border-top: 1px solid var(--public-line); }
.public-footer-main { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: start; gap: 72px; padding-bottom: 44px; }
.public-footer .footer-brand { text-align: left; max-width: 300px; }
.public-footer .footer-brand > a { color: var(--text-primary); }
.public-footer .footer-brand p { font-size: 13px; line-height: 1.8; margin-top: 10px; }
.public-footer-links { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 36px; }
.public-footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.public-footer-column h2 { font-size: 13px; font-weight: 600; margin-bottom: 6px; line-height: 1.5; }
.public-footer-links a { color: var(--text-secondary); font-size: 12px; line-height: 1.7; }
.public-footer-links a:hover { color: var(--text-primary); }
.public-footer-bottom { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; border-top: 1px solid var(--public-line); padding: 22px 0; color: var(--text-muted); font-size: 11px; }
.public-page-container { padding-top: 126px; padding-bottom: 80px; }
.public-back { display: inline-block; color: var(--text-muted); font-size: 12px; margin-bottom: 30px; }
.public-page-heading { max-width: 800px; margin-bottom: 44px; }
.public-page-heading h1 { font-family: var(--font-display); font-size: clamp(32px,4vw,46px); line-height: 1.15; letter-spacing: -.03em; font-weight: 600; }
.public-page-heading p { margin-top: 18px; font-size: 14px; color: var(--text-secondary); line-height: 1.8; max-width: 660px; }
.public-policy-layout { display: grid; grid-template-columns: 250px minmax(0,1fr); gap: 64px; }
.public-policy-toc { position: sticky; top: 110px; align-self: start; display: grid; gap: 12px; padding: 22px; background: var(--bg-card); border: 1px solid var(--public-line); border-radius: 16px; max-height: calc(100svh - 130px); overflow-y: auto; }
.public-policy-toc h2 { font-size: 13px; margin-bottom: 6px; }
.public-policy-toc a { color: var(--text-secondary); font-size: 12px; line-height: 1.7; }
.public-policy-toc a:hover { color: var(--text-primary); }
.public-policy-toc .public-toc-help { padding-top: 18px; margin-top: 8px; border-top: 1px solid var(--public-line); color: var(--text-primary); }
.public-policy-content { max-width: 770px; }
.public-policy-content p, .public-policy-content li { font-size: 14px; color: var(--text-secondary); line-height: 1.95; }
.public-policy-intro { padding: 22px; border-left: 2px solid var(--accent-yellow); background: var(--accent-muted-yellow); border-radius: 0 12px 12px 0; margin-bottom: 32px; }
.public-policy-content section { padding: 28px 0; border-bottom: 1px solid var(--public-line); }
.public-policy-content h2 { font-family: var(--font-display); font-size: 22px; line-height: 1.4; margin-bottom: 16px; }
.public-policy-content h2 > span { color: var(--accent-yellow); }
.public-policy-content p + p { margin-top: 14px; }
.public-policy-content ul { padding-left: 20px; margin-top: 16px; display: grid; gap: 8px; }
.public-help-note { margin-top: 36px; padding: 26px 30px; border: 1px solid var(--public-line); border-radius: 16px; background: var(--bg-card); }
.public-help-note h2 { font-family: var(--font-display); font-size: 22px; font-weight: 600; line-height: 1.4; margin-bottom: 12px; }
.public-help-note p { color: var(--text-secondary); font-size: 14px; line-height: 1.8; }
.public-help-note a { display: inline-block; color: var(--text-primary); font-size: 13px; font-weight: 600; margin-top: 16px; }

/* Home motion uses transforms and opacity, with no effect on document layout. */
body.public-home .landing-grid-overlay { background-image: none; }
.public-home .public-generative { position: fixed; inset: 0; z-index: 2; overflow: hidden; pointer-events: none; user-select: none; contain: layout paint; }
.public-generative .public-flow { position: absolute; width: 1000px; height: 900px; right: -340px; top: -240px; opacity: .6; }
.public-generative .public-flow-secondary { width: 720px; height: 720px; left: -490px; right: auto; top: 38%; opacity: .5; }
.public-flow-strokes { transform-origin: center; }
.public-home.public-motion-enabled .public-flow-strokes { animation: public-ink-flow 22s ease-in-out infinite alternate; }
.public-home.public-motion-enabled .public-flow-secondary .public-flow-strokes { animation-duration: 28s; animation-delay: -14s; }
.public-home.public-motion-paused .public-flow-strokes { animation-play-state: paused; }
@keyframes public-ink-flow { from { transform: translate(-12px,12px) rotate(-3deg); } to { transform: translate(14px,-18px) rotate(3deg); } }
@media (max-width: 768px) {
  .public-generative .public-flow-primary { width: 650px; height: 585px; right: -410px; top: -100px; opacity: .5; }
  .public-generative .public-flow-secondary { display: none; }
}
.public-home .public-hero { overflow: clip; }
.public-home .public-hero-visual::before { content: ''; position: absolute; inset: -42px; border-radius: 50%; pointer-events: none; background: radial-gradient(ellipse, rgba(127,127,127,.12), transparent 68%); opacity: .5; }
.public-home .public-hero-art { position: relative; }
.public-home .public-art-grid figure::before { content: ''; position: absolute; z-index: 1; top: -15%; left: -75%; width: 50%; height: 130%; background: linear-gradient(90deg,transparent,rgba(255,255,255,.12),transparent); transform: skewX(-18deg); pointer-events: none; }
.public-home.public-motion-enabled .public-hero-visual::before { animation: public-glow-drift 12s ease-in-out infinite alternate; animation-play-state: paused; }
.public-home.public-motion-enabled .public-art-grid img { animation: public-art-zoom 14s ease-in-out infinite alternate; animation-play-state: paused; }
.public-home.public-motion-enabled .public-art-product img { animation-delay: -7s; }
.public-home.public-motion-enabled .public-art-grid figure::before { animation: public-render-sheen 12s ease-in-out infinite; animation-play-state: paused; }
.public-home.public-motion-enabled .public-art-product figure::before { animation-delay: -6s; }
.public-home.public-motion-enabled .public-motion-emblem .edan-symbol-trail { animation: public-emblem-trail 3s ease-in-out infinite alternate; animation-play-state: paused; transform-origin: 11px 28px; }
.public-home.public-motion-enabled .public-sound-emblem .edan-symbol-echo { animation: public-emblem-echo 3s ease-in-out infinite alternate; animation-play-state: paused; }
.public-home.public-motion-enabled .public-sound-emblem .edan-symbol-score { animation: public-emblem-score 4s ease-in-out infinite alternate; animation-play-state: paused; }
.public-home.public-motion-enabled .public-word-karya { animation: public-word-karya 8s ease-in-out infinite; animation-play-state: paused; }
.public-home.public-motion-enabled .public-word-cuan { animation: public-word-cuan 8s ease-in-out infinite; animation-play-state: paused; }
.public-home.public-motion-enabled.public-hero-in-view .public-hero-visual::before,
.public-home.public-motion-enabled.public-hero-in-view .public-art-grid img,
.public-home.public-motion-enabled.public-hero-in-view .public-art-grid figure::before,
.public-home.public-motion-enabled.public-hero-in-view .public-motion-emblem .edan-symbol-trail,
.public-home.public-motion-enabled.public-hero-in-view .public-sound-emblem .edan-symbol-echo,
.public-home.public-motion-enabled.public-hero-in-view .public-sound-emblem .edan-symbol-score,
.public-home.public-motion-enabled.public-hero-in-view .public-word-cycle > span { animation-play-state: running; }
.public-home.public-motion-paused .public-hero-visual::before,
.public-home.public-motion-paused .public-art-grid img,
.public-home.public-motion-paused .public-art-grid figure::before,
.public-home.public-motion-paused .public-motion-emblem .edan-symbol-trail,
.public-home.public-motion-paused .public-sound-emblem .edan-symbol-echo,
.public-home.public-motion-paused .public-sound-emblem .edan-symbol-score,
.public-home.public-motion-paused .public-word-cycle > span { animation-play-state: paused !important; }
.public-home .public-model-card, .public-home .public-contact-card { transition: border-color .25s, box-shadow .25s, translate .25s; }
.public-home .public-text-link svg, .public-home .public-contact-action svg, .public-home .public-hero-actions svg { transition: translate .25s; }
@keyframes public-glow-drift {
  from { opacity: .4; transform: translate(-12px, 10px) scale(.94); }
  to { opacity: .8; transform: translate(12px, -10px) scale(1.04); }
}
@keyframes public-art-zoom { from { transform: scale(1); } to { transform: scale(1.045); } }
@keyframes public-render-sheen { 0%, 65% { transform: translateX(0) skewX(-18deg); } 100% { transform: translateX(400%) skewX(-18deg); } }
@keyframes public-emblem-trail { from { transform: rotate(-4deg); } to { transform: rotate(0deg); } }
@keyframes public-emblem-echo { from { opacity: .55; } to { opacity: .9; } }
@keyframes public-emblem-score { from { opacity: .25; transform: translateY(0); } to { opacity: .45; transform: translateY(1px); } }
@keyframes public-word-karya {
  0%, 40%, 100% { opacity: 1; transform: translateY(0); }
  47%, 90% { opacity: 0; transform: translateY(-.22em); }
  91% { opacity: 0; transform: translateY(.22em); }
  97% { opacity: 1; transform: translateY(0); }
}
@keyframes public-word-cuan {
  0%, 40% { opacity: 0; transform: translateY(.22em); }
  47%, 90% { opacity: 1; transform: translateY(0); }
  97%, 100% { opacity: 0; transform: translateY(-.22em); }
}
@media (hover: hover) and (pointer: fine) {
  .public-home.public-motion-enabled .public-model-card:hover,
  .public-home.public-motion-enabled .public-contact-card:hover { translate: 0 -4px; border-color: var(--text-muted); box-shadow: 0 12px 28px rgba(0,0,0,.08); }
  .public-home.public-motion-enabled .public-service-card:hover .public-text-link svg,
  .public-home.public-motion-enabled .public-text-link:hover svg,
  .public-home.public-motion-enabled .public-contact-card:hover .public-contact-action svg,
  .public-home.public-motion-enabled .public-hero-actions a:hover svg { translate: 3px 0; }
}
.public-home:not(.public-motion-enabled) .public-service-card:hover { transform: none; }
@media (max-width: 1050px) {
  .public-site .landing-nav .nav-links.desktop-only { display: none; }
  .public-menu-button { display: inline-flex; }
  .public-hero-grid { gap: 32px; }
  .public-service-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .public-faq-layout, .public-credit-layout { gap: 40px; }
  .public-art-grid { height: 272px; }
  .public-art-product { height: 208px; top: 40px; }
}
@media (max-width: 768px) {
  .public-site .landing-container { padding-left: 20px; padding-right: 20px; }
  .public-hero { padding: 115px 0 56px; }
  .public-hero-grid { grid-template-columns: minmax(0,1fr); gap: 36px; }
  .public-hero h1 { font-size: 48px; }
  .public-hero-art { max-width: 520px; transform: none; }
  .public-art-grid { height: 316px; }
  .public-art-product { height: 238px; top: 48px; }
  .public-section { padding: 56px 0; }
  .public-section-heading { display: block; margin-bottom: 26px; }
  .public-section-heading > p { margin-top: 16px; }
  .public-model-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .public-credit-layout, .public-faq-layout, .public-policy-layout { grid-template-columns: minmax(0,1fr); gap: 30px; }
  .public-policy-toc { position: static; gap: 12px; grid-template-columns: repeat(2,minmax(0,1fr)); max-height: none; overflow: visible; }
  .public-policy-toc h2 { grid-column: 1 / -1; }
  .public-steps { gap: 20px; }
  .public-final-cta { padding-bottom: 56px; }
  .public-page-container { padding-top: 102px; padding-bottom: 56px; }
  .public-contact-grid { grid-template-columns: minmax(0,1fr); }
  .public-footer-main { grid-template-columns: minmax(0,1fr); gap: 34px; padding-bottom: 34px; }
  .public-footer .footer-brand { max-width: 360px; }
  .public-contact-guides { grid-template-columns: minmax(0,1fr); gap: 32px; margin-top: 36px; padding-top: 32px; }
}
@media (max-width: 480px) {
  .public-site .landing-nav .brand-text { font-size: 15px; letter-spacing: 0; }
  .public-site .landing-nav .nav-logo { gap: 6px; }
  .public-site .landing-nav .brand-icon { width: 22px; height: 22px; }
  .public-site .landing-nav .nav-actions { gap: 7px; }
  .public-site .landing-nav .btn-theme-toggle { display: flex; width: 32px; height: 32px; }
  .public-site .landing-nav .nav-cta-register { padding: 9px 12px; }
  .public-menu-button { padding: 5px; }
  .public-menu-button svg { width: 20px; height: 20px; }
  .public-hero h1 { font-size: 44px; }
  .public-hero-actions { flex-direction: column; }
  .public-hero-actions a { width: 100%; }
  .public-hero-art { padding: 14px; border-radius: 22px; }
  .public-art-grid { height: 246px; margin-bottom: 14px; }
  .public-art-product { height: 184px; top: 36px; }
  .public-art-grid figure { border-radius: 14px; }
  .public-art-grid figcaption { bottom: 12px; left: 12px; right: 10px; font-size: 16px; }
  .public-art-grid figcaption small { font-size: 8px; }
  .public-art-video { grid-template-columns: 46px minmax(0,1fr) 16px; gap: 10px; padding: 12px; }
  .public-art-video strong { font-size: 14px; }
  .public-art-video small { font-size: 9px; }
  .public-motion-emblem svg { width: 42px; height: 42px; }
  .public-art-sound { padding: 12px; grid-template-columns: 32px minmax(0,1fr); gap: 8px; }
  .public-sound-emblem svg { width: 32px; height: 32px; }
  .public-art-sound-title { font-size: 12px; }
  .public-art-sound small { font-size: 9px; }
  .public-service-grid, .public-model-grid, .public-steps { grid-template-columns: minmax(0,1fr); }
  .public-service-card { padding: 24px; }
  .public-service-icon { margin-bottom: 18px; }
  .public-model-filters { gap: 8px; }
  .public-model-filters button { font-size: 11px; padding: 10px; }
  .public-model-filters button > span { display: none; }
  .public-model-more { flex-direction: column; align-items: flex-start; }
  .public-credit-card { padding: 26px 22px; }
  .public-credit-price { font-size: 36px; }
  .public-contact-card { padding: 22px; }
  .public-contact-card { gap: 14px; }
  .public-contact-icon { width: 38px; height: 38px; }
  .public-contact-card h3 { font-size: 20px; }
  .public-qna { padding: 22px; }
  .public-qna h3 { font-size: 19px; }
  .public-qna-answer p { font-size: 13px; }
  .public-faq-group > header h2 { font-size: 24px; }
  .public-help-note { padding: 22px; }
  .public-footer { padding-top: 40px; }
  .public-footer-links { gap: 24px; }
  .public-footer-links a { font-size: 12px; }
  .public-policy-toc { grid-template-columns: minmax(0,1fr); }
  .public-policy-content p, .public-policy-content li { font-size: 13px; }
  .public-policy-content h2 { font-size: 20px; }
}
@media (max-width: 360px) {
  .public-art-grid { height: 218px; }
  .public-art-product { height: 166px; top: 30px; }
  .public-art-sound { grid-template-columns: 26px minmax(0,1fr); padding: 10px; gap: 6px; }
  .public-sound-emblem svg { width: 26px; height: 26px; }
  .public-art-sound-title { font-size: 11px; }
  .public-site .landing-nav .landing-nav-container { padding: 0 12px; }
  .public-site .landing-nav .brand-text { font-size: 13px; }
  .public-site .landing-nav .nav-actions { gap: 5px; }
  .public-site .landing-nav .nav-cta-register { padding: 8px 9px; font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) { .public-site, .public-site::before, .public-site::after, .public-site *, .public-site *::before, .public-site *::after { animation: none !important; scroll-behavior: auto !important; transition: none !important; } }
