/* Homepage only: goal-led navigation with official cover and character art. */
.home-page main{padding-top:24px;max-width:1280px;display:block}
.purpose-home{--home-serif:"Noto Serif TC","PMingLiU","Songti TC",serif}
.purpose-home h2,.purpose-home h3,.purpose-home p,.purpose-home figure{margin:0}
.purpose-home a{text-decoration:none}
.purpose-home a:focus-visible,.purpose-home button:focus-visible,.purpose-home input:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.purpose-home .home-kicker{font-size:calc(10px * var(--guide-font-scale));font-weight:700;letter-spacing:2px;line-height:1.5;color:var(--gold2)}
.home-announcement{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:12px;padding:11px 18px;background:var(--bg2);border:1px solid var(--line);border-left:3px solid var(--gold);font-size:calc(13px * var(--guide-font-scale));line-height:1.5}
.home-announcement-label{flex:none;color:var(--gold2);font-weight:800;letter-spacing:1px}
.home-announcement p{flex:1;min-width:240px;color:var(--ink)}
.home-announcement-links{display:flex;gap:16px;flex-wrap:wrap;font-weight:700}
.home-announcement-links a{color:var(--gold2);white-space:nowrap}
.home-announcement-links a:hover{text-decoration:underline;text-underline-offset:3px}
.home-announcement-links button{font:inherit;font-weight:800;line-height:1.5;padding:3px 10px;border:1px solid var(--gold);border-radius:5px;background:var(--gold);color:var(--brand);cursor:pointer;white-space:nowrap}
.home-announcement-links button:hover{background:var(--bg);color:var(--gold2)}
.home-announcement-menu{flex:none;font-size:calc(12px * var(--guide-font-scale))}
.home-announcement-menu summary{cursor:pointer;padding:3px 8px;border:1px solid rgba(201,168,92,.45);border-radius:6px;color:var(--gold);list-style:none;white-space:nowrap}
.home-announcement-menu summary::-webkit-details-marker{display:none}
.home-announcement-menu summary:focus-visible,.home-announcement-menu a:focus-visible,.home-announcement-menu button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.home-announcement-menu[open] summary{background:var(--gold);color:var(--brand)}
.home-announcement-menu .home-announcement{position:absolute;right:0;top:calc(100% + 8px);width:min(680px,calc(100vw - 32px));max-height:70dvh;overflow:auto;box-sizing:border-box;margin:0;padding:18px;border-radius:8px;box-shadow:0 6px 20px #0003;z-index:30}
.home-announcement-menu .home-announcement-label{flex-basis:100%}
.home-announcement-menu .home-announcement p{flex-basis:100%;min-width:0;max-width:none;color:var(--ink);margin:0}
.home-announcement-menu a{text-decoration:none}
.home-page .head:has(.home-announcement-menu[open]){z-index:16}
.home-updates-dialog{width:min(680px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:0;border:1px solid var(--gold);border-radius:12px;background:var(--bg2);color:var(--ink);box-shadow:0 20px 70px #0008}
.home-updates-dialog::backdrop{background:rgba(5,15,22,.72)}
.home-updates-head{display:flex;align-items:start;justify-content:space-between;gap:16px;padding:20px 24px;border-bottom:1px solid var(--line)}
.home-updates-head span{color:var(--gold2);font-size:calc(12px * var(--guide-font-scale));font-weight:800;letter-spacing:1px}
.home-updates-head h2{margin:3px 0 0;font-size:calc(23px * var(--guide-font-scale))}
.home-updates-head button{width:34px;height:34px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);font:inherit;cursor:pointer}
.home-updates-list{padding:0 24px 24px}
.home-updates-list article{padding:18px 0;border-bottom:1px solid var(--line)}
.home-updates-list article:last-child{border-bottom:0;padding-bottom:0}
.home-updates-list time{color:var(--gold2);font-size:calc(12px * var(--guide-font-scale));font-weight:800}
.home-updates-list h3{margin:4px 0 6px;font-size:calc(17px * var(--guide-font-scale))}
.home-updates-list p{margin:0;color:var(--ink2);font-size:calc(14px * var(--guide-font-scale));line-height:1.65}
.home-updates-list article>div{display:flex;gap:6px 16px;flex-wrap:wrap;margin-top:10px;font-size:calc(13px * var(--guide-font-scale));font-weight:700}
.home-updates-list a{color:var(--gold2)}
.home-updates-list a:hover{text-decoration:underline;text-underline-offset:3px}
.home-intro{display:grid;grid-template-columns:1fr 330px;gap:36px;align-items:center;position:relative;isolation:isolate;padding:38px 56px;overflow:hidden;background:#132f38 url('img/home/key-art.webp') center/cover;color:#f5f0e4;border:1px solid #b79c5c;border-radius:3px}
.home-intro::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,#132f38ee,#132f3888);z-index:-1}
.home-intro::after{content:"";position:absolute;inset:10px;border:1px solid #c9a85c33;pointer-events:none}
.home-intro .home-kicker{color:#d8bd7c;letter-spacing:2.5px}
.home-kicker span{display:inline-block;margin-left:16px;letter-spacing:2px}
.home-intro h2{font-family:var(--home-serif);font-size:clamp(calc(32px * var(--guide-font-scale)),3.5vw,calc(48px * var(--guide-font-scale)));font-weight:700;line-height:1.3;letter-spacing:2px;margin:18px 0}
.home-intro h2 em{font-style:normal;color:#e4c985}
.home-lead{color:#cfd8d7;font-size:calc(15px * var(--guide-font-scale));line-height:1.9}
.home-start{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;margin-top:24px;font-size:calc(13px * var(--guide-font-scale));font-weight:700;position:relative;z-index:1}
.home-start a:first-child{padding:11px 16px;background:#dfc17d;color:#152f36;border:1px solid #dfc17d}
.home-start a:last-child{color:#f0e6ce;border-bottom:1px solid #d1b87266;padding:9px 0}
.home-start span{margin-left:18px}
.home-cover{position:relative;z-index:1;justify-self:center;width:270px;padding:8px;background:#0c232a;border:1px solid #c9a85c77;box-shadow:12px 14px 0 #c9a85c14;transform:rotate(3deg)}
.home-cover img{display:block;width:100%;height:auto}
.home-cover figcaption{padding:12px 6px 5px;font-family:var(--home-serif);font-weight:700;font-size:calc(15px * var(--guide-font-scale));letter-spacing:3px;display:flex;flex-wrap:wrap;gap:4px;justify-content:space-between;align-items:center}
.home-cover figcaption span{font-size:calc(8px * var(--guide-font-scale));font-family:var(--sans);letter-spacing:1px;color:#cfb980}
.home-search{display:grid;grid-template-columns:280px 1fr;gap:20px;padding:22px 28px;border:1px solid var(--line);border-top:0;background:var(--bg2);align-items:center}
.home-search-label h2{font-size:calc(16px * var(--guide-font-scale));letter-spacing:.5px}
.home-search-label p{font-size:calc(11px * var(--guide-font-scale));margin-top:4px;color:var(--ink2);letter-spacing:1px}
.home-search-box{position:relative;display:flex;align-items:stretch;border:1px solid var(--line);background:var(--bg);min-width:0}
.home-search-box input{width:100%;min-width:0;padding:12px 14px;border:0;background:transparent;color:var(--ink);font:inherit;font-size:calc(16px * var(--guide-font-scale));outline-offset:0}
.home-search-box input::placeholder{color:var(--ink2);font-size:calc(14px * var(--guide-font-scale))}
.home-search-box button{font:inherit;font-size:calc(13px * var(--guide-font-scale));font-weight:700;border:0;border-left:1px solid var(--line);padding:10px 20px;white-space:nowrap;cursor:pointer;background:var(--brand);color:#f5f0e4}
.home-search-box button span{margin-left:12px}
.home-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px!important;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.home-section-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:38px 0 18px}
.home-section-heading h2,.home-checklist h2{font-family:var(--home-serif);font-size:calc(25px * var(--guide-font-scale));letter-spacing:1px;line-height:1.4;margin-top:6px}
.home-section-heading>p,.home-section-heading>a{color:var(--ink2);font-size:calc(12px * var(--guide-font-scale))}
.home-section-heading>a:hover{color:var(--gold2);text-decoration:underline}
.home-goals{scroll-margin-top:calc(var(--guide-nav-offset,60px) + 18px)}
.home-goal-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);background:var(--bg2)}
.home-goal{padding:24px 20px 20px;min-width:0;position:relative}
.home-goal+.home-goal{border-left:1px solid var(--line)}
.home-goal-no{font-family:Georgia,serif;color:var(--gold2);font-size:calc(13px * var(--guide-font-scale));letter-spacing:1px;display:block;margin-bottom:12px}
.home-goal h3{font-family:var(--home-serif);font-size:calc(22px * var(--guide-font-scale));letter-spacing:1px}
.home-goal>p{color:var(--ink2);font-size:calc(12px * var(--guide-font-scale));line-height:1.8;margin:9px 0 18px;min-height:44px;max-width:24ch}
.home-goal-primary{display:flex;gap:6px;justify-content:space-between;align-items:center;background:color-mix(in srgb,var(--gold) 16%,var(--bg));border:1px solid color-mix(in srgb,var(--gold) 45%,var(--line));padding:10px 12px;font-size:calc(13px * var(--guide-font-scale));font-weight:700}
.home-goal-primary:hover{background:color-mix(in srgb,var(--gold) 30%,var(--bg))}
.home-goal-links{display:grid;margin-top:14px;gap:0}
.home-goal-links a{display:flex;justify-content:space-between;gap:8px;font-size:calc(12px * var(--guide-font-scale));padding:7px 0;color:var(--ink2)}
.home-goal-links a:hover{color:var(--gold2);text-decoration:underline}
.home-goal-links span{color:var(--gold2)}
.home-route-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.home-route{--route-color:#5394ad;border:1px solid var(--line);background:var(--bg2);overflow:hidden;min-width:0}
.route-dietrich{--route-color:#827499}.route-theodora{--route-color:#bd9b52}.route-leda{--route-color:#b56464}
.home-route-art{position:relative;height:212px;display:block;overflow:hidden;background:radial-gradient(ellipse at 50% 100%,color-mix(in srgb,var(--route-color) 23%,var(--bg)),var(--bg) 75%);border-bottom:1px solid var(--line)}
.home-route-number{position:absolute;left:15px;top:5px;font:calc(76px * var(--guide-font-scale))/1.2 Georgia,serif;color:color-mix(in srgb,var(--route-color) 20%,transparent);pointer-events:none}
.home-route-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;transition:transform .25s ease}
.home-route-art:hover img{transform:scale(1.04)}
.home-route-copy{padding:17px 16px 16px;border-bottom:3px solid var(--route-color)}
.home-route h3{font-family:var(--home-serif);font-size:calc(21px * var(--guide-font-scale));letter-spacing:1px}
.home-route-copy>p{font-size:calc(12px * var(--guide-font-scale));color:var(--ink2);margin:5px 0 16px}
.home-route-copy>div{display:flex;gap:16px;flex-wrap:wrap}
.home-route-copy a{font-size:calc(12px * var(--guide-font-scale));font-weight:700;display:flex;gap:8px;align-items:center}
.home-route-copy a:hover{text-decoration:underline;color:var(--gold2)}
.home-checklist{display:grid;grid-template-columns:1fr 1.3fr;gap:40px;margin-top:36px;padding:28px 32px;background:var(--brand);color:#f1eddf;border-top:2px solid var(--gold)}
.home-checklist .home-kicker{color:#dcc486}
.home-checklist h2{font-size:calc(24px * var(--guide-font-scale))}
.home-checklist>div>p:last-child{font-size:calc(13px * var(--guide-font-scale));color:#cfd8d7;margin-top:10px}
.home-check-links{display:grid;grid-template-columns:1fr 1fr;gap:0 22px;align-content:start}
.home-check-links a{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid #ffffff22;font-size:calc(12px * var(--guide-font-scale))}
.home-check-links a:hover{color:#e4c985}
.home-check-links .home-all-guides{grid-column:1/-1;justify-content:flex-start;gap:16px;color:#e4c985;border:0;margin-top:5px}
.purpose-home .home-image-credit{font-size:calc(10px * var(--guide-font-scale));color:var(--ink2);text-align:right;margin-top:14px}
.home-image-credit a{text-decoration:underline;text-underline-offset:3px}
@media(min-width:1500px){.home-page main{max-width:1440px}.home-goal{padding:26px}.home-route-art{height:244px}}
@media(max-width:1000px){.home-intro{grid-template-columns:1fr 250px;padding:30px;gap:20px}.home-cover{width:220px}.home-goal-grid{grid-template-columns:1fr 1fr}.home-goal:nth-child(3){border-left:0}.home-goal:nth-child(n+3){border-top:1px solid var(--line)}.home-goal>p{max-width:none;min-height:0}.home-search{grid-template-columns:220px 1fr;padding:20px}.home-route-grid{gap:12px}.home-route-art{height:170px}.home-checklist{grid-template-columns:1fr;gap:20px}}
@media(max-width:620px){.home-page main{padding-top:14px}.home-intro{grid-template-columns:minmax(0,1fr) 110px;gap:12px;padding:26px 20px}.home-intro .home-kicker{font-size:calc(8px * var(--guide-font-scale));letter-spacing:1px}.home-kicker span{margin-left:0;display:block;margin-top:4px}.home-intro h2{font-size:calc(29px * var(--guide-font-scale));letter-spacing:1px;margin:14px 0}.home-lead{font-size:calc(12px * var(--guide-font-scale))}.home-lead br{display:none}.home-cover{width:105px;padding:4px;box-shadow:6px 7px 0 #c9a85c14;align-self:start;margin-top:28px!important}.home-cover figcaption{padding:7px 2px 3px;font-size:calc(10px * var(--guide-font-scale));letter-spacing:1px}.home-cover figcaption span{display:none}.home-start{gap:10px;margin-top:18px;font-size:calc(11px * var(--guide-font-scale))}.home-start a:first-child{padding:8px 10px}.home-start span{margin-left:4px}.home-search{grid-template-columns:1fr;gap:10px;padding:16px}.home-search-label{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.home-search-label h2{font-size:calc(14px * var(--guide-font-scale))}.home-search-label p{font-size:calc(10px * var(--guide-font-scale));letter-spacing:0;margin:0}.home-search-box button{padding:10px 12px}.home-search-box button span{margin-left:3px}.home-search-box input{padding:12px 10px}.home-search-box input::placeholder{font-size:calc(12px * var(--guide-font-scale))}.home-section-heading{margin-top:28px;align-items:start;flex-wrap:wrap;gap:8px}.home-section-heading h2{font-size:calc(22px * var(--guide-font-scale))}.home-section-heading>p{display:none}.home-goal{padding:16px 12px}.home-goal h3{font-size:calc(20px * var(--guide-font-scale))}.home-goal>p{font-size:calc(11px * var(--guide-font-scale));min-height:40px;margin:8px 0 12px}.home-goal-primary{padding:9px 7px;font-size:calc(11px * var(--guide-font-scale))}.home-goal-links a{font-size:calc(11px * var(--guide-font-scale));line-height:1.8}.home-goal-no{margin-bottom:8px}.home-route-grid{grid-template-columns:1fr 1fr;gap:12px}.home-route-art{height:180px}.home-route-copy{padding:14px 12px}.home-route h3{font-size:calc(19px * var(--guide-font-scale))}.home-route-copy>p{font-size:calc(11px * var(--guide-font-scale));min-height:34px;margin-bottom:10px}.home-route-copy>div{gap:10px}.home-route-copy a{font-size:calc(11px * var(--guide-font-scale));gap:4px}.home-checklist{padding:22px 20px;margin-top:28px}.home-checklist h2{font-size:calc(22px * var(--guide-font-scale))}.home-check-links{grid-template-columns:1fr}.home-check-links a{font-size:calc(12px * var(--guide-font-scale))}.purpose-home .home-image-credit{text-align:left;line-height:1.7}}
@media(max-width:360px){.home-intro{grid-template-columns:1fr;padding:24px 18px}.home-cover{width:120px;justify-self:end;margin-top:0!important}.home-intro-copy{grid-column:1}.home-cover{grid-row:2}.home-goal-grid{grid-template-columns:1fr}.home-goal+.home-goal{border-left:0;border-top:1px solid var(--line)}.home-goal>p{min-height:0}.home-goal-primary{font-size:calc(13px * var(--guide-font-scale));padding:11px}.home-goal-links a{font-size:calc(12px * var(--guide-font-scale))}.home-route-art{height:150px}.home-search-label p{display:none}}
@media(prefers-reduced-motion:reduce){.home-route-art img{transition:none}}

/* Independent simulator preview; the homepage and simulator share the catalogs. */
.home-simulator{display:grid;grid-template-columns:1fr 1.05fr;gap:36px;align-items:center;margin-top:30px;padding:32px;background:var(--bg2);border:1px solid var(--line);border-top:3px solid var(--gold);scroll-margin-top:calc(var(--guide-nav-offset,60px) + 18px)}
.home-simulator-copy h2{font-family:var(--home-serif);font-size:calc(30px * var(--guide-font-scale));letter-spacing:1px;margin-top:8px}
.purpose-home .home-simulator-hook{font-size:calc(17px * var(--guide-font-scale));font-weight:700;line-height:1.6;margin-top:10px}
.home-simulator-copy>p:not(.home-kicker):not(.home-simulator-hook){font-size:calc(13px * var(--guide-font-scale));color:var(--ink2);line-height:1.9;margin-top:10px;max-width:36ch}
.home-simulator-copy ul{display:flex;flex-wrap:wrap;gap:6px 16px;padding:0;margin:16px 0 22px;list-style:none;font-size:calc(12px * var(--guide-font-scale));color:var(--ink2)}
.home-simulator-copy li::before{content:"✓";color:var(--gold2);margin-right:6px;font-weight:700}
.home-simulator-cta{display:inline-flex;justify-content:space-between;gap:26px;align-items:center;padding:12px 18px;background:var(--brand);color:#f5f0e4;border:1px solid var(--gold);font-weight:700;font-size:calc(14px * var(--guide-font-scale))}
.home-simulator-cta:hover{background:var(--brand2);box-shadow:0 0 0 2px color-mix(in srgb,var(--gold) 35%,transparent)}
.home-simulator-sample{min-width:0;background:var(--bg);padding:20px 22px;border:1px solid var(--line)}
.purpose-home .home-sample-label{font-size:calc(11px * var(--guide-font-scale));font-weight:700;color:var(--gold2);letter-spacing:1px;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.home-sample-label span{color:var(--ink2);letter-spacing:0;font-weight:400;font-size:calc(10px * var(--guide-font-scale))}
.home-sample-pair{display:flex;gap:12px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}
.home-sample-pair>div{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.home-sample-pair img{width:40px;height:44px;object-fit:contain;flex:none}
.home-sample-pair small{display:block;font-size:calc(10px * var(--guide-font-scale));color:var(--ink2)}
.home-sample-pair b{font-size:calc(15px * var(--guide-font-scale));line-height:1.5}
.home-sample-plus{color:var(--gold2);font-size:calc(20px * var(--guide-font-scale))}
.home-sample-table{width:100%;border-collapse:collapse;margin:8px 0;font-size:calc(13px * var(--guide-font-scale));font-variant-numeric:tabular-nums}
.home-sample-table th,.home-sample-table td{padding:10px 6px;text-align:center;border-bottom:1px solid var(--line)}
.home-sample-table thead th{font-size:calc(10px * var(--guide-font-scale));color:var(--ink2);font-weight:400}
.home-sample-table th:first-child{text-align:left}
.home-sample-table td:last-child,.home-sample-table th:last-child{background:color-mix(in srgb,var(--gold) 17%,var(--bg2))}
.home-sample-table strong{font-size:calc(19px * var(--guide-font-scale));color:var(--ink)}
.purpose-home .home-sample-note{font-size:calc(10px * var(--guide-font-scale));color:var(--ink2);line-height:1.8;margin-top:12px}
@media(max-width:800px){.home-simulator{grid-template-columns:1fr;gap:22px;padding:24px}.home-simulator-copy>p:not(.home-kicker):not(.home-simulator-hook){max-width:none}.home-simulator-copy ul{margin-bottom:18px}}
@media(max-width:420px){.home-simulator{padding:20px 16px;margin-top:22px}.home-simulator-copy h2{font-size:calc(26px * var(--guide-font-scale))}.purpose-home .home-simulator-hook{font-size:calc(15px * var(--guide-font-scale))}.home-simulator-copy>p:not(.home-kicker):not(.home-simulator-hook){font-size:calc(12px * var(--guide-font-scale))}.home-simulator-cta{width:100%;font-size:calc(13px * var(--guide-font-scale));padding:12px}.home-simulator-sample{padding:16px 12px}.home-sample-pair{gap:8px}.home-sample-pair>div{gap:6px}.home-sample-pair img{width:30px;height:36px}.home-sample-pair b{font-size:calc(13px * var(--guide-font-scale))}.home-sample-pair small{font-size:calc(10px * var(--guide-font-scale))}}
@media(max-width:620px){.home-announcement{gap:6px 12px;padding:11px 13px}.home-announcement p{flex-basis:100%;min-width:0;order:1}.home-announcement-links{order:2;margin-left:0}.home-updates-head{padding:16px}.home-updates-list{padding:0 16px 18px}}

/* Keep the search action distinct from the editable field. */
.home-search-box{gap:16px;border:0;background:transparent}
.home-search-box input{border:1px solid var(--line);background:var(--bg)}
.home-search-box button{border:1px solid var(--line);padding-inline:24px}
@media(max-width:620px){.home-search-box{gap:12px}.home-search-box button{padding-inline:16px}}
