.full-app{width:min(100%,480px);padding-bottom:0}.brand-link{border:0;background:none;padding:0;min-height:44px}.toolbar{margin-bottom:16px}.full-app h1{font-size:30px;line-height:1.3;letter-spacing:-.7px}.full-app #question{font-size:25px}.eyebrow{font-size:11px;letter-spacing:.1em;color:var(--teal-dark);margin:14px 0 10px}.lead{font-size:14px;color:var(--muted);line-height:1.8;margin:12px 0 18px}.section-title{font-size:18px;line-height:1.5;margin:0 0 12px}.hero-title{font-size:38px!important}.hero-title em{font-style:normal;color:var(--teal-dark)}.hero-portrait{position:relative;height:230px;margin:12px 0 10px;background:radial-gradient(ellipse at 50% 65%,#d7f0eb 0 45%,transparent 46%);overflow:hidden;border-radius:26px}.hero-portrait canvas{position:absolute;width:280px;height:auto;left:50%;bottom:4px;transform:translateX(-50%);max-width:100%}.hero-label{position:absolute;top:10px;left:8px;font-size:10px;color:#55787d;writing-mode:vertical-rl;letter-spacing:.12em}.hero-slot.compact .hero-portrait{height:180px}.hero-slot.compact canvas{width:235px}.hero-note{padding:13px 16px;border-left:3px solid var(--teal);line-height:1.7;font-size:14px;margin:15px 0;background:#eef8f6}.statrow{display:flex;justify-content:space-around;margin:12px 0 20px}.statrow strong{display:block;color:var(--teal-dark);font-size:23px}.statrow span{font-size:11px;color:var(--muted)}.wide{width:100%;margin-top:9px}.card{border:1px solid var(--line);border-radius:18px;padding:18px;background:white;margin-top:14px}.soft{background:#edf8f5}.tiny{font-size:11px;line-height:1.7;color:var(--muted)}.body-copy{font-size:14px;line-height:1.85}.body-copy p+p{margin-top:12px}.button-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.button-grid button{min-height:48px}.text-button{border:0;background:transparent;color:var(--teal-dark);font-size:12px;min-height:44px;padding:8px;text-decoration:underline;text-underline-offset:4px}.quiz-utility{display:flex;justify-content:space-between;margin-top:4px}.bottom-nav{position:sticky;bottom:0;z-index:20;display:grid;grid-template-columns:repeat(5,1fr);background:#f9fcfcf5;backdrop-filter:blur(12px);border-top:1px solid var(--line);margin:20px -20px 0;padding:7px 6px max(7px,env(safe-area-inset-bottom))}.bottom-nav button{border:0;background:none;color:#597480;min-height:52px;display:grid;place-items:center;gap:2px;font-size:22px;padding:5px 1px}.bottom-nav span{font-size:10px}.bottom-nav [aria-current=page]{color:var(--teal-dark);background:#e4f4ef;border-radius:12px}.spice-options{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:12px}.spice-options button{border:1px solid var(--line);border-radius:13px;min-height:68px;background:#f3f8f8;font-size:13px;padding:6px 3px}.spice-options button[aria-pressed=true]{background:#d9f2eb;border-color:var(--teal);color:var(--teal-dark);box-shadow:inset 0 0 0 1px var(--teal)}.spice-options small{display:block;font-size:10px;margin-top:6px;color:var(--muted)}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:65px;font-size:14px}.setting-row input[type=checkbox]{width:22px;height:22px;accent-color:var(--teal);margin:12px}.setting-row select{font:inherit;max-width:160px;border:1px solid var(--line);padding:10px;border-radius:10px}.field-notes{position:absolute;left:6%;top:13%;width:40%;height:76%;border:1px solid #b8d2d4;background:#fffaf0;border-radius:6px 14px 14px 6px;padding:10px;box-shadow:3px 3px #b8d2d43d}.field-notes small{font-size:8px;color:var(--teal-dark)}.field-notes b{display:block;font-size:12px;line-height:1.6;margin:7px 0}.field-notes i{display:block;width:75%;border-top:1px solid #d4dcdb;margin:7px 0}.stage[data-question="0"]{background:#edf7f4}.stage[data-question="0"] .stage-blob{background:#cfe9df}[data-roast=off] .thought{display:none!important}.interlude-number{font-size:72px;line-height:1;font-weight:900;color:#c3e6de;margin:24px 0 12px}.chapter-dots{display:flex;gap:7px;margin:20px 0}.chapter-dots i{height:7px;flex:1;border-radius:8px;background:#dde9e8}.chapter-dots i.done{background:var(--teal)}.scan-grid,.map-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:5px}.scan-grid{margin:24px 0}.scan-grid i{aspect-ratio:1;background:#e0f0ec;border-radius:5px}.scan-grid i.lit{background:var(--teal);box-shadow:0 0 0 3px #a3dacf}.result-number{color:var(--teal-dark);font-size:37px;font-weight:900;letter-spacing:-1px}.result-name{font-size:31px!important;margin:3px 0 10px}.tags{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.tag{font-size:11px;color:#246b65;background:#e6f5ef;border-radius:20px;padding:6px 10px}.report-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;background:#edf5f4;border-radius:14px;margin:18px 0 10px}.report-tabs button{min-height:44px;border:0;border-radius:11px;color:#52737c;background:none;font-size:14px}.report-tabs [aria-selected=true]{background:var(--teal);color:#fff}.score-row{margin:16px 0}.score-label{display:flex;justify-content:space-between;font-size:12px;font-weight:750;gap:8px}.score-track{height:8px;background:#e2ebee;border-radius:8px;overflow:hidden;margin:7px 0}.score-track i{display:block;height:100%;background:var(--teal);border-radius:8px}.score-poles{display:flex;justify-content:space-between;font-size:11px;color:#55747d;gap:5px}.report-section{margin:23px 0 8px}.challenge{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin:14px 0}.challenge label{border:1px solid var(--line);border-radius:10px;text-align:center;padding:9px 0;cursor:pointer;font-size:10px}.challenge input{display:block;width:20px;height:20px;margin:0 auto 6px;accent-color:var(--teal)}.filter-row{display:flex;gap:6px;overflow:auto;padding:8px 0 12px}.filter-row button{white-space:nowrap;min-height:44px;border:1px solid var(--line);background:white;border-radius:25px;padding:8px 13px;font-size:11px}.filter-row [aria-pressed=true]{background:var(--teal);color:white;border-color:var(--teal)}.map-scroll{overflow:auto;padding:4px 3px 12px}.map-grid{min-width:390px}.map-grid button{aspect-ratio:1;border:1px solid #bedcd5;background:#eef8f4;border-radius:9px;min-width:44px;min-height:46px;padding:4px 0;font-size:14px;color:#346561;position:relative}.map-grid button span{display:block;font-size:9px}.map-grid button[aria-pressed=true]{background:var(--teal);color:white}.map-grid button.mine:after{content:'你';position:absolute;right:1px;top:1px;font-size:8px;background:#ffe7b5;color:#513b0f;border-radius:6px;padding:2px}.type-list{display:grid;gap:7px}.type-list button{text-align:left;border:1px solid var(--line);background:white;min-height:48px;border-radius:10px;padding:10px;font-size:13px}.compare-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:14px}.compare-table th,.compare-table td{padding:12px 4px;text-align:left;border-bottom:1px solid var(--line);line-height:1.6}.compare-table th{font-weight:700;color:#54707a}.compare-table .different{background:#fff5e5}.share-code{display:block;font-family:ui-monospace,monospace;font-size:15px;overflow-wrap:anywhere;padding:13px;background:#ecf6f3;border:1px solid #c3ded5;border-radius:10px;margin:10px 0;user-select:all}.field{display:block;margin:12px 0}.field>span{display:block;font-size:12px;font-weight:750;margin-bottom:7px}.field input,.field textarea,.field select{font:inherit;font-size:14px;width:100%;padding:12px;border:1px solid #adcad0;border-radius:10px;background:#fff;min-height:46px}.field textarea{min-height:90px}.field-error{color:#98422d;font-size:12px;line-height:1.7;margin:6px 0}.member-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:8px 0;font-size:13px;gap:10px}.review-list{display:grid;gap:7px}.review-list button{text-align:left;border:1px solid var(--line);background:white;border-radius:12px;padding:13px;font-size:12px;line-height:1.8}.review-list b{display:block;font-size:13px}.review-list small{display:block;color:var(--muted);font-size:11px}.review-list button.missing{border-style:dashed}.share-image{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:16px;margin-top:14px}.download-link{display:block;text-align:center;text-decoration:none;margin-top:12px}.empty{text-align:center;padding:50px 12px}.empty h1{font-size:27px}.empty p{font-size:14px;color:var(--muted);line-height:1.8;margin:16px 0}.privacy-list{font-size:13px;line-height:1.9;padding-left:20px}.danger{color:#9a432d;border-color:#d9b4a5}dialog{width:min(90%,400px);border:1px solid var(--line);border-radius:22px;padding:24px;color:var(--ink);box-shadow:0 16px 60px #152e3e33}dialog::backdrop{background:#18393f70}dialog h2{font-size:20px;margin:0 0 12px}dialog p{font-size:14px;line-height:1.8}.dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}#toast{position:fixed;z-index:80;bottom:85px;left:50%;transform:translateX(-50%);max-width:90%;width:max-content;background:#163d3b;color:#fff;padding:12px 18px;border-radius:14px;font-size:13px;line-height:1.6;opacity:0;pointer-events:none}#toast.show{opacity:1}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #a8651b;outline-offset:3px}input,textarea{color:var(--ink)}.mini-link{font-size:12px;color:var(--teal-dark)}#screen{min-height:400px}#screen:empty{display:none}footer{margin:16px 0 0}.no-roast-label{font-size:12px;color:var(--muted)}
@media(max-width:370px){.bottom-nav{margin-left:-14px;margin-right:-14px}.full-app #question{font-size:22px}.full-app h1{font-size:27px}.hero-title{font-size:33px!important}.card{padding:14px}.hero-portrait{height:215px}.score-label{font-size:11px}.spice-options button{font-size:12px}.field-notes b{font-size:10px}.full-app .edition{font-size:8px}.map-grid{min-width:390px}.bottom-nav span{font-size:9px}}
@media(min-width:700px){.full-app{padding:20px 20px 0;min-height:800px}.bottom-nav{border-radius:0 0 25px 25px}.hero-portrait{height:250px}.hero-portrait canvas{width:305px}}
[data-page=home] #page-title{font-size:clamp(22px,7.7vw,34px);line-height:1.25;letter-spacing:-.8px;white-space:nowrap}[data-page=home] #page-title em{font-style:normal;color:var(--teal-dark)}

[data-page=home] .header{display:none}
/* Compact home summary: three equal columns with quiet separators. */
[data-page=home] .statrow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:12px 0 14px;padding:12px 3px;border:1px solid #d1e6e1;border-radius:18px;background:linear-gradient(135deg,#fff 0%,#edf8f4 100%);box-shadow:0 4px 14px #175c4e06}
[data-page=home] .statrow>div{text-align:center;min-width:0;position:relative}
[data-page=home] .statrow>div+div:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:1px;background:#cce2dc}
[data-page=home] .statrow strong{display:flex;align-items:baseline;justify-content:center;gap:5px;font-size:28px;line-height:1.05;font-weight:850;letter-spacing:-.8px;font-variant-numeric:tabular-nums}
[data-page=home] .statrow small{font-size:10px;font-weight:650;letter-spacing:0;color:#4e847b}
[data-page=home] .statrow span{display:block;font-size:10px;letter-spacing:.06em;line-height:1.5;margin-top:7px;color:#53796f}

.home-pet{position:absolute;inset:0 0 0 30px;border:0;border-radius:24px;background:transparent;cursor:pointer;touch-action:manipulation}
.home-pet:active:not(:disabled){transform:none}
.home-pet:focus-visible{outline:2px solid var(--teal);outline-offset:-3px}
.home-pet-line{position:absolute;right:3px;top:2px;max-width:calc(100% - 52px);padding:8px 12px;border:1px solid #c1dfd7;border-radius:14px 14px 4px 14px;background:#fffffff5;color:#27655e;font-size:12px;line-height:1.6;box-shadow:0 3px 12px #15594b08;pointer-events:none;z-index:2}/* Leave room for the speech bubble inside the existing portrait height. */
[data-page=home] .hero-portrait canvas{width:250px}
.home-pet-line{padding:6px 10px;line-height:1.45}
@media(max-width:370px){[data-page=home] .hero-portrait canvas{width:225px}}
@media(min-width:700px){[data-page=home] .hero-portrait canvas{width:280px}}
/* Every portrait has its own accessible tap target and space for its reply. */
.hero-slot.compact .hero-portrait{height:220px}
.hero-slot.compact .hero-portrait canvas{width:235px}
.quiz-pet{position:absolute;inset:22% 1% 0 43%;z-index:7;background:transparent;border:0;border-radius:20px;touch-action:manipulation}
.quiz-pet:active:not(:disabled){transform:none}
.quiz-pet:focus-visible{outline:2px solid var(--teal);outline-offset:-3px}
.quiz-pet-line{min-height:34px;margin:0 0 8px;padding:6px 10px;border-left:2px solid #9acfc2;color:#396f67;font-size:12px;line-height:1.6;background:#edf8f4;border-radius:0 8px 8px 0}
/* Keep mobile card feedback, preview and save action in one visible area. */
#card-output:not(:empty){margin-top:20px;scroll-margin-top:16px}
#card-output .share-image{width:auto;max-width:100%;max-height:65vh;max-height:65svh;margin:14px auto;object-fit:contain}
#card-output .download-link{min-height:48px;display:flex;align-items:center;justify-content:center}
.card-status{padding:14px;border-radius:12px;background:#edf8f4;color:var(--teal-dark);font-size:14px;line-height:1.7}

@media(max-width:480px){.challenge{grid-template-columns:repeat(4,minmax(0,1fr))}.challenge label{min-height:64px;font-size:12px}}


/* A sticky site menu must never intercept taps on quiz answers. */
.bottom-nav[hidden]{display:none}
[data-page=quiz] .full-app,[data-page=interlude] .full-app,[data-page=reveal] .full-app{padding-bottom:max(16px,env(safe-area-inset-bottom))}
.production-credit{margin:10px 0 0;text-align:center}
.production-credit a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;color:var(--teal-dark);font-size:12px;line-height:1.6;text-decoration:underline;text-underline-offset:4px}

.local-preview-note{font-size:11px;line-height:1.7;color:#5f756e;background:#edf5f0;padding:10px 14px;border-radius:12px;margin:0 0 12px}.species-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.species-options button{border:1px solid #cfdddd;background:#fff;color:#17363d;border-radius:16px;min-height:80px;padding:14px}.species-options button[aria-pressed=true]{background:#dff3ed;border:2px solid #13847b}.species-options b,.species-options small{display:block}.species-options small{font-size:11px;margin-top:6px;color:#66807a}body[data-species=dog] .persona-portrait{background:#edf6f0}body[data-species=dog] .map-grid img{object-fit:contain}
