/* Chapter 5, Direct the eye. Site tokens only; the kit's frame from /playbook/kit/kit.css. Glows are gradients set as
   attributes, so they are drawn, not checked as marks. The card's live colours are set by the script and never go
   below --faint against the card. */

/* the still: four panels, one grouping each, then the card before and after */
.eye-panel-s,.eye-card-s svg,.eye-field{font-family:var(--font)}
.eye-still-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;max-width:56rem;margin-inline:auto}
@media (max-width:40rem){.eye-still-grid{grid-template-columns:minmax(0,1fr)}}
.eye-panel-s{display:block;width:100%;height:auto}
.eye-frame-s{fill:none;stroke:var(--faint);stroke-width:1}
.eye-panel-s .eye-title-s{fill:var(--ink);font-size:24px}
.eye-panel-s .eye-sub-s{fill:var(--muted);font-size:17px}
.eye-ink-s{fill:var(--ink)}
.eye-lamp-s{fill:var(--halo-lamp)}
.eye-link-s{fill:none;stroke:var(--halo-lamp);stroke-width:1.2;stroke-dasharray:3 5}
.eye-ring-s{fill:none;stroke:var(--halo-lamp);stroke-width:1.5;stroke-dasharray:4 6}
.eye-panel-s .pb-line{fill:none;stroke:var(--trail);stroke-width:2;stroke-linecap:round}

