:root{color:#d9dce2;background:#111318;font-family:Georgia,Noto Serif SC,serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 80% 10%,#272632 0,#0000 34%),#111318;margin:0}main{min-height:100dvh;padding:max(0px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));grid-template-rows:64px 1fr auto;display:grid;overflow:hidden}header{letter-spacing:.18em;border-bottom:1px solid #444753;justify-content:space-between;align-items:center;font-size:12px;display:flex}.sigil,.eyebrow{color:#fa3f83}.ritual{place-items:center;padding:32px 0;display:grid}.ask,.waiting,.reveal,.error-pane{width:min(590px,100%)}h1{margin:0 0 30px;font-size:clamp(38px,7vw,76px);font-weight:400;line-height:1.02}label,.hint,footer,p{color:#b9bdc7;font-size:15px;line-height:1.65}textarea{color:#eee;width:100%;min-height:116px;font:inherit;resize:vertical;background:#1a1d24;border:1px solid #4c505a;margin:10px 0 4px;padding:16px}textarea:focus-visible,button:focus-visible{outline-offset:3px;outline:3px solid #fa3f83}.hint{text-align:right}.error{color:#ff9ab9}button{color:#1a1116;cursor:pointer;background:#fa3f83;border:1px solid #fa3f83;min-height:52px;margin-top:24px;padding:0 25px;font:600 15px Georgia,serif}.back{aspect-ratio:2/3;color:#fa3f83;background:linear-gradient(145deg,#282b35,#15171d);border:1px solid #8d919b;place-items:center;width:min(278px,70vw);font-size:44px;display:grid;box-shadow:14px 16px #292b33}.reveal{text-align:center}.card-button{background:0 0;border:0;margin:0;padding:0}.result{grid-template-columns:minmax(260px,.8fr) 1fr;align-items:center;gap:clamp(30px,6vw,90px);width:min(1080px,100%);display:grid}.image img{border:1px solid #767b88;width:100%;display:block}.image.reversed img{transform:rotate(180deg)}article h1{margin-bottom:16px}small{letter-spacing:.12em;color:#aeb3bd;margin-top:8px;font-size:15px;display:block}h2{letter-spacing:.12em;color:#fa3f83;margin:25px 0 0;font-size:13px}footer{text-align:center;border-top:1px solid #444753;padding-top:15px;font-size:12px}.waiting{text-align:center;justify-items:center;display:grid}.waiting .back{animation:1s ease-in-out infinite alternate pulse}@keyframes pulse{to{transform:translateY(-8px)rotate(2deg)}}@media (width<=600px){main{grid-template-rows:56px 1fr auto}.result{grid-template-columns:1fr}.image{max-width:280px;margin:auto}h1{font-size:42px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
