/* Midnight 6: lilac paper, purple clay, and a real shared-canvas story. */
:root { --purple: #7051e8; --purple-dark: #5135ba; --lilac: #eee8ff; --pink: #ff83c4; --motion-ease: cubic-bezier(.22,1,.36,1); }
.page-shell { background: var(--canvas); }
.skip-link { position: fixed; top: 8px; left: 16px; z-index: 100; padding: 12px 20px; background: #fff; color: var(--ink); border-radius: 12px; transform: translateY(-160%); }
.skip-link:focus { transform: none; }
.mn-nav-link:focus-visible, button:focus-visible, a:focus-visible, summary:focus-visible { outline: 3px solid var(--purple); outline-offset: 5px; }
.anim-fu, .anim-fd, .anim-si, .anim-section { opacity: 1; transform: none; filter: none; }
.motion-ready .anim-section:not(.show) { opacity: 0; transform: translateY(16px); }
.widget-hero { position: relative; padding: 148px 0 40px; isolation: isolate; overflow: clip; }
.widget-hero::before { content: ''; position: absolute; z-index: -1; width: 820px; height: 820px; left: 52%; top: 25px; border-radius: 50%; background: radial-gradient(ellipse, #e2d6ff 0, #eee6ff 38%, transparent 70%); }
.widget-hero-grid { width: min(1180px, calc(100% - 64px)); margin: auto; display: grid; grid-template-columns: .98fr 1.12fr; align-items: center; gap: 22px; }
.widget-hero-copy { position: relative; z-index: 5; padding-bottom: 45px; }
.version-pill { display: inline-flex; gap: 9px; align-items: center; padding: 8px 13px; margin-bottom: 25px; color: var(--purple-dark); border: 1px solid #d9ccfa; background: #f0eaff; border-radius: 999px; font-size: 11px; font-weight: 800; letter-spacing: .05em; }
.version-pill::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--purple); }
.widget-hero h1 { font-size: clamp(48px, 5.8vw, 78px); letter-spacing: -.055em; line-height: 1.01; max-width: 570px; }
.widget-hero h1 span { color: var(--purple); }
.widget-hero-copy > .body-lg { max-width: 455px; margin: 25px 0 30px; font-size: 18px; }
.widget-hero .btn-primary { background: var(--purple); border-color: var(--purple); box-shadow: 0 4px 0 var(--purple-dark), 0 12px 26px #7051e822; }
.widget-hero .btn-primary:hover { background: var(--purple-dark); transform: translateY(-2px); }
.widget-hero .btn-primary:active { transform: translateY(3px); box-shadow: 0 1px 0 var(--purple-dark); }
.hero-footnote { font-size: 12px; color: var(--ink-muted); margin: 16px 0 22px; }
.hero-feature-links { display: flex; flex-wrap: wrap; gap: 10px 20px; font-size: 12px; font-weight: 700; }
.hero-feature-links a { color: var(--purple-dark); text-decoration: none; border-bottom: 1px solid #ccbef0; padding-bottom: 3px; }
.widget-scene { position: relative; min-width: 0; width: 100%; height: 638px; --sender-draw: 1; --receiver-draw: 1; }
.scene-halo { position: absolute; width: 80%; aspect-ratio: 1; border: 1px solid #daccf44a; border-radius: 50%; top: 10%; left: 10%; }
.scene-halo::before, .scene-halo::after { content: ''; position: absolute; border: 1px solid #daccf473; border-radius: 50%; inset: 11%; }
.scene-halo::after { inset: 22%; }
.demo-phone { position: absolute; width: 246px; aspect-ratio: 650 / 1318; filter: drop-shadow(8px 22px 20px #30205c26); }
.demo-phone-sender { left: 0; top: 37px; transform: rotate(-8deg); z-index: 2; }
.demo-phone-receiver { right: 4px; top: 3px; transform: rotate(7deg); z-index: 3; }
.demo-phone::before { content: ''; position: absolute; inset: 1px; border-radius: 14% / 7%; background: linear-gradient(100deg, #f6f4fa, #403d4b 3%, #b2abbf 6%, #e6e3ee 94%, #645d70 98%); }
.demo-phone-screen { position: absolute; inset: 1.8% 4.35% 1.8%; overflow: hidden; border-radius: 12% / 5.6%; background: #2b225d; }
.demo-phone-screen > img { width: 100%; height: 100%; object-fit: fill; display: block; }
.demo-phone-frame { position: absolute; z-index: 4; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.phone-caption { position: absolute; bottom: -28px; width: 100%; text-align: center; color: var(--purple-dark); font-weight: 800; font-size: 11px; letter-spacing: .015em; }
.canvas-paint { position: absolute; display: block; overflow: hidden; background: #2b225d; border-radius: 8%; }
.demo-phone-sender .canvas-paint { left: 4.13%; top: 26.34%; width: 91.74%; height: 42.29%; }
.demo-phone-receiver .canvas-paint { left: 8.59%; top: 7.96%; width: 82.72%; height: 40.03%; border-radius: 8%; }
.canvas-paint svg { display: block; width: 100%; height: 100%; }
.canvas-heart { fill: none; stroke: var(--pink); stroke-width: 4.5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; }
.sender-heart { stroke-dashoffset: calc(1 - var(--sender-draw)); }
.receiver-heart { stroke-dashoffset: calc(1 - var(--receiver-draw)); filter: drop-shadow(0 0 5px #ff83c499); }
.canvas-spark { fill: none; stroke: #fff; stroke-width: 3; stroke-linecap: round; }
.receiver-starfield { opacity: .45; }
.scene-mascot { position: absolute; z-index: 5; width: 170px; height: auto; right: 31%; bottom: 25px; pointer-events: none; filter: drop-shadow(0 15px 14px #5d348124); }
.sync-badge { position: absolute; z-index: 6; top: 48%; left: 42%; width: 82px; height: 82px; display: grid; place-items: center; border-radius: 28px; color: #fff; background: var(--purple); box-shadow: 0 8px 0 #5135ba, 0 12px 35px #38236425; transform: rotate(-9deg); opacity: 0; }
.sync-badge svg { width: 34px; height: 34px; }
.widget-scene.is-sending .sync-badge { opacity: 1; }
.scene-caption { text-align: center; color: var(--ink-muted); font-size: 12px; line-height: 1.5; margin: 3px 0 12px; }
.demo-toolbar { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 8px; }
.demo-toolbar[hidden] { display: none; }
.demo-toolbar button { min-height: 36px; padding: 7px 13px; font-family: inherit; font-size: 11px; font-weight: 800; color: var(--purple-dark); background: transparent; border: 1px solid #dcd2ef; border-radius: 999px; cursor: pointer; transition: background 100ms, transform 150ms var(--motion-ease); }
.demo-toolbar button:not([aria-pressed=true]):hover { background: var(--lilac); color: var(--purple-dark); }
.demo-toolbar button:active { transform: scale(.96); }
.demo-toolbar button[aria-pressed=true] { background: var(--purple); border-color: var(--purple); color: #fff; }
.scene-status { text-align: center; font-size: 12px; font-weight: 700; color: var(--purple-dark); min-height: 18px; margin: 10px 0 6px; }
.widget-intro-strip { display: flex; justify-content: center; gap: 36px; padding: 35px 24px; border-top: 1px solid var(--stroke-subtle); border-bottom: 1px solid var(--stroke-subtle); font-size: 12px; font-weight: 700; color: var(--ink-muted); }
.widget-intro-strip span { display: inline-flex; gap: 8px; align-items: center; }
.widget-intro-strip svg { width: 15px; height: 15px; color: var(--purple); }
.widget-collection { padding: 95px 0 100px; scroll-margin-top: 110px; }
.collection-heading { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: 42px; }
.collection-heading .display-lg { max-width: 650px; margin-top: 18px; }
.collection-heading > p { max-width: 290px; margin: 0; }
.widget-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.widget-tile { display: flex; flex-direction: column; padding: 27px 24px 24px; background: #fff; border: 1px solid var(--stroke-subtle); border-radius: 26px; min-width: 0; }
.widget-tile:first-child { background: #ece4fb; border-color: #e3d7f7; }
.widget-tile > img { width: min(210px, 90%); height: 178px; object-fit: contain; align-self: center; margin: 0 0 22px; filter: drop-shadow(0 12px 12px #573b8c15); }
.widget-tile h3 { font-size: 20px; line-height: 1.2; letter-spacing: -.03em; margin: 0 0 8px; }
.widget-tile .body-md { margin: 0 0 14px; font-size: 13px; }
.widget-access { font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--purple-dark); margin-top: auto; }
.widget-tile a { color: var(--purple-dark); text-underline-offset: 4px; font-weight: 800; font-size: 12px; margin-top: 14px; }
.all-widgets-link { text-align: center; margin-top: 30px; font-weight: 800; font-size: 13px; }
.all-widgets-link a { color: var(--purple-dark); text-underline-offset: 5px; }
.canvas-chapter { position: relative; background: #241947; color: #fff; padding: 95px 0; overflow: clip; scroll-margin-top: 70px; }
.canvas-chapter .section-inner { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 80px; }
.canvas-chapter .display-lg { color: #fff; margin: 17px 0 24px; }
.canvas-chapter .eyebrow { color: #c3adff; }
.canvas-chapter .body-lg { color: #ddd1f2; }
.canvas-chapter a { color: #e3d5ff; text-underline-offset: 5px; font-weight: 800; font-size: 13px; }
.canvas-chapter-art { position: relative; padding: 20px 35px 0; }
.canvas-chapter-art > img:first-child { width: 100%; height: auto; border-radius: 35px; transform: rotate(5deg); box-shadow: 0 30px 80px #11092180; }
.canvas-chapter-art .canvas-mascot { position: absolute; width: 45%; height: auto; bottom: -10px; left: -22px; filter: drop-shadow(0 15px 18px #0e072866); }
.canvas-steps { list-style: none; padding: 0; margin: 30px 0; display: grid; gap: 15px; font-size: 14px; }
.canvas-steps li { display: flex; align-items: center; gap: 12px; }
.canvas-steps li::before { content: attr(data-step); flex: none; display: grid; place-items: center; width: 27px; height: 27px; border: 1px solid #7654a7; color: #ccb6ff; border-radius: 50%; font-size: 11px; font-weight: 800; }
.world-field li { color: var(--purple-dark); }
.world-field li:nth-child(2n) { color: #775376; }
.world-field li:nth-child(3n+2) { color: #7658b8; }
.world-field li:nth-child(3n+3) { color: #785076; }
.feature-card > span { color: #ccb6ff; }
.feature-card:nth-child(2n) > span { color: #f4bde1; }
.feature-card > p { color: #e1d9ed; }
.closer-heading .body-lg { color: #d0c5e3; }
.closer-signals { color: #cbbdde; }
.closer-section::before { background: linear-gradient(180deg, #af8fff0d, transparent); }
.closer-signals li::before { background: #b795ff; }
.appstore-card { background: #221445; }
.appstore-section { background: var(--canvas); }
.cta-panel { background: #eee7fb; }
.cta-panel .btn-primary { background: var(--purple); border-color: var(--purple); }
.guide-main { padding: 145px 0 80px; width: min(900px, calc(100% - 40px)); margin: auto; }
.guide-main h1 { margin: 20px 0; }
.guide-main h2 { font-size: 30px; letter-spacing: -.025em; margin: 48px 0 16px; }
.guide-main h3 { font-size: 21px; margin: 24px 0 12px; }
.guide-main p, .guide-main li { color: var(--ink-muted); line-height: 1.7; font-size: 16px; }
.guide-main a:not(.btn-primary) { color: var(--purple-dark); text-underline-offset: 4px; }
.guide-lead { font-size: 20px !important; }
.guide-image { width: 210px; height: auto; float: right; margin: 0 0 30px 40px; border-radius: 24px; }
.guide-table { width: 100%; border-collapse: collapse; margin: 28px 0; font-size: 14px; }
.guide-table th, .guide-table td { text-align: left; padding: 14px 10px; border-bottom: 1px solid var(--stroke); }
.guide-table th { color: var(--purple-dark); }
.guide-related { padding: 25px; margin-top: 45px; background: var(--lilac); border-radius: 22px; }
@media (min-width: 1000px) { .widget-hero-copy { animation: v6Enter 650ms var(--motion-ease) both; } .widget-scene { animation: v6Enter 850ms 120ms var(--motion-ease) both; } }
@keyframes v6Enter { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 1120px) and (min-width: 861px) { .demo-phone { width: 210px; } .widget-scene { height: 555px; } .scene-mascot { width: 145px; } .widget-hero-grid { width: calc(100% - 48px); gap: 10px; } }
@media (max-width: 860px) {
 .widget-hero { padding-top: 112px; } .widget-hero-grid { grid-template-columns: 1fr; width: min(600px, calc(100% - 40px)); gap: 32px; }
 .widget-hero-copy { text-align: center; padding: 0; } .widget-hero h1, .widget-hero-copy > .body-lg { margin-left: auto; margin-right: auto; } .hero-feature-links { justify-content: center; }
 .widget-scene { width: min(510px, 100%); margin: auto; height: 600px; } .demo-phone { width: 230px; } .scene-mascot { width: 155px; bottom: 15px; }
 .widget-hero::before { left: 0; top: 340px; width: 100%; } .collection-heading { display: block; } .collection-heading > p { max-width: 600px; margin-top: 22px; }
 .widget-grid { grid-template-columns: repeat(2, 1fr); } .canvas-chapter .section-inner { gap: 35px; } .canvas-chapter .display-lg { font-size: 40px; }
 .widget-intro-strip { gap: 20px; flex-wrap: wrap; }
}
@media (max-width: 560px) {
 .widget-hero { padding-top: 104px; } .version-pill { margin-bottom: 20px; font-size: 10px; } .widget-hero h1 { font-size: clamp(45px, 11vw, 60px); }
 .widget-hero h1:lang(fr) { font-size: clamp(35px, 9.5vw, 48px); }
 .widget-hero-copy > .body-lg { font-size: 16px; margin-top: 22px; margin-bottom: 26px; } .hero-footnote { font-size: 11px; } .hero-feature-links { gap: 8px 18px; font-size: 11px; }
 .widget-scene { height: calc((100vw - 40px) * 1.19); max-height: 570px; } .demo-phone { width: 47.5%; } .demo-phone-sender { left: 2%; top: 22px; } .demo-phone-receiver { right: 2%; top: 0; }
 .scene-mascot { width: 28%; bottom: -4px; right: 34%; } .sync-badge { width: 54px; height: 54px; border-radius: 18px; top: 43%; left: 42%; } .sync-badge svg { width: 25px; height: 25px; }
 .phone-caption { font-size: 9px; bottom: -22px; } .scene-caption { font-size: 11px; margin-top: 18px; } .widget-intro-strip { font-size: 10px; gap: 14px; padding: 24px 16px; }
 .widget-collection { padding: 64px 0; } .collection-heading .display-lg { font-size: 37px; } .widget-grid { gap: 10px; } .widget-tile { padding: 20px 15px; border-radius: 22px; }
 .widget-tile > img { height: 130px; width: 100%; margin-bottom: 16px; } .widget-tile h3 { font-size: 18px; } .widget-tile .body-md { font-size: 12px; } .widget-tile a { font-size: 11px; }
 .canvas-chapter { padding: 65px 0 75px; } .canvas-chapter .section-inner { grid-template-columns: 1fr; gap: 25px; } .canvas-chapter-art { max-width: 370px; margin: auto; }
 .guide-image { float: none; display: block; width: 200px; margin: 25px auto; } .guide-table { font-size: 12px; } .guide-table th, .guide-table td { padding: 12px 5px; }
}
@media (prefers-reduced-motion: reduce) {
 .widget-hero-copy, .widget-scene { animation: none; } .motion-ready .anim-section:not(.show) { opacity: 1; transform: none; }
 .canvas-heart { stroke-dashoffset: 0; } .sync-badge { display: none; }
}