.eye-cards-s{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:1.5rem;max-width:44rem;margin-inline:auto}
.eye-card-s svg{display:block;width:100%;height:auto}
.eye-card-s p{color:var(--muted);font-size:var(--t-meta);line-height:1.45;margin-top:.5rem}
.eye-card-frame-s{fill:none;stroke:var(--faint)}
.eye-badge-loud{fill:none;stroke:var(--halo-lamp);stroke-width:2}
.eye-badge-quiet{fill:none;stroke:var(--faint)}
.eye-card-s .eye-badge-t-loud{fill:var(--halo-lamp);font-size:17px;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-weight:700}
.eye-card-s .eye-badge-t-quiet{fill:var(--muted);font-size:14px;font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
.eye-bag-s{fill:none;stroke:var(--muted);stroke-width:1.5}
.eye-card-s .eye-bag-t{fill:var(--muted);font-size:15px}
.eye-card-s .eye-head-quiet{fill:var(--faint);font-size:19px}
.eye-card-s .eye-head-loud{fill:var(--spark);font-size:30px}
.eye-card-s .eye-price-loud{fill:var(--ink);font-size:46px;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-weight:700}
.eye-card-s .eye-price-quiet{fill:var(--ink);font-size:36px;font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
.eye-btn-s{fill:none;stroke:var(--ink);stroke-width:1.5}
.eye-card-s .eye-btn-t{fill:var(--ink);font-size:14px;font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
.eye-n-s{fill:var(--ground);stroke:var(--faint);stroke-width:1.2}
.eye-n-first{fill:var(--ground);stroke:var(--halo-lamp);stroke-width:2}
.eye-card-s .eye-n-t{fill:var(--ink);font-size:15px}

/* live: the layers have their own height */
.js .eye-sb .pb-stage > .pb-still,.js .eye-test .pb-stage > .pb-still{display:none}
.js .eye-sb .pb-stage > .pb-layer{display:block}
.eye-sb .pb-stage > .pb-layer,.eye-test .pb-stage > .pb-layer{position:relative;inset:auto;height:auto}
.eye-sb-layer{max-width:44rem;margin-inline:auto}
.eye-field{display:block;width:100%;height:auto;overflow:visible}
.eye-field-frame{fill:none;stroke:var(--rule)}
.eye-shape .eye-mark{stroke:none}
.eye-shape.is-ink .eye-mark{fill:var(--ink)}
.eye-shape.is-lamp .eye-mark{fill:var(--halo-lamp)}
.eye-field .pb-point .pb-ring{stroke-width:1.5}
.eye-link{fill:none;stroke:var(--muted);stroke-width:1.2;stroke-dasharray:3 5}
.eye-link.is-lamp{stroke:var(--halo-lamp)}
.eye-run{stroke:var(--trail);stroke-width:2;stroke-linecap:round}
.eye-loop{fill:none;stroke:var(--halo-lamp);stroke-width:1.5;stroke-dasharray:4 6}
@media (prefers-reduced-motion:no-preference){.eye-marks > *{animation:eye-in .6s var(--ease-draw)}}
@keyframes eye-in{from{opacity:0}}
.eye-reading{margin-top:1rem;color:var(--ink);line-height:1.5;min-height:3em}
.eye-also{color:var(--muted);font-size:var(--t-meta);min-height:1.5em}
html:not(.js) .eye-presets,html:not(.js) .eye-test-controls{display:none}

/* the test: the card beside the questions and dials */
.js .eye-test .pb-stage > .pb-layer{display:grid;grid-template-columns:minmax(0,22rem) minmax(0,1fr);gap:1.5rem 3rem;align-items:start;max-width:56rem;margin-inline:auto}
@media (max-width:48rem){.js .eye-test .pb-stage > .pb-layer{grid-template-columns:minmax(0,1fr)}}
.eye-stagebox{position:relative;width:100%;max-width:22rem}
.eye-card{position:relative;aspect-ratio:4 / 5;background:var(--ground-raised);border:1px solid var(--faint);padding:1.25rem;display:flex;flex-direction:column;align-items:center;gap:.7rem;overflow:hidden}
.eye-el{display:block;line-height:1.2}
.eye-badge,.eye-price,.eye-button{font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
.eye-badge{align-self:flex-start;border:1px solid var(--halo-lamp);padding:.3rem .55rem}
.eye-photo{width:60%;height:auto;flex:0 1 auto;min-height:0}
.eye-bag{fill:none;stroke:var(--muted);stroke-width:1.5}
.eye-photo .eye-bag-word{fill:var(--muted);font-size:13px;font-family:var(--font)}
.eye-headline{text-align:center;font-family:var(--font)}
.eye-row{margin-top:auto;width:100%;display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap}
.eye-button{border:1px solid var(--ink);padding:.45rem .7rem}
.eye-nums{position:absolute;inset:0;pointer-events:none}
.eye-n{position:absolute;width:1.5rem;height:1.5rem;display:grid;place-items:center;border-radius:50%;background:var(--ground);border:1px solid var(--faint);color:var(--ink);font-size:.8125rem;line-height:1;font-variant-numeric:lining-nums}
.eye-n.is-first{border-color:var(--halo-lamp);color:var(--halo-lamp)}
.eye-card.is-testing .eye-nums{display:none}
.eye-cover{position:absolute;inset:0;display:grid;place-items:center;padding:1.5rem;border:1px dashed var(--faint);text-align:center;color:var(--muted)}
.eye-side{min-width:0}
.eye-ask-btns{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}
.eye-result{color:var(--ink);line-height:1.5;margin:0 0 1rem;max-width:34rem}
.eye-result:empty{display:none}
.eye-pick{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem;min-width:0}
.eye-pick legend{color:var(--muted);font-size:var(--t-meta);padding:0;margin-bottom:.45rem;float:left;width:100%}
.eye-pick label{position:relative;display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:.5rem .85rem;border:1px solid var(--faint);font-size:var(--t-meta);cursor:pointer}
@media (prefers-reduced-motion:no-preference){.eye-pick label{transition:border-color .2s,background-color .2s}}
.eye-pick label:hover,.eye-pick label:has(input:checked){border-color:var(--ink)}
.eye-pick label:has(input:checked){background:var(--ground-raised)}
.eye-pick label:has(input:focus-visible){outline:1px solid var(--ink);outline-offset:3px}
.eye-pick input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.eye-dial{max-width:18rem;margin-top:.9rem;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:.1rem 1rem}
.eye-dial output{color:var(--muted);font-size:var(--t-meta);font-variant-numeric:lining-nums tabular-nums}
.eye-dial-name{font-size:var(--t-meta)}
.eye-dial .pb-dial-line{width:100%;grid-column:1 / -1}
.eye-order{list-style:decimal;padding-left:1.4rem;margin-top:1.25rem;color:var(--muted);font-size:var(--t-meta);line-height:1.6}
.eye-order li:first-child{color:var(--ink)}
.eye-formula{font-variant-numeric:lining-nums tabular-nums;padding-left:1.25rem;border-left:1px solid var(--rule);line-height:1.8}
.eye-test [hidden]{display:none!important}
