/* V8: retain the entire wireframe while the surfaces dissolve. */
.project-outline{opacity:0;pointer-events:none;transition:opacity .32s ease}
.project-outline polygon{fill:none!important;stroke:var(--ink)!important;stroke-width:.8;vector-effect:non-scaling-stroke;pointer-events:all}
.project-piece:hover .project-outline,.project-piece:focus-within .project-outline,.project-piece.is-previewed .project-outline{opacity:.85}
.project-piece:hover .project-hit,.project-piece:focus-within .project-hit,.project-link:focus-visible .project-hit{stroke:transparent!important;stroke-dasharray:none}
.project-link:focus-visible .project-outline polygon{stroke:var(--accent)!important;stroke-width:1.3}
/* Both caption states share the same type and the same dissolve as the model. */
.caption-default{opacity:1;filter:blur(0);transition:opacity .32s ease .16s,filter .32s ease .16s}
.model-caption.is-project .caption-default{opacity:0;filter:blur(7px);transition-delay:0s}
.playground .model-caption .project-panel{animation:none;opacity:0;filter:blur(7px);visibility:hidden;transition:opacity .32s ease,filter .32s ease,visibility 0s .32s}
.playground .model-caption.is-project .project-panel{opacity:1;filter:blur(0);visibility:visible;transition:opacity .32s ease .16s,filter .32s ease .16s,visibility 0s}
.model-caption .open-frame,.model-caption .project-panel h2{font-family:Arial,Helvetica,sans-serif;font-weight:400;line-height:1.04;letter-spacing:-.045em}
.model-caption .caption-detail,.model-caption .project-panel p{font-family:'Courier New',monospace;font-weight:400;line-height:1.85;letter-spacing:.025em}
/* Start with an empty stage. A single phrase passes through, then three lines stay. */
.practice-v8 .practice-stage{min-height:300px;margin-top:25px;position:relative;overflow:hidden}
.practice-v8 .conversation-pass{position:absolute;inset:4px auto auto 0;margin:0;width:100%;white-space:nowrap;font:clamp(27px,4.55vw,78px)/1.12 Arial;letter-spacing:-.055em;opacity:0;visibility:hidden;transform:translateX(110vw);transition:transform 1.15s cubic-bezier(.3,.65,.25,1),opacity .25s,visibility 0s .3s;will-change:transform}
.practice-v8 .conversation-pass em{font-family:Georgia,'Times New Roman',serif}
.practice-v8.is-conversation .conversation-pass{opacity:1;visibility:visible;transform:translateX(0);transition:transform 1.15s cubic-bezier(.3,.65,.25,1),opacity .25s,visibility 0s}
.practice-v8.is-conversation-out .conversation-pass{transform:translateX(-110vw);opacity:1;visibility:visible;transition:transform 1.15s cubic-bezier(.55,0,.7,.35)}
.practice-v8.is-phrase-gone .conversation-pass{visibility:hidden;opacity:0}
.practice-v8 .practice-rest{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:65px;align-items:center;padding:12px 0 28px}
.practice-v8 .practice-verses{min-width:0;overflow:hidden;padding:2px 0 10px}
.practice-v8 .poem-line{margin:0;opacity:0;visibility:hidden;transform:translateX(110vw);transition:transform .95s cubic-bezier(.22,.7,.22,1),opacity .35s,visibility 0s .35s;will-change:transform;font:clamp(15px,1.32vw,21px)/1.6 Arial;letter-spacing:-.015em;color:var(--muted);white-space:nowrap}
.practice-v8 .verse-feeling{margin-top:12px;font-size:clamp(12px,1.25vw,20px)}
.practice-v8 .verse-instinct{margin-top:28px;font:italic clamp(30px,3.35vw,54px)/1.15 Georgia,'Times New Roman',serif;letter-spacing:-.045em;color:var(--ink)}
.practice-v8.is-verse-place .verse-place,.practice-v8.is-verse-feeling .verse-feeling,.practice-v8.is-verse-instinct .verse-instinct{opacity:1;visibility:visible;transform:translateX(0);transition:transform .95s cubic-bezier(.22,.7,.22,1),opacity .35s,visibility 0s}
.practice-v8 .approach-link{opacity:0;visibility:hidden;transform:translateY(7px);transition:opacity .8s,transform .8s,visibility 0s .8s}
.practice-v8.is-approach .approach-link{opacity:1;visibility:visible;transform:none;transition:opacity .8s,transform .8s,visibility 0s}
.practice-v8 .practice-contact{margin-top:10px}
.practice-v8 .illustrated-link{position:relative;isolation:isolate;background:transparent;overflow:hidden}
.practice-v8 .illustrated-link:before{content:'';position:absolute;inset:0;z-index:-1;background:var(--soft);opacity:0;pointer-events:none;transition:opacity .5s}
.practice-v8.is-approach .approach-link:before,.practice-v8.is-contact .talk-link:before{animation:invitation-breathe 6s ease-in-out infinite}
.practice-v8.is-contact .talk-link:before{animation-delay:-2s}
.practice-v8 .illustrated-link:hover,.practice-v8 .illustrated-link:focus-visible{background:transparent;border-color:var(--line)}
.practice-v8 .illustrated-link:hover:before,.practice-v8 .illustrated-link:focus-visible:before{animation:none;opacity:1}
@keyframes invitation-breathe{0%,100%{opacity:.08}50%{opacity:.65}}
.practice-v8.is-rewinding .conversation-pass,.practice-v8.is-rewinding .poem-line,.practice-v8.is-rewinding .approach-link,.practice-v8.is-rewinding .practice-contact{transition:none!important}
@media(max-width:1100px){.practice-v8 .practice-rest{grid-template-columns:minmax(0,1fr) 260px;gap:25px}.practice-v8 .verse-feeling{font-size:1.25vw}}
@media(max-width:760px){.practice-v8 .practice-stage{min-height:320px;margin-top:22px}.practice-v8 .conversation-pass{font-size:4.6vw;letter-spacing:-.065em}.practice-v8 .practice-rest{grid-template-columns:minmax(0,1fr);gap:27px;padding:8px 0 24px}.practice-v8 .poem-line{font-size:13px;line-height:1.6}.practice-v8 .verse-feeling{font-size:clamp(9px,2.5vw,15px);margin-top:10px;letter-spacing:-.025em}.practice-v8 .verse-instinct{font:italic clamp(25px,6.6vw,42px)/1.15 Georgia,'Times New Roman',serif;margin-top:22px;letter-spacing:-.045em}.practice-v8 .practice-contact{margin-top:8px}}
@media(prefers-reduced-motion:reduce){.practice-v8 .conversation-pass{display:none}.practice-v8 .poem-line,.practice-v8 .approach-link,.practice-v8 .practice-contact{opacity:1;visibility:visible;transform:none}.practice-v8 .illustrated-link:before{animation:none!important;opacity:.25}.model-caption .project-panel,.caption-default{transition:none!important;filter:none!important}.project-outline{transition:none}}
