/* App Mascot landing page. Scoped to preserve the rest of the portfolio. */
.app-mascot-page { --app-gap: clamp(20px, 3vw, 36px); }
.app-mascot-page .container { max-width: 1200px; }
.app-mascot-page .hero { padding: clamp(40px, 6vw, 76px) 0 60px; border-bottom: 0; }
.app-mascot-page .hero-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(32px, 5vw, 64px); align-items: center; }
.app-mascot-page h1 { font-size: clamp(40px, 4.4vw, 62px); line-height: 1.07; letter-spacing: -.045em; max-width: 660px; }
.app-mascot-page h1 > span { display: block; color: #a7e3fa; }
.app-mascot-page .hero .kicker { font-size: 10px; letter-spacing: .14em; margin-bottom: 22px; }
.app-mascot-page .hero .lead { font-size: 16px; line-height: 1.75; margin-top: 22px; max-width: 52ch; }
.app-mascot-page .hero-actions { margin-top: 26px; gap: 12px; }
.app-mascot-page .btn { min-height: 46px; padding: 12px 18px; }
.app-mascot-meta { display: flex; gap: 8px 18px; flex-wrap: wrap; margin-top: 24px; }
.app-mascot-meta span { font: 11px/1.5 var(--sans); color: var(--muted); }
.app-mascot-meta span::before { content: '✓'; color: #a7e3fa; margin-right: 6px; }
.app-mascot-hero-preview { position: relative; aspect-ratio: 1 / 1; min-height: 0; overflow: hidden; isolation: isolate; background: #0b0b0b; border: 1px solid var(--border); border-radius: 20px; }
.app-mascot-hero-preview canvas, .app-mascot-hero-preview img { position: absolute; width: 100%; height: 100%; max-width: 100%; inset: 48px 0 72px; height: calc(100% - 120px); object-fit: contain; }
.app-preview-label { position: absolute; z-index: 2; top: 22px; left: 24px; font: 10px/1.5 var(--mono); color: var(--muted); letter-spacing: .12em; }
.app-preview-label::before { content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: #a7e3fa; margin-right: 8px; }
.app-preview-caption { position: absolute; z-index: 2; bottom: 22px; left: 24px; right: 24px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.app-preview-caption strong { font: 600 13px/1.5 var(--display); }
.app-preview-caption span { font: 10px/1.5 var(--mono); color: var(--muted); }
.app-mascot-page .app-mascot-section { padding: clamp(48px, 6vw, 76px) 0; scroll-margin-top: 100px; border-top: 1px solid var(--border); }
.app-mascot-page h2 { font-size: clamp(28px, 3vw, 40px); line-height: 1.15; letter-spacing: -.035em; }
.app-mascot-page h3 { font-size: 17px; line-height: 1.35; letter-spacing: -.01em; }
.app-mascot-page .app-section-heading { margin-bottom: 28px; max-width: 760px; }
.app-eyebrow { font: 10px/1.6 var(--mono); color: #a7e3fa; letter-spacing: .12em; margin-bottom: 12px; }
.app-section-heading > p:last-child:not(.app-eyebrow) { margin-top: 14px; color: var(--muted); font-size: 15px; line-height: 1.7; max-width: 64ch; }
.app-mascot-section p { font-size: 14px; line-height: 1.75; }
.app-mascot-section p + p { margin-top: 16px; }
.app-mascot-section .grid3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; background: transparent; align-items: stretch; }
.app-mascot-section .feature { border-radius: 12px; padding: 26px; }
.app-mascot-section .feature p { font: 14px/1.75 var(--sans); color: var(--muted); }
.app-mascot-section .split { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.app-artwork .panel { border: 1px solid var(--border); border-radius: 12px; padding: 28px; }
.app-artwork .panel p { color: var(--muted); }
.app-behavior .catalog-table { margin: 26px 0; border: 1px solid var(--border); border-radius: 12px; }
.app-mascot-page .compare-table { margin: 0; width: 100%; }
.app-mascot-page .compare-table th, .app-mascot-page .compare-table td { padding: 18px 20px; font: 13px/1.65 var(--sans); vertical-align: top; }
.app-mascot-page .compare-table th { font-weight: 600; background: #101010; }
.app-behavior > .container > p { max-width: 85ch; color: var(--muted); }
/* Explicit media geometry prevents intrinsic image height and flex growth from producing tall cards. */
.app-mascot-work { display: grid; grid-template-rows: auto 1fr; min-width: 0; overflow: hidden; border-radius: 14px; }
.app-work-media { height: 230px; overflow: hidden; position: relative; background: #050505; border-bottom: 1px solid var(--border); }
.app-mascot-work .app-work-media img { display: block; width: 100%; height: 100%; max-width: 100%; object-fit: contain; }
.app-mascot-work .panel { padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.app-mascot-work h3 { margin: 0; }
.app-mascot-work p { color: var(--muted); margin: 0; }
.app-mascot-work .text-link { margin-top: auto; padding-top: 6px; font-size: 12px; }
.app-platform-note { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-top: 26px; padding: 24px 28px; border-left: 2px solid #a7e3fa; background: #0e0e0e; }
.app-platform-note p { color: var(--muted); margin: 0 !important; }
.app-platform-note a { color: var(--text); text-decoration: underline; text-underline-offset: 3px; }
.app-mobile > .container { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); column-gap: 64px; align-items: start; }
.app-mobile .app-section-heading { grid-column: 1; grid-row: 1; }
.app-mobile .ul { grid-column: 2; grid-row: 1 / span 2; list-style: none; padding: 0; margin: 0; }
.app-mobile .ul li { font: 14px/1.75 var(--sans); padding: 16px 0; border-bottom: 1px solid var(--border); color: var(--muted); }
.app-mobile .ul li:first-child { padding-top: 0; }
.app-mobile .ul strong { color: var(--text); }
.app-mobile > .container > p { grid-column: 1; color: var(--muted); font-size: 14px; max-width: 38ch; }
.app-pricing .price { padding: 28px; border-radius: 14px; display: flex; flex-direction: column; gap: 16px; margin: 0; }
.app-pricing .price h3 { margin: 0; }
.app-pricing .price .tag { align-self: start; margin: 0; }
.app-pricing .price .amount { font-size: 42px; line-height: 1.15; margin: 0; }
.app-pricing .price p { font: 13px/1.75 var(--sans); color: var(--muted); margin: 0; }
.app-pricing .price .text-link { margin-top: auto; padding-top: 14px; font-size: 12px; }
.app-pricing .catalog-packages { margin-top: 0; }
.app-pricing .catalog-packages + .small { margin-top: 24px; max-width: 90ch; font: 12px/1.7 var(--sans); }
.app-price-addons .app-addon-list { list-style: none; padding: 0; margin: 0; }
.app-addon-list li { display: flex; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--border); font-size: 13px; }
.app-addon-list strong { white-space: nowrap; color: #a7e3fa; }
.app-process .timeline { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; background: transparent; counter-reset: process; }
.app-process .step { padding: 24px; border: 1px solid var(--border); border-radius: 12px; }
.app-process .step strong { font: 600 14px/1.5 var(--display); margin-bottom: 12px; }
.app-process .step span { font: 13px/1.75 var(--sans); }
.app-faq-layout { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: 64px; align-items: start; }
.app-faq-layout .faq details { padding: 20px 0; }
.app-faq-layout .faq details:first-child { padding-top: 0; }
.app-faq-layout .faq summary { font: 500 15px/1.5 var(--sans); padding-right: 28px; position: relative; }
.app-faq-layout .faq summary::after { content: '+'; position: absolute; right: 0; top: 0; color: #a7e3fa; font-size: 20px; }
.app-faq-layout .faq details[open] summary::after { content: '−'; }
.app-faq-layout .faq p { font: 14px/1.75 var(--sans); max-width: 65ch; }
.app-inquiry .app-inquiry-inner { padding: 40px; border: 1px solid var(--border); border-radius: 16px; background: #101010; }
.app-inquiry .app-section-heading { margin-bottom: 16px; }
.app-inquiry > .container > p { max-width: 64ch; color: var(--muted); }
.app-inquiry > .container > p:last-child { margin-top: 24px; font-size: 12px; }
.app-mascot-page .app-compact-section { padding: 32px 0; }
.app-compact-section .app-section-heading { margin-bottom: 12px; }
.app-compact-section h2 { font-size: 18px; }
.app-compact-section p { font: 12px/1.7 var(--sans); color: var(--muted); }
@media (max-width: 1000px) {
 .app-mascot-page .hero-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 30px; }
 .app-mascot-page h1 { font-size: clamp(36px, 5.5vw, 52px); }
 .app-preview-caption { align-items: start; flex-direction: column; gap: 2px; }
 .app-mascot-section .grid3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .app-work .grid3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
 .app-mascot-work .panel { padding: 18px; }
 .app-work-media { height: 190px; }
 .app-pricing .grid3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
 .app-pricing .price { padding: 20px; }
 .app-process .timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .app-mobile > .container, .app-faq-layout { column-gap: 32px; }
}
@media (min-width: 721px) and (max-width: 900px) {
 .app-mascot-page .hero-grid { grid-template-columns: 1fr; }
 .app-mascot-page .hero .lead { max-width: 62ch; }
 .app-mascot-hero-preview { width: 100%; max-width: 420px; justify-self: center; }
}
@media (max-width: 720px) {
 .app-mascot-page .hero { padding: 32px 0 40px; }
 .app-mascot-page .hero-grid { grid-template-columns: 1fr; gap: 28px; }
 .app-mascot-page h1 { font-size: clamp(36px, 8vw, 50px); }
 .app-mascot-page .hero .lead { font-size: 15px; }
 .app-mascot-page .hero-actions .btn { white-space: normal; text-align: center; }
 .app-mascot-hero-preview { width: 100%; max-width: 430px; margin-inline: auto; }
 .app-preview-caption { flex-direction: row; }
 .app-mascot-page .app-mascot-section { padding: 42px 0; }
 .app-mascot-section .grid3, .app-mascot-section .split, .app-platform-note, .app-faq-layout, .app-mobile > .container { grid-template-columns: 1fr; gap: 18px; }
 .app-mobile .app-section-heading, .app-mobile .ul, .app-mobile > .container > p { grid-column: auto; grid-row: auto; }
 .app-mobile > .container > p { max-width: 100%; }
 .app-mascot-section .feature { padding: 24px; }
 .app-work-media { height: clamp(200px, 58vw, 300px); }
 .app-pricing .price { padding: 26px; }
 .app-process .timeline { grid-template-columns: 1fr 1fr; gap: 14px; }
 .app-inquiry .app-inquiry-inner { width: calc(100% - 32px); padding: 26px; }
 .app-faq-layout .app-section-heading { margin-bottom: 8px; }
 .app-compact-section h2 { font-size: 18px; }
}
@media (max-width: 420px) {
 .app-process .timeline { grid-template-columns: 1fr; }
 .app-preview-caption { flex-direction: column; }
 .app-mascot-page .hero .kicker { letter-spacing: .09em; }
}
@media (prefers-reduced-motion: reduce) {
 .app-mascot-page .feature, .app-mascot-page .price { transition: none; }
 .app-mascot-page .feature:hover, .app-mascot-page .price:hover { transform: none; }
}
