128 lines
6.6 KiB
CSS
128 lines
6.6 KiB
CSS
/* A rectangular optical enlargement, anchored to the original diagram element. */
|
|
.arit .flow .lens-target {
|
|
display: block; width: 100%; color: inherit; font: inherit; cursor: pointer;
|
|
appearance: none;
|
|
transition: transform 180ms cubic-bezier(.16, 1, .3, 1), box-shadow 180ms ease,
|
|
border-color 180ms ease, opacity 220ms ease;
|
|
}
|
|
.arit .flow .lens-target:hover {
|
|
transform: translateY(-2px); border-color: var(--bordeaux);
|
|
box-shadow: 0 5px 12px oklch(26% .02 15 / .13);
|
|
}
|
|
.arit .flow .lens-target:focus-visible, .arit .slide-lens-close:focus-visible {
|
|
outline: 3px solid var(--bordeaux); outline-offset: 4px;
|
|
}
|
|
.arit .flow .zone.built, .arit .flow > .ai-hit, .arit .flow .fbox:not(.lens-target) {
|
|
transition: opacity 220ms ease;
|
|
}
|
|
.arit.lens-active .flow .zone.built:not(:has(.lens-source)), .arit.lens-active .flow > .ai-hit,
|
|
.arit.lens-active .flow .zone.built:has(.lens-source) :is(.fbox:not(.lens-source), .farrow, .brain-btn, .fcap),
|
|
.arit.lens-active .flow .zone.existed:not(.lens-source) { opacity: .18; }
|
|
.arit .flow .lens-source {
|
|
border-color: var(--bordeaux); box-shadow: 0 0 0 3px var(--bordeaux-tint);
|
|
}
|
|
.arit .oitem.lens-target {
|
|
width: 100%; color: inherit; font: inherit; text-align: left;
|
|
background: transparent; border: 0; border-bottom: 1px solid var(--line);
|
|
appearance: none; cursor: pointer;
|
|
transition: background 180ms ease, opacity 220ms ease;
|
|
}
|
|
.arit .oitem.lens-target:last-child { border-bottom: 0; }
|
|
.arit .oitem.lens-target:hover, .arit .oitem.lens-source { background: var(--bordeaux-tint); }
|
|
.arit .oitem.lens-target:focus-visible { outline: 3px solid var(--bordeaux); outline-offset: 3px; }
|
|
.arit.crisis .crisis-points { margin-bottom: 4px; }
|
|
.arit.crisis .oitem { padding: 12px 10px; gap: 14px; }
|
|
.arit.crisis .oitem .n { flex-basis: 28px; font-size: 15px; }
|
|
.arit.crisis .oitem b { display: block; font-size: 18px; }
|
|
.arit.crisis .oitem .d { display: block; margin-top: 3px; font-size: 16px; }
|
|
.arit.crisis .sbody > .roi { padding: 12px 18px; font-size: 22px; line-height: 1.3; font-weight: 600; }
|
|
.arit.crisis .sbody > .roi .k { margin-bottom: 8px; font-size: 14px; line-height: 1.2; }
|
|
.arit.crisis.lens-active .crisis-points .oitem:not(.lens-source),
|
|
.arit.crisis.lens-active .sbody > .roi { opacity: .18; }
|
|
.arit.crisis.lens-active .sbody > :is(h2, .kicker) { opacity: 0; }
|
|
.arit.validation .onto-split :is(.oitem, .roi, .out-panel) { transition: opacity 220ms ease; }
|
|
.arit.validation.lens-active .onto-split :is(.oitem:not(.lens-source), .roi, .out-panel:not(.lens-source)) { opacity: .18; }
|
|
.arit.validation .out-panel.lens-target {
|
|
appearance: none; width: 100%; color: inherit; font: inherit; text-align: left;
|
|
cursor: pointer;
|
|
transition: transform 180ms cubic-bezier(.16, 1, .3, 1), box-shadow 180ms ease,
|
|
background 180ms ease, opacity 220ms ease;
|
|
}
|
|
.arit.validation .out-panel.lens-target:hover {
|
|
transform: translateY(-2px); background: var(--surface-alt);
|
|
box-shadow: 0 0 0 3px var(--bordeaux-tint), 0 6px 16px oklch(26% .02 15 / .14);
|
|
}
|
|
.arit.validation .out-panel.lens-target:focus-visible {
|
|
outline: 3px solid var(--bordeaux); outline-offset: 4px;
|
|
}
|
|
.arit.validation .out-panel.lens-source { box-shadow: 0 0 0 3px var(--bordeaux-tint); }
|
|
.arit.validation .out-panel.lens-target .out-item:last-of-type { border-bottom: none; }
|
|
.arit .slide-lens-guides {
|
|
position: absolute; inset: 0; width: 100%; height: 100%;
|
|
pointer-events: none; z-index: 8; overflow: visible;
|
|
}
|
|
.arit .slide-lens-guides path {
|
|
fill: none; stroke: var(--bordeaux); stroke-width: 1; opacity: .45;
|
|
}
|
|
.arit .slide-lens {
|
|
position: absolute; z-index: 9; transform-origin: 0 0;
|
|
border: 3px solid var(--bordeaux); border-radius: 9px;
|
|
background: var(--surface-alt); padding: 9px;
|
|
box-shadow: 0 22px 48px oklch(26% .02 15 / .2),
|
|
0 4px 10px oklch(26% .02 15 / .12),
|
|
inset 0 0 0 2px var(--surface), inset 0 0 0 3px var(--line-strong);
|
|
}
|
|
/* A beveled rim and a restrained reflection suggest a lens without an icon. */
|
|
.arit .slide-lens::after {
|
|
content: ''; position: absolute; inset: 5px; pointer-events: none;
|
|
border-radius: 4px; border: 1px solid oklch(99% .004 20 / .85);
|
|
background: linear-gradient(125deg, oklch(99% .004 20 / .45), transparent 26%,
|
|
transparent 78%, oklch(99% .004 20 / .25));
|
|
}
|
|
.arit .slide-lens-content { overflow: hidden; width: 100%; height: 100%; border-radius: 2px; }
|
|
.arit .slide-lens .slide-lens-copy {
|
|
margin: 0; transform-origin: 0 0; border-radius: 1px;
|
|
border-color: transparent; position: static;
|
|
}
|
|
.arit .slide-lens .slide-lens-copy.zone { position: relative; }
|
|
.arit .slide-lens.has-details .slide-lens-content { overflow-y: auto; }
|
|
.arit .slide-lens-detail { padding: 16px 18px; text-align: left; color: var(--ink); }
|
|
.arit .slide-lens-detail h3 {
|
|
margin: 0 0 12px; font: 700 30px/1.15 var(--sans); color: var(--bordeaux-deep);
|
|
}
|
|
.arit .slide-lens-detail p { margin: 0 0 10px; font: 400 17px/1.35 var(--sans); }
|
|
.arit .slide-lens-detail p:last-child { margin-bottom: 0; }
|
|
.arit .slide-lens-detail p b {
|
|
display: block; margin-bottom: 4px; font-weight: 700; color: var(--bordeaux-deep);
|
|
}
|
|
.arit .slide-lens-detail .detail-intro { font-size: 19px; line-height: 1.3; }
|
|
.arit .slide-lens-detail .detail-example { padding-top: 12px; border-top: 1px solid var(--line-strong); }
|
|
.arit .slide-lens-caption {
|
|
position: absolute; left: 0; top: -28px; color: var(--bordeaux-deep);
|
|
font: 700 11px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase;
|
|
}
|
|
.arit .slide-lens-close {
|
|
position: absolute; right: -15px; top: -15px; z-index: 1;
|
|
display: grid; place-items: center; width: 30px; height: 30px;
|
|
border: 1px solid var(--bordeaux); border-radius: 5px;
|
|
padding: 0; background: var(--surface); color: var(--bordeaux-deep);
|
|
font: 400 22px/1 var(--sans); cursor: pointer;
|
|
}
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.arit.validation .out-panel.lens-target { transition: none; }
|
|
.arit.validation .out-panel.lens-target:hover { transform: none; }
|
|
.arit.validation .onto-split :is(.oitem, .roi, .out-panel) { transition: none; }
|
|
.arit .flow .zone, .arit .flow > .ai-hit, .arit .flow .fbox { transition: none; }
|
|
.arit .flow .lens-target:hover { transform: none; }
|
|
}
|
|
@media print {
|
|
.arit.crisis.lens-active .sbody > :is(h2, .kicker) { opacity: 1; }
|
|
.arit.crisis.lens-active .crisis-points .oitem:not(.lens-source),
|
|
.arit.crisis.lens-active .sbody > .roi { opacity: 1; }
|
|
.arit.validation.lens-active .onto-split :is(.oitem, .roi, .out-panel) { opacity: 1; }
|
|
.arit .slide-lens, .arit .slide-lens-guides { display: none !important; }
|
|
.arit.lens-active .flow .zone, .arit.lens-active .flow > .ai-hit,
|
|
.arit.lens-active .flow .fbox,
|
|
.arit.lens-active .flow .zone.built:has(.lens-source) :is(.fbox, .farrow, .brain-btn, .fcap) { opacity: 1; }
|
|
}
|