.pyr-home{position:relative;display:grid;justify-items:center;min-height:510px;padding:28px 0 32px;isolation:isolate}.pyr-home:before{content:"";position:absolute;z-index:-1;inset:0 8%;background:radial-gradient(ellipse at 50% 49%,rgba(8,35,83,.9),rgba(7,26,64,.67) 39%,rgba(4,12,27,0) 72%);pointer-events:none}.pyr-home-title{font-size:clamp(1rem,2vw,1.25rem);font-weight:900;letter-spacing:.24em;text-align:center;text-shadow:0 0 18px #8dd9ff,0 0 42px #3b91ee99;margin:0;color:#ffe5ae}.pyr-home-scene{position:relative;width:min(100%,620px);height:400px;display:grid;place-items:center}.pyr-home-canvas{width:min(100%,600px);height:auto;display:block;filter:drop-shadow(0 16px 22px #000b) drop-shadow(0 0 25px #328bff66);transition:transform .28s ease,filter .28s ease}.pyr-home-scene:hover .pyr-home-canvas{transform:scale(1.035);filter:drop-shadow(0 18px 25px #000c) drop-shadow(0 0 32px #64c3ff99)}.pyr-home-open{position:absolute;z-index:3;inset:0;width:100%;border:0;background:transparent;color:transparent;cursor:pointer}.pyr-home-open:focus-visible{outline:3px solid #ffe1a1;outline-offset:-12px;border-radius:20px}.pyr-home-cue{margin:-10px 0 0;color:#e3c593;text-align:center;font-size:.91rem;letter-spacing:.04em}
.pyr-home-dialog{width:min(570px,calc(100vw - 28px));max-height:min(88vh,740px);padding:0;border:1px solid #c99c67;border-radius:20px;color:#f7ead2;background:linear-gradient(145deg,#17202a,#1d1a20 72%,#30241c);box-shadow:0 25px 90px #000e;overflow:auto}.pyr-home-dialog::backdrop{background:#02050bcc;backdrop-filter:blur(5px)}.pyr-home-dialog-inner{padding:clamp(18px,3vw,30px)}.pyr-home-dialog header{display:flex;justify-content:space-between;align-items:start;gap:15px}.pyr-home-dialog h2{margin:0;font-size:clamp(1.5rem,3vw,2rem);color:#ffe4ac}.pyr-home-dialog h3{margin:19px 0 8px;font-size:1rem;color:#f9d79b}.pyr-home-dialog p{color:#d4c6b4;line-height:1.48;margin:8px 0}.pyr-home-dialog .pyr-home-close{width:38px;height:38px;flex:none;border:1px solid #8e7658;border-radius:50%;background:#302921;color:#ffe6c2;font-size:1.35rem;line-height:1}.pyr-home-dialog label{display:block;margin-bottom:7px;font-weight:800;color:#f9dfb4}.pyr-home-dialog input,.pyr-home-dialog textarea{width:100%;min-height:44px;border:1px solid #8e7658;border-radius:10px;background:#0d1621;color:#fff;padding:10px 12px;font:inherit}.pyr-home-dialog textarea{min-height:190px;resize:vertical;white-space:pre;overflow:auto;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.94rem;line-height:1.4;tab-size:2}.pyr-home-dialog input:focus,.pyr-home-dialog textarea:focus{outline:2px solid #f8d692;outline-offset:2px}.pyr-home-dialog form{border-top:1px solid #6e5742;margin-top:18px;padding-top:16px}.pyr-home-dialog form button{min-height:43px;padding:9px 18px;border:0;border-radius:999px;background:linear-gradient(90deg,#e5af67,#f5d99d);color:#2f1a0c;font-weight:900}.pyr-home-dialog form button:disabled{opacity:.5}.pyr-home-results{display:grid;gap:7px;max-height:150px;overflow:auto;margin-top:10px}.pyr-home-results button{text-align:left;padding:9px 11px;border:1px solid #735c42;border-radius:9px;background:#211f22;color:#ffedcf;white-space:pre-wrap;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.pyr-home-results button:hover{border-color:#f7d596}.pyr-home-detail{min-height:42px;margin:9px 0;padding:10px;border:1px solid #705c46;border-radius:9px;background:#131b24;white-space:pre-wrap;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.pyr-home-status{min-height:21px}.pyr-home-dialog .pyr-home-privacy{font-size:.83rem;color:#baa996}
@media(max-width:650px){.pyr-home{min-height:390px;padding:20px 0 24px}.pyr-home-scene{height:305px}.pyr-home-canvas{width:min(100%,450px)}}@media(prefers-reduced-motion:reduce){.pyr-home-canvas{transition:none}}

.pyr-art-tools{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 10px}.pyr-home-dialog .pyr-art-tools button{min-height:34px;padding:6px 10px;border:1px solid #668bac;border-radius:999px;background:#153451;color:#d8f4ff;font-size:.78rem;font-weight:750;cursor:pointer}.pyr-home-dialog .pyr-art-tools button:hover{background:#23587e;border-color:#a6eaff}.pyr-art-meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:6px 0 12px;color:#baa996;font-size:.79rem}.pyr-art-preview{margin:10px 0 14px;border:1px solid #526f8b;border-radius:10px;background:#081827}.pyr-art-preview summary{padding:9px 12px;color:#d8efff;font-size:.86rem;font-weight:800;cursor:pointer}.pyr-art-preview pre{min-height:55px;max-height:220px;overflow:auto;margin:0;padding:10px 12px;border-top:1px solid #344d66;color:#d6efff;white-space:pre;font: .9rem/1.35 ui-monospace,SFMono-Regular,Consolas,monospace}
.pyr-home-results button.character-art,.pyr-home-detail.character-art{white-space:pre;overflow:auto;overflow-wrap:normal}

/* A compact, roaming portal on the homepage. */
.pyr-home.pyr-roaming{--pyr-width:180px;position:fixed;z-index:34;left:12px;top:var(--pyr-top,110px);width:var(--pyr-width);height:calc(var(--pyr-width) * 2 / 3);min-height:0;margin:0;padding:0;display:block;pointer-events:none;animation:pyr-roam 110s ease-in-out infinite;will-change:transform}
.pyr-home.pyr-roaming::before{display:none}
.pyr-roaming .pyr-home-title,.pyr-roaming .pyr-home-cue{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.pyr-roaming .pyr-home-scene{width:100%;height:100%;pointer-events:none}
.pyr-roaming .pyr-home-canvas{width:100%;height:auto;filter:drop-shadow(0 0 10px #328bff66)}
.pyr-roaming .pyr-home-open{inset:10% 20% 9%;width:60%;height:81%;pointer-events:auto;touch-action:manipulation}
.pyr-roaming .pyr-home-open:focus-visible{outline:2px solid #a8ecff;outline-offset:3px;border-radius:12px}
.pyr-roaming .pyr-home-dialog{pointer-events:auto}
.pyr-roaming:hover,.pyr-roaming:focus-within,.pyr-roaming.pyr-dialog-open{animation-play-state:paused}
.pyr-roaming.pyr-behind-brain .pyr-home-scene{visibility:hidden}
@keyframes pyr-roam{
  0%,100%{transform:translate3d(0,0,0)}
  24%{transform:translate3d(var(--pyr-travel-x,60vw),calc(var(--pyr-travel-y,45vh) * .35),0)}
  50%{transform:translate3d(calc(var(--pyr-travel-x,60vw) * .82),var(--pyr-travel-y,45vh),0)}
  76%{transform:translate3d(0,calc(var(--pyr-travel-y,45vh) * .78),0)}
}
@media(max-width:650px){.pyr-home.pyr-roaming{--pyr-width:132px}}
@media(prefers-reduced-motion:reduce){.pyr-home.pyr-roaming{animation:none;will-change:auto}}
