@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--bg:#090620;--ink:#f6efff;--muted:#b5a7c8;--accent:#fa559a;--turquoise:#52f2d2;--line:#ffffff19;--plum:#361032;--violet:#642de0}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 95% 5%,#36103299,transparent 45%),var(--bg);color:var(--ink);font-family:'DM Sans',sans-serif}.shell{display:grid;grid-template-columns:270px 1fr;min-height:100vh}aside{background:#090620b0;padding:22px 27px 30px;display:flex;flex-direction:column;border-right:1px solid var(--line)}.brand{display:block;width:210px;margin:-5px auto 0}.brand img{width:100%;height:auto;display:block;mix-blend-mode:screen}.orbit{position:relative;height:175px;display:grid;place-items:center;margin-top:4px}.planet{width:96px;height:96px;border-radius:50%;background:radial-gradient(circle at 27% 24%,#f7a4c7,#be4cba 36%,#592da8 68%,#1d104a);box-shadow:0 0 50px #b14ac72b,inset -12px -12px 25px #0c063999;position:relative}.planet:after{content:'';position:absolute;inset:-19px -47px;border:1px solid #b983e76b;border-radius:50%;transform:rotate(-28deg)}.orbit i{position:absolute;width:6px;height:6px;background:var(--turquoise);border-radius:50%;left:18px;top:99px;box-shadow:0 0 14px var(--turquoise)}.orbit>span{position:absolute;bottom:5px;font-size:9px;letter-spacing:4px;color:#baa8d5}h2{font-weight:500;letter-spacing:-.8px;font-size:27px;line-height:1.3}aside h2{font-family:Georgia,serif;font-size:30px;margin:22px 0 10px}aside p{color:var(--muted);font-size:12px;line-height:1.8}nav{margin:24px -9px 35px;font-size:11px;color:#a594b9}nav div{display:flex;gap:12px;padding:15px 12px;border-radius:7px;position:relative}nav .selected{background:linear-gradient(90deg,#54234370,#53239625);color:#ffe0ef;border:1px solid #fa559a38}nav b{margin-left:auto;color:var(--accent)}nav em{display:none}aside small{margin-top:auto;letter-spacing:2px;font-size:8px;color:#8e7fa8}main{padding:31px clamp(25px,5vw,80px) 25px;max-width:1380px;width:100%}header{display:flex;justify-content:space-between;gap:12px;font-size:9px;letter-spacing:2px;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:26px}header>span:first-child{display:flex;align-items:center;gap:9px;color:var(--turquoise)}.live-dot{width:5px;height:5px;background:var(--turquoise);border-radius:50%;box-shadow:0 0 12px #52f2d280}header span:last-child{letter-spacing:0;color:var(--muted)}.eyebrow{font-size:9px;letter-spacing:2px;color:var(--accent);font-weight:600}.separator{margin:0 9px;color:#a78dba}h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(42px,4.5vw,66px);letter-spacing:-2px;line-height:1.07;margin:20px 0 17px}h1 em{font-weight:400;color:var(--accent)}.lead{font-size:14px;color:var(--muted);line-height:1.8;margin-bottom:26px}.heart-panel{display:flex;gap:25px;align-items:center;border:1px solid #bb76ff25;border-radius:14px;background:linear-gradient(110deg,#47224745,#33155430);padding:22px 26px;margin-bottom:33px}.heart-art{flex:0 0 88px;position:relative;text-align:center}.heart-art svg{width:88px;overflow:visible;filter:drop-shadow(0 0 15px #cf47b422)}.heart-piece{fill:#b66bd910;stroke:#b89ac561;stroke-width:.6;stroke-linejoin:round}.heart-piece.earned{fill:url(#heart-fill);stroke:#ffacd7;animation:piece-arrive .65s ease both}.heart-art>span{display:block;font-size:20px;margin-top:5px;color:#ffd3ec}.heart-art small{font-size:11px;color:var(--muted);margin-left:3px}.heart-copy{flex:1;min-width:0}.heart-copy h2{font-family:Georgia,serif;font-size:23px;margin:8px 0}.heart-copy p{font-size:11px;color:var(--muted);margin:0 0 13px;line-height:1.6}.heart-copy ol{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px 15px}.heart-copy li{font-size:9px;letter-spacing:.3px;color:#9785ac}.heart-copy li.current{color:#fba5c8}.heart-copy li.complete{color:var(--turquoise)}.heart-copy li.locked:before{content:'· ';color:#715882}.heart-note{display:block;font-size:9px;color:#aa95ba;line-height:1.6;margin-top:12px}.scene{display:grid;grid-template-columns:195px 1fr;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#160e2a80}.art{background:radial-gradient(ellipse at 20% 25%,#9b367d55,transparent 65%),radial-gradient(ellipse at 90% 90%,#5523ad66,transparent 65%),#21102f;position:relative;min-height:285px;display:grid;place-items:center;overflow:hidden}.frame{width:130px;height:193px;border:1px solid #ca89d270;border-radius:70px 70px 5px 5px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:36px;font-style:italic;color:#f5d9ef;background:#230f3440}.frame span{font:7px 'DM Sans',sans-serif;letter-spacing:1.7px;margin-top:13px;color:#c7a4cc}.art-orbit{position:absolute;width:310px;height:120px;border:1px solid #caa4e02b;border-radius:50%;transform:rotate(-48deg)}.card-star{position:absolute;top:17px;right:20px;color:var(--turquoise);font-size:25px}.art-caption{position:absolute;bottom:17px;font-size:8px;letter-spacing:3px;color:#c0a5d0}.scene-copy{padding:27px 30px}.scene-copy h2{font-family:Georgia,serif;margin:12px 0;font-size:30px}.scene-copy p{font-size:13px;line-height:1.8;color:var(--muted)}.goal{border-top:1px solid var(--line);padding-top:15px;margin-top:15px;font-size:12px;line-height:1.7}.goal span{color:var(--turquoise);margin-right:7px}.piece-preview{font-size:9px;letter-spacing:1.3px;color:#ff9ac5;margin-top:17px}.piece-preview small{display:block;font-size:10px;letter-spacing:0;color:var(--muted);line-height:1.6;margin-top:6px}.setup{display:flex;align-items:end;gap:20px;margin-top:26px}.start-row{display:flex;align-items:end;gap:20px;flex:1;justify-content:space-between}label{font-size:10px;color:var(--muted);display:block}select{display:block;margin-top:9px;background:#160e2b;color:var(--ink);padding:12px 10px;border:1px solid #ffffff23;border-radius:7px;max-width:100%;font:11px 'DM Sans',sans-serif}button{background:linear-gradient(110deg,#ed438e,#be39b6);color:white;border:1px solid #ff9dcd2b;border-radius:7px;padding:15px 19px;font:600 12px 'DM Sans',sans-serif;cursor:pointer;transition:filter .2s,transform .2s;white-space:nowrap;box-shadow:0 5px 20px #fa559a15}button span{margin-left:15px}button:hover{filter:brightness(1.15);transform:translateY(-1px)}button:disabled{opacity:.5;cursor:wait;transform:none}.notice{font-size:10px;color:var(--muted);line-height:1.8;margin-top:17px}footer{font-size:10px;color:#a392b7;border-top:1px solid var(--line);padding-top:19px;margin-top:32px}footer>span{color:var(--turquoise);margin-right:7px}.chat-heading{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:15px 0}.avatar{background:linear-gradient(135deg,#852f91,#3e236f);border:1px solid #c780cd5e;border-radius:50%;width:42px;height:42px;display:grid;place-items:center;font-family:Georgia,serif}.chat-heading p{font-size:11px;margin:4px 0;color:var(--muted)}#turns{margin-left:auto;font-size:11px;color:var(--turquoise)}#messages{min-height:220px;max-height:390px;overflow-y:auto;padding:20px 0;display:flex;flex-direction:column;gap:14px}.bubble{flex-shrink:0;padding:14px 18px;max-width:85%;font-size:14px;line-height:1.7;border:1px solid #ffffff12;border-radius:3px 13px 13px;background:#251938;white-space:pre-wrap}.bubble.user{align-self:flex-end;background:#492039;border-color:#ee83b222;border-radius:13px 3px 13px 13px}.bubble small{display:block;font-size:9px;letter-spacing:1.2px;margin-bottom:5px;color:#bba4d0}.bubble.user small{color:#ffa5cb}.chat-empty{color:var(--muted);font-size:13px;text-align:center;padding:50px 20px;line-height:1.8}form{display:flex;gap:12px;align-items:stretch}textarea{resize:vertical;flex:1;min-width:0;background:#160e2b;border:1px solid #ffffff27;border-radius:8px;padding:14px;font:14px 'DM Sans',sans-serif;color:var(--ink)}textarea::placeholder{color:#a191b5}textarea:focus,select:focus{outline:2px solid var(--turquoise);outline-offset:2px}.chat-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.chat-actions span{font-size:10px;color:var(--muted)}.subtle{background:transparent;box-shadow:none;border:0;color:#d1bde8;padding:10px 0;text-decoration:underline}.subtle:hover{color:var(--accent)}#feedback{background:linear-gradient(145deg,#281435,#19102e);border:1px solid #e48cca30;border-radius:14px;padding:25px;margin-top:25px}#feedback h2{font-family:Georgia,serif;font-size:30px;margin:10px 0 20px}#feedback p{font-size:13px;line-height:1.8}blockquote{margin:10px 0;padding-left:15px;border-left:2px solid var(--turquoise);color:#c7b5db;font-size:12px;line-height:1.7}#feedback button{margin:8px 8px 0 0}.heart-reward{padding:15px;border:1px solid #52f2d23b;border-radius:8px;background:#52f2d20c;color:var(--turquoise);font-size:13px;margin-bottom:20px;animation:piece-arrive .65s ease both}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}#error{color:#ff9abe;font-size:13px}[hidden]{display:none!important}.bubble-enter{animation:message-arrive 420ms ease both}.typing-indicator{display:flex;align-items:center;gap:12px;align-self:flex-start;padding:13px 17px;min-height:46px;border:1px solid #ffffff12;border-radius:12px;background:#251938;flex-shrink:0}.typing-label{font-size:12px;color:var(--muted)}.typing-dots{display:inline-flex;align-items:center;gap:5px;height:14px}.typing-dots span{width:7px;height:7px;border-radius:50%;background:var(--turquoise);animation:typing-pulse 1.25s ease-in-out infinite}.typing-dots span:nth-child(2){animation-delay:150ms}.typing-dots span:nth-child(3){animation-delay:300ms}@keyframes typing-pulse{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}@keyframes message-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes piece-arrive{from{opacity:0;filter:brightness(2)}to{opacity:1;filter:brightness(1)}}
@media(max-width:1150px){.setup{align-items:stretch;flex-direction:column}.start-row{justify-content:space-between}.shell{grid-template-columns:230px 1fr}aside{padding:22px 20px}.brand{width:190px}.scene{grid-template-columns:160px 1fr}.scene-copy{padding:24px}}
@media(max-width:750px){.shell{display:block}aside{padding:10px 22px;border-bottom:1px solid var(--line);border-right:0;flex-direction:row;align-items:center}.brand{width:150px;margin:-10px 0}.orbit,aside h2,aside p,nav{display:none}aside small{margin:0 0 0 auto;font-size:8px;letter-spacing:1px}main{padding:25px 22px}header{margin-bottom:22px}.heart-panel{padding:18px;gap:17px}.heart-art{flex-basis:65px}.heart-art svg{width:65px}.heart-copy h2{font-size:20px}.heart-copy ol{gap:8px 12px}.heart-note{font-size:9px}h1{font-size:46px}.scene{grid-template-columns:1fr}.art{min-height:170px}.frame{height:125px;width:120px;font-size:30px}.art-caption{left:17px;bottom:14px}.scene-copy{padding:23px}.start-row{align-items:stretch;flex-direction:column}.setup label select{width:100%}.chat-actions{align-items:start;flex-direction:column}.bubble{max-width:92%}form button{padding:12px}footer{line-height:1.7}.heart-copy .eyebrow{font-size:8px}}
@media(prefers-reduced-motion:reduce){.bubble-enter,.typing-dots span,.heart-piece.earned,.heart-reward{animation:none}button{transition:none}.typing-dots span{opacity:.7}}

