/* PRISME 0.3 — editorial imagery and native scroll choreography. */
html { scroll-padding-top: 1.5rem; scrollbar-gutter: stable; }
.site-header { background: #000; }
.site-header__nav { gap: 1.7rem; }
.site-header__quiet { min-height: 44px; display: inline-flex; align-items: center; color: #b8b8b5; font-size: .72rem; }
.chapter { padding-block: clamp(5rem, 9vw, 10rem); }
.chapter h2 { margin: 0; font-size: clamp(2.6rem, 5.5vw, 6.2rem); line-height: 1.07; letter-spacing: -.055em; font-weight: 400; }
.chapter h2 em { font: italic 1.04em/1.05 var(--serif); letter-spacing: -.06em; color: var(--gold); }
.section-copy { max-width: 460px; margin: 0; color: #b8b8b5; font-size: clamp(.95rem, 1.3vw, 1.15rem); line-height: 1.75; }
.micro-label { font-size: .76rem; line-height: 1.65; letter-spacing: .08em; text-transform: uppercase; }
.light-section { background: var(--paper); color: var(--ink); color-scheme: light; }
.light-section h2 em { color: #76603a; }
.light-section .section-copy { color: #53534e; }
.light-section :focus-visible { outline-color: #765d31; }
.text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 48px; font-size: .85rem; border-bottom: 1px solid currentColor; }
.text-link span { font-size: 1.2rem; }
.hero__eyebrow { font-size: .68rem; }
.gap { overflow: clip; }
.perception-pair { display: grid; grid-template-columns: 1fr 140px 1fr; margin-block: clamp(4rem, 7vw, 7rem); }
.perception-pair > div { min-width: 0; }
.perception-pair .micro-label { color: #62625b; margin: 0 0 1.8rem; }
.perception-pair__words { font-size: clamp(2rem, 3.6vw, 4rem); line-height: 1.18; letter-spacing: -.04em; margin: 0; }
.perception-pair__view { padding-left: 3rem; }
.perception-pair__view .perception-pair__words { color: #6a6a63; }
.perception-pair__between { display: flex; align-items: center; justify-content: center; font: 400 5rem var(--serif); color: #765d31; }
.comparison { background: #101215; }
.demo-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; margin: 3rem 0 1.25rem; }
.concept-label { margin: 0; color: #bcbcb7; font-size: .74rem; line-height: 1.6; }
.demo-switch { display: flex; border: 1px solid #484a4f; padding: 4px; }
.demo-switch button { display: flex; align-items: center; justify-content: center; gap: 1rem; min-height: 46px; padding: .65rem 1.1rem; border: 0; background: transparent; color: #bcbcb7; font-size: .8rem; line-height: 1.5; }
.demo-switch button[aria-pressed='true'] { background: var(--paper); color: #16191e; }
.demo-switch button:hover:not([aria-pressed='true']) { background: #292c32; color: #fff; }
.demo-stage { position: relative; isolation: isolate; background: #482418; color: #fff; overflow: clip; min-height: 660px; }
.comparison[data-enhanced] .demo-stage { min-height: 0; aspect-ratio: 3/2; }
.comparison[data-enhanced] .demo-messages { position: absolute; inset: 0; }
.demo-image { position: absolute; inset: 0; margin: 0; z-index: -2; }
.demo-image img { width: 100%; height: 100%; object-fit: cover; object-position: 65% center; }
.demo-stage::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, #140a05c9 0%, #140a0580 43%, transparent 73%); z-index: -1; }
.demo-messages { display: grid; }
.demo-message { min-height: 100%; padding: clamp(2rem, 4.2vw, 5rem); display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.demo-brand { font-size: .85rem; letter-spacing: .32em; margin: 0 0 3.5rem; }
.demo-message h3 { max-width: 58%; font-size: clamp(2.6rem, 5.2vw, 6rem); font-weight: 400; line-height: 1.02; letter-spacing: -.05em; margin: 0 0 2rem; }
.demo-message h3 em { font: italic 1em/1 var(--serif); }
.demo-offer { max-width: 40%; margin: 0; font-size: clamp(.85rem, 1.3vw, 1.05rem); line-height: 1.6; }
.demo-reading { margin: 1rem 0 0; font-size: .8rem; color: #b8b8b5; line-height: 1.6; }
.comparison__conclusion { margin: 5rem 0 0; font-size: clamp(1.5rem, 2.8vw, 3rem); line-height: 1.35; letter-spacing: -.035em; }
.comparison__conclusion span { color: var(--gold); }
.synergy { padding-top: clamp(5rem, 9vw, 9rem); }
.synergy > h3 { margin: 0 0 3rem; font-size: clamp(2.6rem, 5vw, 5rem); font-weight: 400; line-height: 1.05; letter-spacing: -.05em; }
.synergy > h3 em { font-family: var(--serif); color: var(--gold); }
.synergy__applications { display: grid; grid-template-columns: 1fr 1.5fr .8fr; align-items: center; gap: clamp(1rem, 2.5vw, 3rem); padding-block: 2rem 4rem; }
.application { min-width: 0; margin: 0; }
.application__visual { position: relative; isolation: isolate; overflow: hidden; background: #c48f71; color: #fff8ee; box-shadow: 0 18px 50px #0003; }
.application__visual > img { position: absolute; width: 100%; height: 100%; object-fit: cover; object-position: 74% center; z-index: -1; }
.application__visual::after { content: ''; position: absolute; inset: 0; background: linear-gradient(#0008, transparent 30%, #1f0d04c9); z-index: -1; }
.application--poster .application__visual { aspect-ratio: 3/4; padding: 1.3rem; display: flex; flex-direction: column; justify-content: space-between; }
.application__brand { font-size: .8rem; letter-spacing: .28em; }
.application__visual p { font-size: clamp(1.5rem, 2.6vw, 3rem); line-height: .98; letter-spacing: -.05em; margin: 0; font-weight: 400; }
.application--poster p { max-width: 100%; }
.application figcaption { font-size: .8rem; color: #b8b8b5; margin-top: 3.5rem; }
.application--web .application__visual { background: #ede6da; color: #38271d; }
.application--web .application__visual::after { display: none; }
.application__browser { height: 24px; background: #d4cdc2; display: flex; align-items: center; gap: 4px; padding-left: 10px; }
.application__browser i { border-radius: 50%; width: 4px; height: 4px; background: #72695d; }
.application__web-content { position: relative; height: clamp(230px, 26vw, 400px); padding: 1.5rem; display: flex; flex-direction: column; justify-content: space-between; }
.application__web-content img { position: absolute; inset: 0 0 0 auto; height: 100%; width: 48%; object-fit: cover; object-position: 76% center; }
.application__web-content .application__brand { font-size: .6rem; }
.application__web-content p { font-size: clamp(1.6rem, 3.1vw, 3.2rem); position: relative; z-index: 1; padding-block: 1.7rem; max-width: 52%; }
.application__web-content p em { font-family: var(--serif); }
.application__caption { font-size: .65rem; max-width: 45%; line-height: 1.5; }
.application--social .application__visual { aspect-ratio: 9/16; padding: 1.2rem; display: flex; flex-direction: column; justify-content: space-between; }
.application--social .application__brand { font-size: .65rem; }
.application--social .application__visual p { font-size: clamp(1.7rem, 3vw, 3.2rem); }
.application--social .application__visual p em { font-family: var(--serif); }
.concept-disclosure { margin-top: 2rem; color: #b7b8b2; font-size: .8rem; line-height: 1.8; }
.concept-disclosure summary { cursor: pointer; min-height: 44px; display: list-item; padding-block: .7rem; }
.concept-disclosure p { max-width: 760px; margin-block: .6rem 0; }
.concept-disclosure a { text-decoration: underline; text-underline-offset: .2em; }
.light-section .concept-disclosure { color: #595952; }
.sector-scenes { margin-block: 4rem; }
.sector-scene { margin: 0 0 clamp(2rem, 5vw, 5rem); }
.sector-scene__visual { position: relative; isolation: isolate; height: clamp(500px, 80svh, 900px); overflow: clip; background: #172830; color: #fff; }
.sector-scene__visual > img { position: absolute; inset: -40px 0; width: 100%; height: calc(100% + 80px); object-fit: cover; object-position: 65% center; z-index: -2; }
.sector-scene__visual::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, #000c, #0005 55%, transparent); z-index: -1; }
.sector-scene__copy { height: 100%; padding: clamp(2rem, 5.55vw, 7.5rem); display: flex; flex-direction: column; justify-content: center; }
.sector-scene__copy > p { margin: 0 0 2rem; font-size: .8rem; }
.sector-scene__copy h3 { max-width: 75%; font-size: clamp(2.6rem, 5.7vw, 6.2rem); font-weight: 400; line-height: 1.03; letter-spacing: -.045em; margin: 0; }
.sector-scene__copy h3 em { font: italic 1.02em/1 var(--serif); }
.sector-scene--industry h3 { font-family: var(--sans); font-weight: 500; }
.sector-scene--industry h3 em { font: inherit; color: #d2e6ec; }
.sector-scene--industry .sector-scene__visual::after { background: linear-gradient(90deg, #071d30e6, #071d3066 60%, transparent); }
.sector-scene--commerce .sector-scene__visual { color: #233226; background: #b4c0a4; }
.sector-scene--commerce .sector-scene__visual::after { background: linear-gradient(90deg, #e5ebdbf5 0%, #e5ebdbd9 36%, #e5ebdb40 68%, transparent); }
.sector-scene--commerce h3 { max-width: 68%; font-family: var(--serif); letter-spacing: -.035em; }
.sector-scene--commerce h3 em { font: inherit; }
.sector-scene--beauty h3 { font-family: var(--serif); letter-spacing: -.025em; }
.sector-scene--beauty h3 em { font: inherit; color: #f7d9c9; }
.sector-scene--beauty .sector-scene__visual::after { background: linear-gradient(90deg, #28020cef, #28020c55 60%, transparent); }
.sector-analysis { margin-inline: var(--gutter); border-bottom: 1px solid #c8c6bd; }
.sector-analysis summary { display: flex; justify-content: space-between; gap: 1rem; align-items: center; min-height: 62px; cursor: pointer; font-size: .9rem; list-style: none; }
.sector-analysis summary::-webkit-details-marker { display: none; }
.sector-analysis summary span { font-size: 1.7rem; }
.sector-analysis[open] summary span { transform: rotate(45deg); }
.sector-analysis > div { display: grid; grid-template-columns: .7fr 1.3fr; gap: 3rem; max-width: 1100px; padding: .5rem 0 2rem; }
.sector-analysis p { font-size: 1rem; line-height: 1.8; margin: 0; }
.sector-analysis__surface { color: #626259; }
.regard__conviction { font-size: clamp(1.8rem, 3.5vw, 3.8rem); margin: 0; line-height: 1.3; letter-spacing: -.035em; color: #68685e; }
.regard__conviction strong { color: var(--ink); font-weight: 400; }
.projection { background: #0b0c0e; overflow: clip; }
.vision-flow { list-style: none; padding: 0; margin: 5rem 0; display: grid; grid-template-columns: 1fr 1fr 1fr; position: relative; }
.vision-flow::before { content: ''; position: absolute; top: -1.5rem; left: 0; width: 100%; height: 1px; background: var(--gold); transform-origin: left; }
.vision-flow > li { position: relative; min-width: 0; padding-inline: 3rem; }
.vision-flow > li:first-child { padding-left: 0; }
.vision-flow > li:last-child { padding-right: 0; }
.vision-flow > li:not(:last-child)::after { content: '→'; position: absolute; top: 0; right: -10px; color: var(--gold); }
.vision-flow .micro-label { margin: 0 0 2rem; color: #a4a49f; }
.vision-flow ul { list-style: none; padding: 0; margin: 0; }
.vision-flow ul li { font-size: clamp(1.3rem, 2.2vw, 2.3rem); line-height: 1.5; letter-spacing: -.03em; }
.vision-flow__prisme .micro-label, .vision-flow__prisme ul li { color: #d3ba8e; }
.vision-flow__mark { display: none; }
.projection__signature { margin: 0; padding-top: 3rem; border-top: 1px solid var(--rule); font-size: clamp(1.5rem, 2.8vw, 3rem); line-height: 1.4; letter-spacing: -.035em; }
.projection__signature span { color: var(--gold); }
.outline { padding-block: clamp(4rem, 7vw, 7rem); }
.outline h2 { font-size: clamp(2.25rem, 4.6vw, 5rem); }
.outcome-list { list-style: none; padding: 0; margin: 3rem 0; display: flex; flex-wrap: wrap; gap: .6rem 1.7rem; font-size: clamp(1.3rem, 2.2vw, 2.2rem); line-height: 1.5; letter-spacing: -.035em; }
.outcome-list li:not(:last-child)::after { content: ' /'; padding-left: 1.3rem; color: #9d998e; }
.outline-tools { max-width: 900px; margin: 0; color: #65645c; font-size: .8rem; line-height: 2; }
.mission-outline__paths { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; margin-top: 3.5rem; }
.mission-outline h3 { font-size: 1.5rem; font-weight: 400; letter-spacing: -.03em; }
.mission-outline__paths p { color: #b2b3ae; max-width: 440px; line-height: 1.8; font-size: .9rem; }
.mission-outline__promise { margin: 3rem 0 0; padding-top: 2rem; border-top: 1px solid var(--rule); font-size: 1.1rem; line-height: 1.7; }
.mission-outline__promise span { color: var(--muted); }
.projections-outline { background: #e8e5de; }
.projections-outline .section-copy { margin-top: 2rem; }
.projection-spaces { list-style: none; padding: 0; margin: 3rem 0 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.projection-spaces li { min-height: 220px; display: flex; flex-direction: column; align-items: flex-start; padding: 1.5rem; background: #203b46; color: #f4f0e8; }
.projection-spaces h3 { margin: auto 0 1rem; padding-top: 2rem; font-size: 1.3rem; font-weight: 400; letter-spacing: -.035em; }
.projection-spaces p { font-size: .65rem; line-height: 1.7; margin: 0; }
.projection-spaces .projection-space--commerce { background: #d8decd; color: #31452d; }
.projection-spaces .projection-space--ecommerce { background: #dfb39a; color: #543726; }
.projection-spaces .projection-space--beauty { background: #d0c3d6; color: #4d3453; }
.method-outline__steps { list-style: none; counter-reset: method; display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; padding: 0; margin: 4rem 0 0; }
.method-outline__steps li { counter-increment: method; border-top: 1px solid #393a39; padding-top: 1rem; font-size: 1.5rem; letter-spacing: -.035em; }
.method-outline__steps li::before { content: '0' counter(method); display: block; color: var(--muted); font-size: .65rem; margin-bottom: 1rem; }
.structure-note { color: #a2a39b; font-size: .7rem; line-height: 1.7; }
.light-section .structure-note { color: #69675f; }
.last-mirror { min-height: 650px; display: flex; align-items: center; text-align: center; }
.last-mirror .shell { width: 100%; }
.last-mirror__lead { color: var(--muted); font-size: .9rem; line-height: 1.8; max-width: 420px; margin: 0 auto 3rem; }
.last-mirror h2 { font-size: clamp(2.8rem, 6.5vw, 7rem); }
.contact-outline { border-top: 1px solid var(--rule); }
.contact-outline__layout { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; }
.contact-outline .section-copy { margin-top: 2rem; }
.form-space { display: grid; margin-top: 2rem; }
.form-space span { color: #a7a89f; border-bottom: 1px solid #454541; min-height: 65px; display: flex; align-items: center; font-size: .8rem; }
