/* Zen mode: a native modal keeps map shortcuts and pointer actions out of the way. */
#aster-zen{--zen-ink:#263c42;--zen-muted:#52646d;--zen-paper:#f1f1eb;box-sizing:border-box;border:0;color:var(--zen-ink);background:var(--zen-paper);padding:0;border-radius:24px;width:min(760px,calc(100% - 32px));max-height:calc(100dvh - 32px);box-shadow:0 24px 100px #14293240;font:16px/1.6 system-ui,-apple-system,"Segoe UI",sans-serif}
#aster-zen *,#aster-zen *::before,#aster-zen *::after{box-sizing:border-box}
#aster-zen::backdrop{background:#14293280;backdrop-filter:blur(5px)}
#aster-zen [hidden]{display:none!important}
#aster-zen button{font:inherit;border:1px solid #263c4229;background:#ffffffb8;color:var(--zen-ink);padding:10px 18px;border-radius:999px;cursor:pointer;min-height:44px}
#aster-zen button:hover{background:#fff}
#aster-zen button:focus-visible,#aster-zen textarea:focus-visible{outline:3px solid #596f88;outline-offset:4px}
#aster-zen button:disabled{opacity:.5;cursor:default}
#aster-zen .zen-primary{background:#304c54;color:#fff;border-color:#304c54}
#aster-zen .zen-primary:hover{background:#233e46}
#aster-zen .zen-setup{padding:32px;overflow:auto}
#aster-zen .zen-top{display:flex;justify-content:space-between;align-items:center;gap:16px}
#aster-zen .zen-eyebrow{font-size:13px;letter-spacing:.15em;text-transform:uppercase;color:var(--zen-muted);margin:0}
#aster-zen h2{font:400 clamp(30px,5vw,44px)/1.15 Georgia,serif;letter-spacing:-.025em;margin:20px 0 14px;color:var(--zen-ink)}
#aster-zen p{margin:0 0 16px}
#aster-zen .zen-help{font-size:14px;color:var(--zen-muted)}
#aster-zen label{display:block;margin:22px 0 8px;font-weight:600}
#aster-zen textarea{width:100%;min-height:155px;resize:vertical;border:1px solid #263c4240;background:#ffffffc7;color:var(--zen-ink);border-radius:14px;padding:14px;font:16px/1.5 system-ui,sans-serif}
#aster-zen .zen-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:16px 0}
#aster-zen .zen-status{font-size:14px;min-height:24px;color:var(--zen-muted);margin:10px 0}
#aster-zen .zen-error{color:#9c3528}
#aster-zen.zen-active{width:100%;max-width:none;height:100dvh;max-height:none;margin:0;border-radius:0;background:#dae5e2;overflow:hidden}
#aster-zen .zen-space{height:100%;isolation:isolate;position:relative;display:flex;flex-direction:column;overflow:hidden}
#aster-zen .zen-wash{position:absolute;inset:-20%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 22% 28%,#f3e9d4 0,transparent 54%),radial-gradient(ellipse at 75% 65%,#c7c4df 0,transparent 58%),radial-gradient(ellipse at 38% 90%,#add7d0 0,transparent 56%);animation:zen-tide 70s ease-in-out infinite alternate;will-change:transform}
#aster-zen .zen-bar{padding:max(20px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) 12px max(24px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
#aster-zen .zen-controls{display:flex;gap:10px;flex-wrap:wrap}
#aster-zen .zen-field{flex:1;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:5vh 8vw;padding:3vh 8vw}
#aster-zen .zen-phrase{display:flex;align-items:center;justify-content:center;text-align:center;margin:0;overflow-wrap:anywhere;font:400 clamp(24px,3.6vw,49px)/1.3 Georgia,serif;letter-spacing:-.02em;color:#273d49;animation:zen-focus 36s ease-in-out infinite;animation-delay:var(--zen-delay);will-change:filter,opacity,transform}
#aster-zen .zen-foot{padding:20px 24px max(24px,env(safe-area-inset-bottom));display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;color:#435d63;font-size:14px}
#aster-zen .zen-foot p{margin:0}
#aster-zen.zen-paused .zen-wash,#aster-zen.zen-paused .zen-phrase{animation-play-state:paused}
#aster-zen.zen-paused .zen-phrase{filter:none!important;opacity:1!important}
@keyframes zen-tide{from{transform:translate3d(-2%,-2%,0) scale(1)}to{transform:translate3d(3%,3%,0) scale(1.08)}}
@keyframes zen-focus{0%,100%{filter:blur(12px);opacity:.06;transform:translateY(12px)}25%,48%{filter:blur(0);opacity:.94;transform:translateY(0)}75%{filter:blur(8px);opacity:.14;transform:translateY(-10px)}}
@media(max-width:600px){#aster-zen .zen-setup{padding:24px}#aster-zen .zen-bar{padding:16px;gap:10px}#aster-zen .zen-controls{gap:8px}#aster-zen .zen-bar button{font-size:14px;padding:9px 12px}#aster-zen .zen-field{gap:16px;padding:12px 24px}#aster-zen .zen-foot{padding:12px 16px max(16px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){#aster-zen .zen-wash,#aster-zen .zen-phrase{animation:none!important;transform:none!important;filter:none!important;opacity:1!important}}

#aster-zen .zen-field[data-count="1"]{grid-template-columns:1fr;grid-template-rows:1fr} #aster-zen .zen-field[data-count="2"]{grid-template-rows:1fr}
#aster-zen .zen-modes{display:flex;gap:4px;padding:3px;border:1px solid #263c4229;border-radius:999px;background:#ffffff50}
#aster-zen .zen-modes button{border:0;background:transparent}
#aster-zen .zen-modes button[aria-pressed="true"]{background:#304c54;color:#fff}
#aster-zen .zen-field[data-mode="connections"]{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto minmax(0,1fr);gap:12px;padding:12px 12vw}
#aster-zen .zen-field[data-mode="connections"] .zen-phrase{max-width:850px;width:100%;justify-self:center}
#aster-zen .zen-meets{text-align:center;color:#435d63;font:italic 20px Georgia,serif;letter-spacing:.04em}
#aster-zen #zen-caught{font-size:13px;margin-top:5px}
#aster-zen .zen-capture{position:absolute;inset:0;z-index:3;display:grid;place-items:center;background:#dbe5e2b8;backdrop-filter:blur(8px);padding:24px;overflow:auto}
#aster-zen .zen-capture-card{width:min(560px,100%);padding:28px;border-radius:24px;background:#f1f1eb;box-shadow:0 20px 80px #14293225}
#aster-zen .zen-capture-card h2{margin-top:0}
#aster-zen .zen-capture-card label{font-weight:400;margin-top:12px}
#aster-zen .zen-capture-card .zen-help{margin-bottom:0}
@media(max-width:600px){#aster-zen .zen-bar{align-items:flex-start}#aster-zen .zen-bar .zen-controls{gap:6px}#aster-zen .zen-modes{padding:2px}#aster-zen .zen-bar .zen-eyebrow{font-size:11px;letter-spacing:.08em}#aster-zen .zen-field[data-mode="connections"]{padding:8px 24px;gap:8px}#aster-zen .zen-capture{padding:16px}#aster-zen .zen-capture-card{padding:22px}#aster-zen .zen-foot{gap:10px}}
@media(max-height:550px){#aster-zen .zen-space{overflow:auto}#aster-zen .zen-field{flex:none;min-height:240px}#aster-zen .zen-capture{position:fixed}}

/* Connections advances independently of CSS animation events. */
#aster-zen .zen-field[data-mode="connections"] .zen-phrase{animation-name:zen-pair-focus;animation-duration:14s;animation-delay:0s}
@keyframes zen-pair-focus{0%,65%{filter:blur(0);opacity:.94;transform:translateY(0)}100%{filter:blur(8px);opacity:.14;transform:translateY(-10px)}}

/* Setup uses the workspace theme; the inspiration canvas keeps its own atmosphere. */
#aster-zen:not(.zen-active){
  --zen-ink:var(--ink);--zen-muted:var(--muted);--zen-paper:var(--surface);
  width:min(640px,calc(100% - 32px));border:1px solid var(--line);
  border-radius:16px;box-shadow:var(--shadow);font:14px/1.55 var(--font);color-scheme:light;
}
body[data-theme="dark"] #aster-zen:not(.zen-active){color-scheme:dark}
#aster-zen:not(.zen-active)::backdrop{background:rgba(20,23,54,.42);backdrop-filter:blur(3px)}
#aster-zen .zen-setup{padding:24px}
#aster-zen .zen-setup .zen-top{gap:12px}
#aster-zen .zen-setup .zen-eyebrow{font-size:14px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--ink)}
#aster-zen .zen-setup h2{font:600 clamp(22px,4vw,26px)/1.25 var(--font);letter-spacing:-.02em;margin:20px 0 10px;color:var(--ink)}
#aster-zen .zen-setup p{margin:0 0 12px}
#aster-zen .zen-setup button{font:500 13px/1.4 var(--font);min-height:40px;padding:9px 14px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink)}
#aster-zen .zen-setup button:hover{background:var(--hover)}
#aster-zen .zen-setup .zen-primary{background:var(--navy);border-color:var(--navy);color:var(--onDark)}
#aster-zen .zen-setup .zen-primary:hover{background:var(--indigo);border-color:var(--indigo)}
body[data-theme="dark"] #aster-zen .zen-setup .zen-primary{background:var(--ink);border-color:var(--ink);color:var(--surface)}
body[data-theme="dark"] #aster-zen .zen-setup .zen-primary:hover{background:#d4dcef;border-color:#d4dcef}
#aster-zen .zen-setup label{margin:18px 0 8px;font-size:13px;font-weight:600}
#aster-zen .zen-setup textarea{min-height:132px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--soft);color:var(--ink);font:14px/1.5 var(--font)}
#aster-zen .zen-setup textarea::placeholder{color:var(--muted);opacity:1}
#aster-zen .zen-setup button:focus-visible,#aster-zen .zen-setup textarea:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
body[data-theme="dark"] #aster-zen .zen-setup button:focus-visible,body[data-theme="dark"] #aster-zen .zen-setup textarea:focus-visible{outline-color:var(--cyan)}
#aster-zen .zen-setup .zen-help,#aster-zen .zen-setup .zen-status{font-size:12px;line-height:1.55;color:var(--muted)}
#aster-zen .zen-setup .zen-status{min-height:0;margin:10px 0}
#aster-zen .zen-setup .zen-status:empty{display:none}
#aster-zen .zen-setup .zen-error{color:var(--bad)}
#aster-zen .zen-setup .zen-actions{gap:8px;margin:14px 0 10px}
#aster-zen .zen-setup > .zen-help:last-child{margin:16px 0 0;padding-top:14px;border-top:1px solid var(--line)}
@media(max-width:600px){
  #aster-zen .zen-setup{padding:20px}
  #aster-zen .zen-setup button{min-height:44px}
  #aster-zen .zen-setup textarea{font-size:16px}
  #aster-zen .zen-setup .zen-help,#aster-zen .zen-setup .zen-status{font-size:13px}
}
