[hidden]{display:none!important}
.redeem-section{padding-top:25px}
.redeem-layout{display:grid;grid-template-columns:1fr 1.05fr;gap:52px;align-items:start;border-top:1px solid var(--line);padding-top:54px}
.redeem-layout h2{font-size:clamp(30px,3.3vw,44px);margin:8px 0 15px}
.redeem-layout>div>p:last-child{max-width:440px;color:var(--muted);font-size:15px}
.redeem-form{padding:26px 28px;background:#fff;border:1px solid var(--line)}
.redeem-form label,.directory-toolbar label,.record-panel label{display:block;font-weight:700;font-size:14px;margin-bottom:9px}
.redeem-row{display:flex;gap:10px}
input[type=text],input[type=search],textarea{font:inherit;color:var(--ink);border:1px solid #b7c0b7;background:#fff;border-radius:0;padding:10px 13px;min-height:48px;min-width:0;max-width:100%}
.redeem-row input{flex:1;width:100%;letter-spacing:.05em;text-transform:uppercase}
.redeem-row .button{white-space:nowrap;min-height:48px}
.form-status{font-size:14px;min-height:25px;margin:11px 0 0;color:var(--pine)}
.form-status.error{color:#9c4634}
.guide-view{min-height:calc(100vh - 165px);padding-top:58px}
.guide-view h1{font-size:clamp(36px,4vw,56px);margin:9px 0 20px}
.view-lead{color:var(--muted);max-width:760px;line-height:1.9}
.back-link{display:inline-flex;min-height:44px;align-items:center;text-decoration:none;color:var(--pine);font-weight:700;font-size:14px;margin-bottom:28px}
.back-link:hover{color:var(--accent)}
.state-banner{padding:14px 18px;background:#eef1e9;border-left:3px solid var(--pine);color:#42594a;font-size:14px;margin:25px 0}
.state-banner.warning{background:#f4ede1;border-color:#b98a53;color:#795c32}
.directory-toolbar{display:flex;align-items:end;gap:14px;margin:32px 0 8px;flex-wrap:wrap}
.directory-toolbar label{width:100%;margin:0}
.directory-toolbar input{flex:1;min-width:180px}
.outline-button{font:inherit;font-size:14px;font-weight:700;color:var(--pine);border:1px solid var(--pine);background:transparent;min-height:48px;padding:9px 20px;cursor:pointer}
.outline-button:hover{background:#eaf0e9}
button:disabled{opacity:.6;cursor:wait}
.outline-button:disabled{cursor:not-allowed}
.spot-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:27px}
.directory-heading{font:500 27px/1.4 "Noto Serif SC","Songti SC",serif;margin:34px 0 0}
.chapter-list{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:14px}
.chapter-card{min-height:115px}
.directory-card{display:block;text-decoration:none;background:#fff;border:1px solid var(--line);padding:24px;min-height:176px;transition:border-color .15s,transform .15s}
.directory-card:hover{border-color:var(--pine);transform:translateY(-2px)}
.directory-card h2{font:500 24px/1.4 "Noto Serif SC","Songti SC",serif;margin:12px 0 8px}
.directory-card p{font-size:13px;color:var(--muted);margin:0}
.directory-meta{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--pine);font-weight:700}
.directory-status{color:var(--accent)}
.empty-state{padding:42px 28px;border:1px dashed #b9c4b8;background:#fcfbf8;color:var(--muted);font-size:15px}
.spot-content{max-width:810px}
.reading-block,.task-panel,.record-panel{background:#fff;border:1px solid var(--line);padding:28px 32px;margin:19px 0}
.reading-block h2,.task-panel h2,.record-panel h2{font:500 25px/1.4 "Noto Serif SC","Songti SC",serif;margin:0 0 15px}
.reading-block p,.task-panel p{margin-bottom:14px}
.reading-block p:last-child,.task-panel p:last-child{margin-bottom:0}
.task-panel{background:#eef1e9;border-color:#ccd9cc}
.task-panel .question{font-size:19px;font-weight:700;line-height:1.7}
.task-actions,.record-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:21px}
.task-actions button,.record-actions button{font:inherit;min-height:44px;padding:8px 16px;border:1px solid var(--pine);background:#fff;color:var(--pine);cursor:pointer}
.task-actions button:hover,.record-actions button:hover{background:#e0e9dc}
.hint-list{margin:15px 0;padding-left:22px;color:#465b4c}
.answer-panel{border-top:1px solid #bdcbbd;padding-top:17px;margin-top:19px}
.answer-panel strong{display:block;color:var(--pine);margin-bottom:7px}
.record-panel textarea{display:block;width:100%;min-height:105px;resize:vertical}
.record-panel .record-status{font-size:14px;color:var(--muted);margin:10px 0 0}
.spot-footer{display:flex;gap:20px;align-items:center;flex-wrap:wrap;padding:23px 0;color:var(--muted);font-size:13px}
.my-card{background:#fff;border:1px solid var(--line);padding:28px 32px;margin:20px 0;max-width:710px}
.my-card h2{font:500 27px/1.4 "Noto Serif SC","Songti SC",serif;margin:0 0 10px}
.my-card p{font-size:14px;color:var(--muted);margin:0 0 12px}
.my-card a{display:inline-flex;min-height:44px;align-items:center;color:var(--pine);font-weight:700;text-decoration:none}
dialog{border:1px solid var(--line);padding:0;max-width:min(92vw,510px);color:var(--ink);background:var(--paper)}
dialog::backdrop{background:#14281f9c}
.dialog-inner{padding:31px 34px}
.dialog-inner h2{font-size:29px;margin:9px 0 18px}
.dialog-inner p:not(.section-kicker){font-size:15px;color:var(--muted)}
.dialog-actions{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-top:26px}
@media(max-width:840px){.redeem-layout{grid-template-columns:1fr;gap:20px}.redeem-form{max-width:650px}}
@media(max-width:840px){.chapter-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.hero h1{font-size:clamp(38px,10vw,45px);overflow-wrap:anywhere}.redeem-section{padding-top:10px}.redeem-layout{padding-top:42px}.redeem-form{padding:20px}.redeem-row{display:block}.redeem-row input{display:block;width:100%;margin-bottom:10px}.redeem-row .button{width:100%}.guide-view{padding-top:38px}.guide-view h1{font-size:36px}.directory-toolbar{display:block}.directory-toolbar input,.directory-toolbar button{display:block;width:100%;margin-top:10px}.spot-list,.chapter-list{grid-template-columns:1fr}.reading-block,.task-panel,.record-panel{padding:23px 21px}.dialog-inner{padding:24px}.dialog-actions button{flex:1}.my-card{padding:24px 22px}}
.photo-section{padding-top:20px}.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.photo-card{margin:0;background:#fff;border:1px solid var(--line);overflow:hidden}.photo-card img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;background:#e8e6dc}.photo-card figcaption{padding:18px 22px 20px}.photo-card strong{display:block;font:500 24px/1.4 "Noto Serif SC","Songti SC",serif}.photo-card p{font-size:13px;color:var(--muted);margin:8px 0}.photo-credit{display:block;font-size:12px;line-height:1.6;color:var(--muted);overflow-wrap:anywhere}.photo-credit a{color:var(--pine)}.spot-content>.photo-card{margin:20px 0 28px}
@media(max-width:600px){.photo-grid{grid-template-columns:1fr}.photo-card figcaption{padding:16px 18px}.photo-card strong{font-size:21px}}
