@charset "UTF-8";
:root{color-scheme:light;--paper:#f5f1e7;--ink:#283e36;--muted:#7c8275;--green:#4d705b;--line:#d9ddce;--gold:#d7ad64;--white:#fffcf6;font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;font-synthesis:none}
*{box-sizing:border-box}html{background:var(--paper);scroll-behavior:smooth}body{margin:0;color:var(--ink);min-width:280px}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.48}button,a,input{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #d7ad64;outline-offset:4px}button{touch-action:manipulation}img{display:block;max-width:100%}h1,h2,p{margin:0}h1,h2{font-family:"STKaiti","KaiTi","Songti SC",serif}button{border:0}a{color:inherit}p{overflow-wrap:anywhere}[hidden]{display:none!important}.loading{padding:40px;text-align:center;color:var(--muted)}#app{width:100%;max-width:560px;margin:auto;min-height:100svh}.masthead{display:flex;justify-content:space-between;align-items:center;padding:21px 25px 16px;font-size:12px;letter-spacing:2px}.wordmark{font-weight:700;display:flex;align-items:center;gap:7px}.wordmark img{width:23px;height:23px}.edition{color:var(--muted);font-family:Georgia,serif;letter-spacing:1px}.home{padding-bottom:28px}.home-intro{text-align:center;padding:10px 22px 23px}.eyebrow{font-size:11px;color:var(--green);letter-spacing:3px;text-transform:uppercase}.home h1{font-size:clamp(29px,7.7vw,41px);line-height:1.45;margin:12px 0 11px;font-weight:800}.title-small{font-size:.76em;display:block;font-weight:500}.home-intro>p:last-child{font-size:13px;color:var(--muted);line-height:1.9}.hero{position:relative;margin:0 18px;border-radius:130px 130px 8px 8px;overflow:hidden;background:#e0e6d2;box-shadow:0 10px 25px #39493112}.hero>img{width:100%;height:310px;object-fit:cover;object-position:49% 57%}.hero-caption{position:absolute;bottom:17px;left:0;right:0;text-align:center;color:#fff9e6;font-family:"STKaiti","KaiTi",serif;font-size:17px;text-shadow:0 2px 7px #283124}.stamp{position:absolute;right:14px;top:21px;display:grid;place-content:center;text-align:center;width:61px;height:61px;background:#fcf0d9e8;border:1px solid #c5a265;border-radius:50%;transform:rotate(9deg);color:#82643a;font-size:10px;line-height:1.6;letter-spacing:2px}.meta{display:flex;justify-content:center;gap:0;margin:19px 0;font-size:12px;color:var(--muted)}.meta span{padding:0 20px}.meta span+span{border-left:1px solid var(--line)}.entrance{margin:0 25px;background:var(--white);border:1px solid var(--line);padding:20px 19px;border-radius:5px}.entrance-heading{display:flex;align-items:center;gap:7px;font-size:14px;margin-bottom:8px}.lock-icon{width:16px;height:16px}.entrance-copy{font-size:12px;color:var(--muted);line-height:1.7;margin-bottom:15px}.code-row{display:flex;gap:9px}.code-row input{border:1px solid var(--line);background:#f6f5ed;padding:12px 10px;width:100%;min-width:0;color:var(--ink);border-radius:4px;font-size:13px;letter-spacing:1px;line-height:22px}.primary{display:flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:13px 20px;color:#fffdf3;background:var(--green);border:1px solid var(--green);border-radius:5px;font-weight:600;font-size:14px;letter-spacing:1px}.code-row .primary{flex-shrink:0;padding:12px 15px}.wide{width:100%}.arrow{font-family:system-ui;font-size:20px;font-weight:400;line-height:1}.error{min-height:0;font-size:12px;color:#9a4a37;line-height:1.7;margin-top:9px}.error:empty{display:none}.footer-note{text-align:center;font-size:10px;color:#92968a;letter-spacing:1px;line-height:1.8;margin:21px 20px 0}.text-btn{padding:10px;background:none;color:var(--muted);font-size:12px;min-height:40px}.question-page{padding:0 25px 30px}.question-nav{display:flex;justify-content:space-between;align-items:center;margin:3px -10px 16px}.question-nav span{color:var(--muted);font-size:11px;letter-spacing:2px}.progress-top{display:flex;justify-content:space-between;align-items:end;font-size:12px;color:var(--muted);margin-bottom:12px}.progress-top strong{font-family:Georgia,serif;font-size:26px;font-weight:400;color:var(--green)}.progress-top strong small{font-size:13px;color:var(--muted);margin-left:4px}progress{width:100%;height:4px;display:block;appearance:none;border:0;border-radius:5px;background:#e1e5d8;overflow:hidden}progress::-webkit-progress-bar{background:#e1e5d8}progress::-webkit-progress-value{background:var(--green)}progress::-moz-progress-bar{background:var(--green)}.chapter{margin:34px 0 15px;display:flex;gap:11px;align-items:center;font-family:Georgia,serif;font-size:11px;letter-spacing:2px;color:#8b977e}.chapter:after{content:"";height:1px;width:35px;background:var(--line)}.question-title{font-family:inherit;font-size:21px;font-weight:600;line-height:1.7;margin-bottom:28px}.options{display:grid;gap:12px}.option{position:relative;display:flex;gap:16px;align-items:center;width:100%;padding:16px;text-align:left;border:1px solid var(--line);background:var(--white);border-radius:5px;min-height:69px;color:var(--ink);line-height:1.6;font-size:14px;transition:background .15s,border-color .15s}.option-letter{flex-shrink:0;display:grid;place-content:center;width:30px;height:30px;border:1px solid #d5dcc9;border-radius:50%;color:#809073;font-family:Georgia,serif;font-size:15px}.option[aria-pressed=true]{background:#eaf0df;border-color:#799071}.option[aria-pressed=true] .option-letter{background:var(--green);color:var(--white);border-color:var(--green)}.question-controls{display:flex;gap:12px;margin-top:28px}.secondary{background:transparent;border:1px solid var(--line);border-radius:5px;min-height:48px;padding:12px 20px;color:var(--green);font-size:13px}.question-controls .primary{flex:1}.question-help{font-size:11px;line-height:1.8;text-align:center;color:var(--muted);margin-top:18px}.result-page{padding:0 18px 30px}.result-cover{text-align:center;padding-top:4px;min-height:calc(100svh - 71px);display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.result-cover h1{font-size:clamp(27px,7.6vw,39px);line-height:1.3;margin:12px 0 18px;overflow-wrap:anywhere}.result-image-wrap{position:relative;width:100%;border-radius:100px 100px 8px 8px;overflow:hidden;background:#e0e6d2}.result-image{width:100%;height:clamp(235px,43svh,470px);object-fit:cover}.result-address{position:absolute;bottom:11px;left:14px;background:#fffae8df;padding:6px 10px;font-size:9px;letter-spacing:2px;color:#4c6349;border-radius:3px}.result-summary{font-family:"STKaiti","KaiTi",serif;line-height:1.75;font-size:19px;padding:18px 16px 13px}.tags{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.tag{border:1px solid #bcc8aa;border-radius:30px;padding:5px 12px;font-size:11px;color:var(--green)}.scroll-note{font-size:10px;color:#87917b;letter-spacing:2px;padding:20px 0;margin-top:auto}.result-actions{display:flex;gap:11px;justify-content:center;margin:8px 7px 28px}.result-actions .primary{flex:1}.details{padding:0 7px}.section-heading{font-size:24px;margin:27px 0 15px}.analysis-card{padding:21px 20px;margin-bottom:13px;border:1px solid var(--line);background:var(--white);border-radius:5px}.analysis-card h2{font-size:20px;margin-bottom:11px}.analysis-card p{font-size:13px;line-height:1.95;margin-bottom:10px;color:#627063}.analysis-card p:last-child{margin-bottom:0}.attributes{display:grid;gap:15px}.attribute-line{display:flex;justify-content:space-between;font-size:12px;margin-bottom:6px}.attribute-track{height:5px;background:#e3e8d9;border-radius:8px;overflow:hidden}.attribute-fill{height:100%;background:#829770}.result-bottom{display:flex;gap:12px;justify-content:center;margin:23px 0 0}.toast{position:fixed;z-index:10;left:50%;bottom:30px;transform:translateX(-50%);max-width:calc(100vw - 36px);background:#2d453e;color:#fffdf5;font-size:13px;line-height:1.7;padding:12px 19px;border-radius:5px;box-shadow:0 5px 30px #263b332a}.save-preview{margin:20px 7px;background:#fffdf7;border:1px solid var(--line);padding:12px}.save-preview img{width:100%;height:auto}.save-preview p{font-size:12px;color:var(--muted);margin-top:9px;text-align:center}.pending-message{font-size:13px;line-height:1.8;color:#7a715e;border-left:2px solid #d1b778;padding-left:12px}.busy{opacity:.7}
@media(min-width:700px){body{background:#e5e9df;padding:26px 0}#app{background:var(--paper);box-shadow:0 15px 80px #334b3717;min-height:calc(100svh - 52px);border:1px solid #dce0d2;border-radius:8px}.hero>img{height:355px}.home-intro{padding-top:16px}.home h1{font-size:41px}.result-cover{min-height:850px}.result-image{height:460px}}
@media(max-width:350px){.masthead{padding:17px 18px}.home-intro{padding-top:3px}.home h1{font-size:28px}.hero{margin:0 13px}.hero>img{height:260px}.entrance{margin:0 18px;padding:16px 13px}.code-row{flex-wrap:wrap}.code-row .primary{width:100%}.question-page{padding:0 18px 25px}.question-title{font-size:19px;margin-bottom:22px}.option{gap:12px;padding:14px;font-size:13px}.result-cover h1{font-size:27px}.result-summary{font-size:17px;padding:15px 8px 10px}.result-actions .primary,.result-actions .secondary{font-size:12px;padding:12px 11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.option{transition:none}}
.result-cover{min-height:calc(100svh - 65px);padding-top:0;padding-bottom:22px}.result-cover h1{font-size:clamp(24px,6.9vw,33px);margin:10px 0 14px}.result-image-wrap{flex-shrink:0;border-radius:60px 60px 6px 6px;background:#dfe6d5}.art-backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(13px);transform:scale(1.08);opacity:.45}.result-image{position:relative;height:clamp(235px,59svh,560px);object-fit:contain}.result-summary{font-size:18px;padding:14px 9px 10px;line-height:1.65}.tag{padding:4px 10px}.cover-actions{display:flex;width:100%;align-items:center;gap:7px;justify-content:center;padding-top:18px;margin-top:auto}.cover-actions .primary,.cover-actions .secondary{padding:11px 12px;font-size:12px;min-height:44px;letter-spacing:0}.cover-actions .text-btn{padding:7px 5px;font-size:11px}.details>.eyebrow{padding-top:25px}.details>.section-heading{margin-top:10px}.art-fallback{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:15px;padding:20px;color:var(--green);font-size:12px;text-align:center;background:#e9ecdf}.art-fallback>span{font-family:Georgia,serif;font-size:72px}.art-failed>.result-image,.art-failed>.art-backdrop{visibility:hidden}.result-page[data-result=cloud] .result-image-wrap{background:#eaddee}.result-page[data-result=tower] .result-image-wrap{background:#242642}.result-page[data-result=library] .result-image-wrap{background:#4e4535}.result-page[data-result=mushroom] .result-image-wrap{background:#fae3d6}.result-page[data-result=rooftop] .result-image-wrap{background:#f3e1b5}.result-page[data-result=shelter] .result-image-wrap{background:#6b5a49}.result-page[data-result=windows] .result-image-wrap{background:#d6e4fc}
@media(max-width:350px){.result-page{padding-left:13px;padding-right:13px}.result-cover h1{font-size:24px;margin-top:7px;margin-bottom:11px}.result-summary{font-size:16px;padding-top:10px}.tag{font-size:10px;padding:3px 8px}.cover-actions{padding-top:12px;gap:5px}.result-cover{padding-bottom:16px}.result-image{height:49svh}}
@media(min-width:700px){.result-cover{min-height:850px}.result-image{height:455px}.cover-actions{max-width:420px}.result-cover h1{font-size:33px}}

#question-heading:focus{outline:none}
.auto-next-hint{flex:1;display:flex;align-items:center;justify-content:flex-end;font-size:12px;line-height:1.7;color:var(--muted)}
.option:disabled{opacity:1}.option:disabled:not([aria-pressed=true]){opacity:.6}.option[aria-pressed=true]{box-shadow:inset 0 0 0 1px #799071}
.result-page[data-result=abyss] .result-image-wrap{background:#194b64}.result-page[data-result=whale] .result-image-wrap{background:#5c668e}.result-page[data-result=rainbow] .result-image-wrap{background:#f0d5bd}.result-page[data-result=utopia] .result-image-wrap{background:#cfdace}.result-page[data-result=crystal] .result-image-wrap{background:#a99ebd}.result-page[data-result=lotus] .result-image-wrap{background:#b5c9ad}.result-page[data-result=turtle] .result-image-wrap{background:#67785d}.result-page[data-result=moon] .result-image-wrap{background:#c9bd8a}
.toast{pointer-events:none}
.site-registration{max-width:560px;margin:0 auto;padding:10px 20px 20px;text-align:center;font-size:11px;color:var(--muted);overflow-wrap:anywhere}
.save-preview-open{overflow:hidden}
.save-dialog{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:16px;background:#172c25bd;overscroll-behavior:contain}
.save-dialog-panel{display:flex;flex-direction:column;width:100%;max-width:420px;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow:hidden;background:var(--paper);border:1px solid #d6d8c6;border-radius:14px;padding:16px;box-shadow:0 16px 60px #142b244d}
.save-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0}
.save-dialog-heading h2{font-size:23px;line-height:1.4}.save-dialog-close{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;background:#e5e9dc;color:var(--green);font-size:27px;border-radius:50%}
.save-dialog-help{font-size:13px;line-height:1.7;color:var(--green);margin:6px 0 12px;text-align:center}
.save-dialog-art{min-height:0;flex-shrink:0}.save-dialog-art img{display:block;width:100%;height:auto;max-height:59vh;max-height:59dvh;object-fit:contain;-webkit-touch-callout:default;-webkit-user-select:auto;user-select:auto}
.save-dialog-actions{display:flex;justify-content:center;gap:10px;flex-shrink:0;margin-top:13px}.save-dialog-actions a{text-decoration:none}.save-dialog-actions .primary,.save-dialog-actions .secondary{flex:1;font-size:13px;padding:10px 13px;min-height:44px}
.save-dialog-tip{font-size:11px;line-height:1.7;color:var(--muted);margin-top:10px;text-align:center}
@media(max-width:350px),(max-height:650px){.save-dialog{padding:10px}.save-dialog-panel{padding:12px;max-height:calc(100vh - 20px);max-height:calc(100dvh - 20px)}.save-dialog-heading h2{font-size:20px}.save-dialog-art img{max-height:52vh;max-height:52dvh}.save-dialog-help{font-size:12px;margin-bottom:9px}}

/* 1.1.3：柔和彩色小图标，选择区域保持整行可点。 */
.option{gap:15px;padding:15px 17px;min-height:81px;border-radius:13px}
.option-illustration{position:relative;display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;border-radius:14px;background:#f0eee2;border:1px solid #e7e6d8;color:#667b65}
.option-icon{display:block;width:34px;height:34px;overflow:visible}
.option-illustration .option-letter{position:absolute;right:-5px;bottom:-5px;width:17px;height:17px;border:1px solid #d4dcc8;border-radius:50%;font-size:10px;line-height:1;background:#fffaf0;color:#7a8a70}
.option-text{display:block;min-width:0;flex:1;line-height:1.75;overflow-wrap:anywhere}
.option[aria-pressed=true] .option-illustration{background:#dde8d3;border-color:#c2d0b6}
.option[aria-pressed=true] .option-letter{background:var(--green);border-color:var(--green);color:#fffdf3}
.question-controls{margin-top:24px;align-items:center}
@media(max-width:350px){.option{gap:12px;padding:13px;min-height:77px}.option-illustration{width:36px;height:36px;flex-basis:36px;border-radius:11px}.option-icon{width:29px;height:29px}.option-illustration .option-letter{width:16px;height:16px;right:-4px;bottom:-4px;font-size:9px}}

/* 1.1.4：长图保持全宽可读，预览区独立滚动，关闭与保存操作始终可见。 */
.save-dialog-intro{flex-shrink:0}
.save-dialog-scroll{min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--paper);border:1px solid var(--line);border-radius:5px}
.save-dialog-scroll:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.save-dialog-art img{width:100%;height:auto;max-height:none;object-fit:initial}
.save-dialog-panel{height:calc(100vh - 32px);height:calc(100dvh - 32px)}
@media(max-width:350px),(max-height:650px){.save-dialog-panel{height:calc(100vh - 20px);height:calc(100dvh - 20px)}.save-dialog-art img{max-height:none}}

/* html2canvas 克隆页所需固定规则；由同源样式表提供，保留现有 CSP。 */
.___html2canvas___pseudoelement_before:before,.___html2canvas___pseudoelement_after:after{content:""!important;display:none!important}

/* 1.1.5：整幅建筑插画可点击保存；不占用封面排版空间。 */
.result-art-button{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;padding:0;background:transparent;border:0;border-radius:inherit;cursor:zoom-in}
.result-art-button:focus-visible{outline:3px solid var(--gold);outline-offset:-5px}
.art-fallback{z-index:2}.art-failed>.result-art-button{display:none}
.save-illustration .save-dialog-panel{height:auto;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px)}
.save-illustration .save-dialog-scroll{border:0;background:transparent;flex-shrink:1}
.save-illustration .save-dialog-art img{width:100%;height:auto;max-height:60vh;max-height:60dvh;object-fit:contain}
@media(max-width:350px),(max-height:650px){.save-illustration .save-dialog-panel{max-height:calc(100vh - 20px);max-height:calc(100dvh - 20px)}.save-illustration .save-dialog-art img{max-height:52vh;max-height:52dvh}}