.logo-filter{position:absolute;pointer-events:none}.brand img{mix-blend-mode:normal;filter:url(#logo-background)}
.sidebar-bottom{margin-top:auto;padding-top:30px}.sidebar-bottom>small{display:block;margin-top:22px}.journal-trigger{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:16px 12px;white-space:normal;background:linear-gradient(120deg,#3c193b66,#211638);border:1px solid #d582c336;box-shadow:none;font-size:11px}.journal-trigger>span:first-child{font-size:27px;color:var(--turquoise);font-weight:400}.journal-trigger>span:nth-child(2){flex:1}.journal-trigger small{display:block;font-size:9px;letter-spacing:0;color:#b99ac8;margin-top:6px}.journal-trigger b{color:#ea9bc9;font-weight:400}#journal{width:min(950px,calc(100vw - 40px));max-height:calc(100dvh - 40px);padding:0;border:1px solid #ab6aa56b;border-radius:17px;background:#160d29;color:var(--ink);box-shadow:0 30px 100px #0009;overflow:auto}#journal::backdrop{background:#030210cc;backdrop-filter:blur(6px)}.journal-top{display:flex;justify-content:space-between;align-items:center;padding:24px 30px;border-bottom:1px solid var(--line)}.journal-top h2{font-family:Georgia,serif;font-size:26px;margin:8px 0 0}.journal-top button{font-size:22px;padding:10px}.journal-pages{display:grid;grid-template-columns:1fr 1fr;background:linear-gradient(90deg,#251330 48%,#0c071d 50%,#24122f 52%)}.journal-page{padding:32px;animation:message-arrive .3s ease both;min-width:0}.encounter-page{border-right:1px solid #e6afce1a;text-align:center}.encounter-page .eyebrow{text-align:left}.journal-portrait{width:160px;height:210px;margin:25px auto 18px;padding:15px;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative;border:1px solid #d48bc967;background:radial-gradient(ellipse at 15% 20%,#7b326d88,transparent 70%),#33183f;box-shadow:0 10px 35px #08031988;transform:rotate(-3deg)}.journal-portrait>span{color:var(--turquoise);font-size:34px}.journal-portrait strong{font-family:Georgia,serif;font-style:italic;font-size:38px;font-weight:400;margin:20px 0}.journal-portrait small{font-size:7px;letter-spacing:1.3px;color:#d8b1d5}.journal-page h3,.journal-empty h3{font:400 32px/1.2 Georgia,serif;margin:16px 0}.journal-page h4{font-size:11px;color:var(--turquoise);margin-top:24px;font-weight:500}.journal-page p{font-size:12px;line-height:1.8;color:#ded0e5}.journal-page p.journal-date,.journal-date{font-size:10px;color:var(--muted);line-height:1.7}.journal-status{display:inline-block;padding:7px 11px;background:#b867a91c;border:1px solid #e48dc633;border-radius:30px;font-size:11px;margin:7px 0}.journal-page .journal-piece{color:#ff9ccb;font-size:11px;margin:20px 0}.journal-page button{margin-top:12px}.journal-page blockquote{font-size:11px;background:#ffffff04;padding:10px 12px;color:#d3badc}.learning-page label{margin-top:24px;color:#ead3eb}.learning-page textarea{display:block;width:100%;margin-top:10px;resize:vertical;font-size:12px;min-height:85px}.note-status{display:block;font-size:9px;color:#a997be;margin-top:7px}.journal-navigation{display:flex;justify-content:space-between;align-items:center;padding:14px 30px;border-top:1px solid var(--line);gap:12px}.journal-navigation>span{font-size:10px;color:var(--muted)}.journal-navigation button{font-size:11px;text-decoration:none}.journal-navigation button:disabled{cursor:default;opacity:.3}.journal-storage{font-size:9px;text-align:center;color:#a18cad;line-height:1.6;margin:0;padding:0 20px 18px}.journal-empty{grid-column:1/-1;text-align:center;max-width:500px;margin:auto;padding:45px 30px}.journal-empty p{font-size:13px;line-height:1.8;color:var(--muted)}.journal-empty-star{font-size:45px;color:var(--turquoise)}
@media(max-width:750px){aside{flex-wrap:wrap}.sidebar-bottom{width:100%;padding-top:3px;margin:0}.sidebar-bottom>small{display:none}.journal-trigger{padding:10px 12px;margin-top:4px;gap:10px}.journal-trigger>span:first-child{font-size:21px}.journal-trigger small{margin-top:3px}#journal{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);border-radius:12px}.journal-top{padding:18px}.journal-top h2{font-size:22px}.journal-top .eyebrow{font-size:8px}.journal-pages{grid-template-columns:1fr;background:#251330}.journal-page{padding:24px;min-height:430px}.encounter-page{border:0}.journal-navigation{padding:12px 18px}.journal-navigation>span{font-size:9px}.journal-portrait{width:140px;height:175px}.journal-empty{padding:30px 24px}}
@media(prefers-reduced-motion:reduce){.journal-page{animation:none}}

.art-ines{background:#fbf9fa;min-height:300px}.art-ines>img{display:block;width:100%;height:100%;position:absolute;object-fit:cover;object-position:center 48%}.art-ines .art-caption{color:#43243f;background:#fff9;padding:6px 8px;border-radius:4px;letter-spacing:2px}.avatar{overflow:hidden;flex-shrink:0}.avatar img{width:100%;height:100%;object-fit:cover;transform:scale(2.6);object-position:center 48%}.journal-portrait-ines{padding:0;background:#fbf9fa;overflow:hidden}.journal-portrait-ines img{width:100%;height:100%;object-fit:cover;object-position:center 48%}@media(max-width:750px){.art-ines{min-height:310px}.art-ines>img{object-fit:contain;transform:scale(1.3);object-position:center 44%}}

.pilot-welcome{border:1px solid #52f2d22b;border-radius:14px;padding:22px 26px;margin-bottom:26px;background:#52f2d205}.pilot-welcome h2{font-family:Georgia,serif;margin:10px 0}.pilot-welcome p{font-size:12px;line-height:1.8;color:var(--muted)}#opinion-dialog{width:min(520px,calc(100vw - 30px));max-height:calc(100dvh - 30px);overflow:auto;background:#21122f;color:var(--ink);border:1px solid #b67baf70;border-radius:14px;padding:26px}#opinion-dialog::backdrop{background:#030210cc;backdrop-filter:blur(5px)}#opinion-close{float:right;padding:0 8px}#opinion-form{display:block}#opinion-form label{margin-top:18px}#opinion-form textarea,#opinion-form select{width:100%;margin-top:8px}#opinion-status{font-size:12px;line-height:1.6;color:var(--turquoise)}

#pilot-welcome{width:min(560px,calc(100vw - 30px));max-height:calc(100dvh - 30px);overflow:auto;margin:auto;background:#21122f;color:var(--ink);padding:28px;border:1px solid #b67baf70;box-shadow:0 30px 100px #0009}#pilot-welcome::backdrop{background:#030210cc;backdrop-filter:blur(5px)}#pilot-close{float:right;padding:0 5px;font-size:20px}#pilot-continue{margin-top:12px}

#intro-video-dialog{padding:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border:0;background:#050316;color:white;overflow:hidden}#intro-video-dialog::backdrop{background:#050316}#intro-video{width:100%;height:100%;display:block;object-fit:contain}.intro-video-actions{position:absolute;bottom:24px;left:20px;right:20px;display:flex;justify-content:flex-end;gap:18px;align-items:center}.intro-video-actions .subtle{background:#090620bb;border-radius:8px;padding:12px;text-decoration:none}#intro-video-status{position:absolute;bottom:85px;width:100%;text-align:center;font-size:12px;background:#090620aa}

.chat-empty{font-family:Georgia,serif;font-size:clamp(22px,2.4vw,30px);line-height:1.5;color:#e9dcef;max-width:680px;margin:auto;padding:40px 24px}

/* Nashira: portrait card with an orbital frame. */
.scene{grid-template-columns:230px minmax(0,1fr);align-items:stretch}
.art-ines{min-height:340px;padding:22px 18px 42px;background:radial-gradient(ellipse at 15% 20%,#76316170,transparent 65%),radial-gradient(ellipse at 90% 85%,#5126a766,transparent 65%),#180e2e;isolation:isolate}
.art-ines>img{position:relative;inset:auto;display:block;width:100%;height:276px;object-fit:cover;object-position:center 58%;transform:none;border-radius:95px 95px 12px 12px;border:1px solid #e4b1d28c;box-shadow:0 0 0 5px #d58bc90a,0 14px 35px #08031988;z-index:1}
.art-ines:before{content:'';position:absolute;inset:13px 10px 31px;border:1px solid #b77bd454;border-radius:110px 110px 18px 18px;z-index:2;pointer-events:none}
.art-ines:after{content:'✧';position:absolute;right:13px;top:15px;font-size:28px;color:var(--turquoise);text-shadow:0 0 17px #52f2d266;z-index:3}
.art-ines .art-caption{bottom:14px;left:0;right:0;text-align:center;background:none;padding:0;color:#d0aed9;font-size:8px;letter-spacing:2.5px;z-index:3}
.scene-copy{display:flex;flex-direction:column;justify-content:center;padding:26px 28px}
@media(max-width:1000px) and (min-width:751px){.scene{grid-template-columns:205px minmax(0,1fr)}.scene-copy{padding:24px}}
@media(max-width:750px){.scene{grid-template-columns:1fr}.art-ines{min-height:0;padding:22px 26px 43px}.art-ines>img{width:210px;height:276px;margin:auto;object-fit:cover;object-position:center 58%;transform:none}.art-ines:before{width:226px;left:50%;right:auto;transform:translateX(-50%)}.art-ines:after{right:calc(50% - 120px)}.scene-copy{padding:23px}}

/* A two-sided Venusian playing card. */
.art-ines{padding:24px 16px;min-height:360px;overflow:visible;display:flex;align-items:center;justify-content:center}
.art-ines:before,.art-ines:after{display:none}
.venus-card{position:relative;display:block;width:194px;height:302px;padding:0;border:0;border-radius:13px;background:none;box-shadow:none;perspective:1000px;white-space:normal;flex-shrink:0;transition:none}
.venus-card:hover{filter:none;transform:none}
.venus-card:focus-visible{outline:2px solid var(--turquoise);outline-offset:7px}
.venus-card-inner{display:block;position:absolute;inset:0;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.venus-card.flipped .venus-card-inner{transform:rotateY(180deg)}
.venus-card-front,.venus-card-back{position:absolute;inset:0;display:block;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:13px;overflow:hidden;border:1px solid #dfb9d0;box-shadow:0 14px 32px #06021788}
.venus-card-front{background:#faf4ee;color:#562543;padding:12px}
.venus-card-front:after{content:'';position:absolute;inset:7px;border:1px solid #ad789657;border-radius:8px;pointer-events:none}
.venus-card-front img{display:block;width:100%;height:222px;object-fit:cover;object-position:center 65%;border-radius:5px;margin:6px 0 0}
.card-corner{position:absolute;top:12px;left:12px;font:18px/1 Georgia,serif;z-index:2;color:#923966;text-shadow:0 1px 4px #fff}
.card-corner>span{display:block;font-size:11px;margin:4px 0 0}
.card-corner-bottom{top:auto;left:auto;bottom:12px;right:12px;transform:rotate(180deg)}
.card-name{display:block;font:italic 25px/1.1 Georgia,serif;margin:7px 0 0;text-align:center}
.card-name small{display:block;font:6px/1.4 'DM Sans',sans-serif;letter-spacing:2px;margin-top:6px}
.venus-card-back{transform:rotateY(180deg);display:flex;flex-direction:column;align-items:center;justify-content:space-evenly;padding:20px 12px;color:#f0cddc;background:repeating-conic-gradient(from 45deg,#e1a9ce0c 0% 25%,transparent 0% 50%) 0 0/18px 18px,radial-gradient(ellipse,#57325f,#241536);border:2px solid #d7a7bd}
.venus-card-back:before{content:'';position:absolute;inset:7px;border:1px solid #d7a7bd99;border-radius:7px;pointer-events:none}
.venus-card-back:after{content:'';position:absolute;inset:15px;border:1px solid #70caba65;border-radius:3px;pointer-events:none}
.card-medallion{width:124px;height:124px;border:1px solid #dca2bd;border-radius:50%;display:grid;place-items:center;font:76px/1 Georgia,serif;color:#f5d7e4;background:#21133177;box-shadow:0 0 0 6px #70caba16,0 0 0 8px #dca2bd50;position:relative}
.card-medallion:before,.card-medallion:after{content:'✧';position:absolute;left:50%;transform:translateX(-50%);font-size:18px;color:#80ddc8}
.card-medallion:before{top:-20px}.card-medallion:after{bottom:-20px}
.card-back-stars{font-size:17px;letter-spacing:6px;color:#80ddc8}
.card-back-brand{font:12px/1.4 Georgia,serif;letter-spacing:3px;text-align:center}
.card-back-brand small{display:block;font-size:8px;letter-spacing:5px;margin-top:3px}
@media(hover:hover){.venus-card:hover .venus-card-inner{transform:rotateY(180deg)}}
@media(max-width:750px){.art-ines{padding:24px;min-height:350px}.venus-card{width:194px;height:302px}}
@media(prefers-reduced-motion:reduce){.venus-card-inner{transition:none}}

.venus-card span{margin-left:0}


nav .mission-choice{display:flex;gap:12px;width:100%;text-align:left;padding:15px 12px;border-radius:7px;background:none;box-shadow:none;border:1px solid transparent;color:#a594b9;font-size:11px;font-weight:400;white-space:normal}nav .mission-choice.selected{color:#ffe0ef;background:linear-gradient(90deg,#54234370,#53239625);border-color:#fa559a38}.mission-select-label{margin-top:24px}.mission-select-label select{width:100%;max-width:360px}

.admin-shell{max-width:1100px;margin:auto;padding:30px}.admin-shell header a{color:var(--muted);letter-spacing:0}.admin-shell h1{font-size:clamp(36px,5vw,58px)}#admin-login{align-items:end;flex-wrap:wrap}#admin-login input{display:block;margin-top:10px;padding:13px;background:#211331;color:var(--ink);border:1px solid #b37baa70;border-radius:7px;font:16px sans-serif}.admin-filters{display:flex;gap:18px;align-items:end;flex-wrap:wrap;margin:25px 0}.admin-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.admin-metric{padding:20px;border:1px solid #d99acb33;border-radius:12px;background:#331b3e55}.admin-metric strong{display:block;font:30px Georgia,serif;color:var(--turquoise);margin-bottom:9px}.admin-metric span{font-size:11px;color:var(--muted)}.admin-opinion{padding:20px;margin-bottom:12px;border:1px solid var(--line);border-radius:12px;background:#20112c}.admin-opinion h3{font-size:15px;color:#ffc0df}.admin-opinion>p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.8}#admin-status{font-size:13px;color:var(--turquoise)}@media(max-width:600px){.admin-metrics{grid-template-columns:repeat(2,1fr)}.admin-shell{padding:20px}}

.setup .start-row{justify-content:flex-end}

/* The open journal rests on layered page blocks, inside the scrollable cover. */
#journal{border-color:#bd96b56b;background:linear-gradient(110deg,#21132f,#160d29 45%,#21132f);box-shadow:0 30px 100px #000a,inset 0 0 0 5px #0e081a,inset 0 0 0 6px #b777a526}
.journal-pages{position:relative;isolation:isolate;margin:0 24px;border-radius:3px;background:linear-gradient(90deg,#302039 0%,#251330 44%,#1b0e25 48.5%,#0c0716 50%,#1b0e25 51.5%,#291731 56%,#302039 100%);box-shadow:0 5px 16px #0008,inset 1px 0 #c399b92b,inset -1px 0 #c399b92b}
.journal-pages::before,.journal-pages::after{content:'';position:absolute;pointer-events:none;top:7px;bottom:7px;width:19px;z-index:-1;background:repeating-linear-gradient(90deg,#6b4e69 0 1px,#bd9eae 1px 2px,#88697e 2px 4px);box-shadow:0 5px 8px #0006}
.journal-pages::before{left:-19px;border-radius:6px 0 0 6px;transform:skewY(-7deg);transform-origin:right center}
.journal-pages::after{right:-19px;border-radius:0 6px 6px 0;transform:skewY(7deg);transform-origin:left center;background:repeating-linear-gradient(90deg,#88697e 0 2px,#bd9eae 2px 3px,#6b4e69 3px 4px)}
.encounter-page{box-shadow:inset -12px 0 18px -15px #000c}.learning-page{box-shadow:inset 12px 0 18px -15px #000c}
@media(max-width:750px){.journal-pages{margin:0 12px;background:linear-gradient(90deg,#302039,#251330 12%,#251330 88%,#302039)}.journal-pages::before,.journal-pages::after{width:8px;top:5px;bottom:5px}.journal-pages::before{left:-8px}.journal-pages::after{right:-8px}.journal-page{padding:24px 20px}.encounter-page,.learning-page{box-shadow:none}}

/* Keep the unopened journal as tall as its populated spreads. */
.journal-pages:has(.journal-empty){min-height:clamp(460px,54vw,650px)}
.journal-empty{align-self:center;width:100%}
@media(max-width:750px){.journal-pages:has(.journal-empty){min-height:480px}}

.journal-trigger .journal-icon{display:flex;align-items:center;justify-content:center;flex:0 0 36px;color:var(--turquoise)}.journal-icon svg{display:block;width:36px;height:36px}@media(max-width:750px){.journal-trigger .journal-icon{flex-basis:30px}.journal-icon svg{width:30px;height:30px}}

@media(max-width:750px){.heart-panel,#intro>h1,#intro>.lead{display:none}}
@media(max-width:750px){
 .shell>main>header,#intro>.eyebrow{display:none}
 #intro{display:flex;flex-direction:column;gap:16px}
 #intro>.scene{display:contents}
 #intro .art{order:1;border:1px solid var(--line);border-radius:14px;overflow:hidden}
 #intro>.mission-select-label:has(#character-select){order:4;margin:0}
 #intro>#character-description{order:5;margin:0}
 #intro>.mission-select-label:has(#mission-select){order:2;margin:0}
 #intro>.setup{order:3;margin:0}
 #intro>#notice{order:6;margin:0}
 #intro .scene-copy{order:7;border:1px solid var(--line);border-radius:14px;background:#130c25}
 #intro>.mission-select-label select{max-width:none}
}
@media(max-width:750px){.shell>aside>.brand{margin:-10px auto 0}}
.mobile-objective{display:none}#mission-access{font-size:12px;line-height:1.6;color:var(--muted)}
@media(max-width:750px){
 #intro>.mission-select-label:has(#character-select){order:2}
 #intro>#character-description{order:3}
 #intro>.mission-select-label:has(#mission-select){order:4}
 #intro>.mobile-objective{display:block;order:5;margin:0;font-size:15px;line-height:1.6;color:var(--ink)}
 #intro>.setup{order:6}
 #intro>#mission-access{order:7;margin:0}
 #intro>#notice{order:8}
 #intro .scene-copy{order:9}
}
.mobile-phases{display:none}
@media(max-width:750px){
 .shell{display:flex;flex-direction:column;position:relative;padding-bottom:110px}
 .shell>aside>.sidebar-bottom{position:absolute;bottom:20px;left:22px;width:calc(100% - 44px);padding:0}
 .shell>main>.mobile-phases{display:flex;order:0;list-style:none;justify-content:center;gap:20px;margin:0;padding:2px 0 8px}
 .mobile-phases li{display:flex;align-items:center;justify-content:center;width:20px;height:20px}
 .mobile-phases li::before{content:'';width:8px;height:8px;border-radius:50%;background:#756084;border:1px solid #b5a7c84d}
 .mobile-phases li.complete::before{background:var(--turquoise);border-color:var(--turquoise)}
 .mobile-phases li.current::before{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px #fa559a24}
}
@media(max-width:750px){#intro>#mobile-objective,#intro>#mission-access,#intro>#notice{display:none}}
@media(max-width:750px){
 .shell>main>.mobile-phases{gap:0;padding:2px 0 16px}
 .mobile-phases li{position:relative;flex-direction:column;justify-content:flex-start;width:40px;height:38px;counter-increment:phase}
 .mobile-phases{counter-reset:phase;position:relative;width:240px;max-width:100%;margin-left:auto!important;margin-right:auto!important}.mobile-phases::before{content:"";position:absolute;left:20px;right:20px;top:12px;height:1px;background:#75608466}
 .mobile-phases li::before{position:relative;z-index:1;flex-shrink:0;margin-top:6px}
 .mobile-phases li:not(:last-child){background:none;overflow:visible}
 .mobile-phases li::after{content:counter(phase,decimal-leading-zero);font-size:10px;line-height:14px;color:var(--muted);margin-top:8px;letter-spacing:1px}
 .mobile-phases li.current::after{color:var(--accent)}
 .mobile-phases li.complete::after{color:var(--turquoise)}
}
@media(max-width:750px){.mobile-phases li::after{content:none}.mobile-phases li{height:20px}}
.mobile-result-heart{display:none}
@media(max-width:750px){
 .shell>main>.mobile-phases{display:none}
 .shell>main:has(#conversation:not([hidden]) #feedback[hidden])>.mobile-phases{display:flex}
 .mobile-result-heart{display:flex;align-items:center;gap:18px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--line)}
 .mobile-result-heart>div{display:flex;flex-direction:column;align-items:center;gap:6px}
 .mobile-result-heart svg{width:76px;height:72px}
 .mobile-result-heart span{font:20px Georgia,serif;color:var(--ink)}
 .mobile-result-heart small{font:11px sans-serif;color:var(--muted)}
}
@media(min-width:751px){#intro>h1,#intro>.lead,#intro>.mission-select-label,#intro>#character-description,#intro>#mission-access{display:none}}
@media(min-width:751px){#intro>#notice,#intro>.eyebrow,.shell>main>footer{display:none}}
@media(min-width:751px){#conversation>h1{display:none}}
@media(min-width:751px){#intro .scene-copy>p{font-size:20px;line-height:1.65}}
@media(min-width:751px){#journal{width:min(1120px,calc(100vw - 64px))}}
@media(min-width:751px){#journal>.journal-pages{max-width:902px;margin-left:auto;margin-right:auto}}
.pwa-install-area{text-align:center;margin:24px 0}.pwa-install-area:has(button[hidden]){display:none}.pwa-install-area p{font-size:13px;line-height:1.6;color:var(--muted)}
