@font-face{font-family:JournalSerif;src:url('assets/fonts/ggh-observation-serif-variable.woff') format('woff');font-weight:200 900;font-display:swap}
:root{--ink:#153e58;--blue:#075b8b;--rust:#8b3e31;--body:#2b5067;--line:#40698357;--serif:JournalSerif,'Songti SC',serif;--sans:'PingFang SC','Microsoft YaHei',sans-serif}
*{box-sizing:border-box}body{margin:0;min-height:100svh;background:#d9e7ec;display:grid;place-items:center;color:var(--ink);font-family:var(--sans)}h1,h2,h3,p,figure,dl,dd{margin:0}ul{margin:0;padding-left:1.2em}.poster{container-type:inline-size;width:min(100vw,calc(100svh * 2 / 3),1200px);aspect-ratio:2/3;background:radial-gradient(ellipse 85% 48% at 0 0,#ffe7a5 0%,#ffeaba99 40%,#ffeaba00 100%),linear-gradient(150deg,#e1eff0 0%,#c9e7ee 38%,#a8d8e9 100%)}.sheet{height:150cqw;padding:3cqw;display:grid;grid-template-rows:5cqw 15cqw 76cqw 15cqw 21cqw 5cqw;gap:1.4cqw;overflow:hidden}.brand-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:.8cqw}.brand{display:flex;align-items:center;gap:1cqw;font:700 3.2cqw/1 var(--serif)}.brand img{width:3.8cqw;height:4.3cqw;object-fit:contain;filter:brightness(0) saturate(100%) invert(20%) sepia(24%) saturate(1394%) hue-rotate(161deg) brightness(92%) contrast(94%)}.brand-row>p{font-size:1.8cqw;font-weight:650}.brand-row p span{font-weight:400;font-size:1.5cqw}.headline{display:grid;grid-template-columns:29% 31% 40%;align-items:center}.type{color:var(--rust);text-align:center;border-right:1px solid var(--line)}.type strong{font:850 9.5cqw/.95 var(--serif);letter-spacing:-.035em}.type h1{font:750 3.6cqw/1.35 var(--sans);letter-spacing:.14em;margin-top:.5cqw}.name{padding-left:3.3cqw}.name p{font-size:2.8cqw;font-weight:650;color:#775223;line-height:1.4}.name strong{font:750 6.2cqw/1.3 var(--serif);color:var(--blue)}.motto{font:650 2.7cqw/1.6 var(--serif);padding-left:2cqw}.motto b{color:var(--blue);font-weight:650}.motto small{display:block;margin-top:1cqw;font:400 1.55cqw/1.5 var(--sans);color:var(--body)}
.atlas{display:grid;grid-template-columns:23% 46% 1fr;gap:1cqw;min-height:0}.left,.right{display:grid;gap:1cqw;min-height:0}.left{grid-template-rows:16cqw 14cqw 12cqw 15cqw 15cqw}.right{grid-template-rows:28cqw 21cqw 12cqw 12cqw}.panel{border:1px solid var(--line);border-radius:.8cqw;padding:1.2cqw 1.1cqw;background:#d8edf01c;min-width:0}.panel h2{font:750 2.25cqw/1.25 var(--sans);margin-bottom:.85cqw;color:var(--blue);white-space:nowrap}.panel p,.panel li{font-size:1.65cqw;line-height:1.6;color:var(--body)}.panel li+li{margin-top:.3cqw}.panel p+p{margin-top:.65cqw}.panel .sub{font-size:1.45cqw;color:var(--rust);font-weight:600;margin-bottom:.5cqw}.panel .note{font-size:1.3cqw;line-height:1.45;color:#365b6e;margin-top:.5cqw}.panel .quote{font:650 2.1cqw/1.5 var(--serif);color:var(--ink)}.panel .large{font:650 1.85cqw/1.6 var(--serif);color:var(--ink)}.center{display:grid;grid-template-rows:55cqw 21cqw;min-width:0;border-radius:.8cqw;overflow:hidden}.center figure{position:relative;min-height:0}.center figure img{height:100%;width:100%;display:block;object-fit:cover;object-position:50% 44%}.center figcaption{position:absolute;left:1cqw;bottom:.8cqw;font-size:1.15cqw;background:#153e58dd;color:#e2f3f6;padding:.3cqw .6cqw;border-radius:.2cqw}.monologue{background:#164762;color:#e7f5f7;padding:1.6cqw 2.2cqw;position:relative}.monologue h2{font:700 2.2cqw/1.4 var(--sans);color:#ffe3a0;margin-bottom:.8cqw}.monologue p{font:550 2.3cqw/1.65 var(--serif);letter-spacing:.025em}.monologue span{display:block;font-size:1.2cqw;text-align:right;margin-top:.6cqw;color:#c4e2ec}.radar-panel{padding:.9cqw .4cqw}.radar-panel h2{padding-left:.7cqw;margin-bottom:0}.radar{display:block;width:100%;height:22cqw;overflow:visible}.radar .grid{fill:none;stroke:#5f8b9d88;stroke-width:1}.radar .axis{stroke:#5f8b9d55;stroke-width:1}.radar .area{fill:#177aab29;stroke:#075b8b;stroke-width:2.4;stroke-linejoin:round}.radar .point{fill:#deeff2;stroke:#075b8b;stroke-width:2}.radar .support{fill:var(--rust);stroke:#deeff2;stroke-width:2}.radar text{font:600 17px var(--sans);fill:var(--ink)}.radar .support-label{fill:var(--rust)}.radar .scale{font-size:13px}.panel .chart-note{text-align:center;font-size:1.15cqw;line-height:1.2;margin-top:-.3cqw}.scores div{display:flex;justify-content:space-between;align-items:center;line-height:2.65cqw;border-bottom:1px solid #507b9126}.scores dt{font-size:1.6cqw}.scores dd{font-size:2cqw;font-weight:700;color:var(--blue)}.scores small{font-size:1.2cqw;font-weight:400}.scores div:nth-child(n+3) dd{color:var(--rust)}
.routines{display:grid;grid-template-columns:40% 30% 1fr;gap:1cqw}.routines .panel{padding:1.1cqw}.flow{display:flex;align-items:center;justify-content:space-between;gap:.35cqw;padding:.8cqw 0 1.1cqw}.flow span{font-size:1.5cqw;color:var(--blue);font-weight:650;white-space:nowrap}.flow i{font-style:normal;color:#3c718b;font-size:1.5cqw}.routines .panel p,.routines .panel li{font-size:1.5cqw;line-height:1.65}.routines .panel .note{font-size:1.15cqw}.care{border:1px solid var(--line);border-radius:.8cqw;padding:1.25cqw 1.5cqw}.care-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:1cqw}.care-head h2{font:700 2.7cqw/1.3 var(--serif)}.care-head span{font-size:1.4cqw;color:var(--body)}.care-grid{display:grid;grid-template-columns:1fr 1fr;gap:3cqw}.care-grid>div+div{border-left:1px solid var(--line);padding-left:3cqw}.care h3{font-size:2cqw;line-height:1.4;margin-bottom:.8cqw}.care h3 small{font-size:1.45cqw;color:var(--blue);margin-right:1cqw}.care p{font-size:1.85cqw;line-height:1.7;color:var(--body)}footer{padding:.2cqw .2cqw 0}footer div{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5cqw}footer strong{font:650 2.1cqw/1.3 var(--serif)}footer span{font-size:1.4cqw}footer p{font-size:1.12cqw;line-height:1.5;color:#315467}::selection{background:#ffe1a0;color:var(--ink)}

/* Dense reference layout: full text stays within each aligned panel. */
.sheet{grid-template-rows:5cqw 15cqw 78cqw 16cqw 18cqw 5cqw}
.left{grid-template-rows:17cqw 15cqw 12cqw 15cqw 15cqw}
.right{grid-template-rows:28cqw 21cqw 13cqw 13cqw}
.center{grid-template-rows:55cqw 23cqw}
.panel{padding:1cqw}.panel h2{font-size:2.15cqw;margin-bottom:.65cqw}
.panel p,.panel li{font-size:1.5cqw;line-height:1.55}.panel .quote{font-size:1.85cqw;line-height:1.65}.panel .large{font-size:1.75cqw;line-height:1.5}
.panel .sub{font-size:1.35cqw}.panel .note{font-size:1.2cqw}
.monologue{padding:1.6cqw 2.2cqw}.monologue p{font-size:2.25cqw;line-height:1.65}
.routines,.care{min-height:0}.routines .panel{min-height:0}
.care p{font-size:1.75cqw;line-height:1.6}.care-head{margin-bottom:.75cqw}
.state-panel .scores div{line-height:2.45cqw}.state-panel .note{margin-top:.35cqw;font-size:1.15cqw}
.scores div{border-bottom:0}
/* Identity is one reading unit, with the result title alongside it. */
.headline{grid-template-columns:27% minmax(0,1fr);gap:0}
.type strong{font-size:9.1cqw}.type h1{font-size:3.4cqw}
.identity-summary{height:100%;padding:1cqw 0 1cqw 3cqw;display:flex;flex-direction:column;justify-content:center;gap:1.25cqw;min-width:0}
.identity-line{display:flex;align-items:baseline;justify-content:space-between;gap:1.3cqw}
.pet-name{display:flex;align-items:baseline;gap:1.25cqw;white-space:nowrap}
.pet-name>span{font:650 2.75cqw/1.25 var(--sans);color:#775223}
.pet-name>strong{font:750 4.85cqw/1.15 var(--serif);color:var(--blue)}
.identity-traits{font:500 1.45cqw/1.4 var(--sans);color:var(--body);white-space:nowrap}
.personality-summary{display:flex;justify-content:space-between;gap:1cqw;font:650 3.45cqw/1.4 var(--serif);padding-bottom:1.2cqw}
.personality-summary>span,.personality-summary>strong{white-space:nowrap;font-weight:650}
.personality-summary>strong{color:var(--blue);transform:translateY(1.1cqw)}
h2 .section-icon{display:block;width:2.2cqw;height:2.2cqw;stroke-width:1.8;flex-shrink:0}
.panel h2,.monologue h2,.care-head h2{display:flex;align-items:center;gap:.65cqw}
.care-head h2 .section-icon{width:2.6cqw;height:2.6cqw}.monologue h2 .section-icon{stroke:#ffe3a0}
.panel li{padding:0;line-height:1.5}.panel li+li{margin-top:.2cqw}
.center figure{background:#b9dbe8}
/* Browser editing controls stay outside the shareable poster. */
body{padding-bottom:80px}.poster{width:min(100vw,calc((100svh - 80px) * 2 / 3),1200px)}
.editor-toolbar{position:fixed;z-index:10;inset:auto 0 0;background:#e4f0f4;border-top:1px solid #b5cbd5;padding:8px 12px;min-height:78px;font:14px/1.35 var(--sans);color:var(--ink)}
.editor-actions{display:flex;align-items:center;justify-content:center;gap:10px}.editor-toolbar button{border:1px solid #9cbccf;background:#edf5f7;color:#164762;border-radius:8px;padding:8px 14px;min-height:38px;font:600 14px/1.2 var(--sans);cursor:pointer}.editor-toolbar button:hover{background:#d1e6ef}.editor-toolbar button:focus-visible,.editor-toolbar select:focus-visible{outline:2px solid #126791;outline-offset:2px}.editor-toolbar button:disabled{opacity:.45;cursor:default}.editor-toolbar #photo-upload{background:#164762;color:#f5fafb;border-color:#164762;display:flex;align-items:center;gap:7px}.editor-toolbar #photo-upload:hover{background:#24607c}.editor-toolbar .section-icon{width:19px;height:19px;stroke-width:1.8}.editor-toolbar #photo-status{text-align:center;font-size:11px;margin-top:5px;color:#365b6e}.editor-toolbar #photo-status[data-error="true"]{color:#8b3e31}.editor-toolbar [hidden]{display:none!important}
.capture body{padding:0}.capture .poster{width:min(100vw,calc(100svh * 2 / 3),1200px)}.capture .editor-toolbar{display:none}
.personality-summary{font-size:4.05cqw;gap:1cqw}
h2>span{font:inherit!important;color:inherit!important;line-height:inherit!important;display:inline!important;text-align:inherit!important;letter-spacing:inherit!important;margin:0!important}
.sheet{font-size:1.5cqw}.type strong{display:block}.identity-summary{min-height:0;padding:.5cqw 0 .5cqw 3cqw;gap:.6cqw}.identity-line{align-items:center}

/* Compact summary and single, quiet photo action. */
.personality-summary{justify-content:flex-start;gap:.2cqw;font-size:4.35cqw}
body{padding-bottom:62px}.poster{width:min(100vw,calc((100svh - 62px) * 2 / 3),1200px)}
.editor-toolbar{min-height:60px;padding:8px 16px;display:flex;justify-content:center;align-items:center;gap:16px;background:#e3eff3;border-top-color:#a8c5d3}
.editor-toolbar .editor-actions{flex-shrink:0}.editor-toolbar #photo-upload{min-height:40px;padding:8px 13px;background:transparent;color:#175775;border:1px solid #7cabbf;border-radius:20px;font-size:13px;font-weight:600;gap:7px}
.editor-toolbar #photo-upload:hover{background:#cde4ee}.editor-toolbar #photo-upload .section-icon{width:17px;height:17px}.editor-toolbar #photo-status{font-size:11px;line-height:1.45;margin:0;max-width:210px;text-align:left}
.capture body{padding:0}.capture .poster{width:min(100vw,calc(100svh * 2 / 3),1200px)}.capture .editor-toolbar{display:none}
