:root {
  --ink:#232323;
  --green:#232323;
  --green-dark:#111;
  --green-tint:#f2f2f2;
  --brand-yellow:#ffe04b;
  --brand-pale:#fff8d6;
  --brand-line:#e8d989;
  --line:#dce2e8;
  --canvas:#f5f6f8;
  --white:#fff;
  --radius:6px;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;
  color:var(--ink);
  background:var(--canvas);
  font-synthesis:none;
}

* { box-sizing:border-box; }
body { margin:0; min-height:100vh; font-size:14px; line-height:1.65; }
body.landing-mode { background:#faf9f5; }
.landing-mode .site-header { background:var(--brand-yellow); border-color:var(--brand-line); }
button,input,select { font:inherit; }
input::placeholder { color:var(--ink); opacity:1; }
button,a,input,select,summary { -webkit-tap-highlight-color:transparent; }
button { border:0; cursor:pointer; }
button:disabled { cursor:default; color:var(--ink); background:#ededed; opacity:1; }
a { color:inherit; text-decoration:none; }
button,select,input { outline-offset:3px; }
button:focus-visible,a:focus-visible,summary:focus-visible { outline:2px solid var(--green); outline-offset:3px; }
input:focus,select:focus { border-color:var(--green); outline:2px solid #23232320; }
input[type=checkbox] { accent-color:var(--green); width:16px; height:16px; flex:none; }
h1,h2,h3,p { margin:0; }
fieldset { min-width:0; margin:0; padding:0; border:0; }
legend { padding:0; }
[hidden] { display:none!important; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; left:16px; top:-100px; z-index:100; background:var(--green); color:white; padding:10px 18px; border-radius:4px; }
.skip-link:focus { top:10px; }

.site-header { position:sticky; top:0; z-index:30; height:72px; border-bottom:1px solid var(--line); background:#fff; }
.header-inner { max-width:1360px; padding:0 36px; height:100%; margin:auto; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.brand { display:flex; align-items:center; gap:10px; font-size:22px; font-weight:700; white-space:nowrap; }
.brand-mark { display:block; width:36px; height:36px; flex:none; border:2px solid var(--ink); border-radius:7px; background:var(--brand-yellow); }
.brand-caption { display:block; font-size:11px; font-weight:400; color:var(--ink); margin-top:0; }
.workspace-actions { display:flex; align-items:center; gap:22px; }
.wishlist-toggle { background:#fff; border:1px solid #bccbd8; border-radius:4px; padding:8px 13px; color:var(--green); font-size:13px; font-weight:600; white-space:nowrap; }
.wishlist-toggle:hover,.wishlist-toggle[aria-pressed=true] { background:var(--green-tint); border-color:var(--green); }
.text-button { padding:0; background:none; color:var(--green); font-size:12px; }
.change-access-code { color:var(--ink); font-size:12px; white-space:nowrap; }
.subtle-choice:hover,.text-button:hover { text-decoration:underline; text-underline-offset:3px; }

.workspace { max-width:1360px; padding:28px 36px 0; margin:auto; }
.page-intro { margin-bottom:24px; }
.page-intro h1 { font-size:26px; font-weight:700; line-height:1.45; margin-bottom:7px; }
.page-intro p { color:var(--ink); font-size:13px; }
.eyebrow { font-size:13px; font-weight:600; color:var(--green); }
.workspace-grid { display:grid; grid-template-columns:280px minmax(0,1fr); gap:24px; align-items:start; }
.filter-panel { position:sticky; top:88px; background:var(--brand-pale); border:1px solid var(--brand-line); border-radius:var(--radius); max-height:calc(100vh - 104px); display:flex; flex-direction:column; }
.filter-title { padding:17px 18px; display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--brand-line); background:var(--brand-yellow); border-radius:5px 5px 0 0; flex:none; }
.filter-title h2 { font-size:15px; }
.filter-scroll { padding:18px; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#cbd3dc transparent; }
.filter-group { margin-bottom:22px; }
.filter-group>label,.filter-group legend { display:block; font-size:13px; font-weight:600; margin-bottom:8px; }
.filter-limit { color:var(--ink); font-size:12px; font-weight:600; white-space:nowrap; }
select,input[type=search],input[type=text] { border:1px solid #cbd3dc; background:#fff; border-radius:4px; padding:8px 10px; color:var(--ink); width:100%; min-width:0; }
select { cursor:pointer; font-size:13px; min-height:38px; }
.filter-group .sub-label { font-size:12px; margin:10px 0 5px; font-weight:400; }
.choice-list { display:flex; flex-wrap:wrap; gap:6px; }
.choice { padding:5px 9px; border-radius:4px; border:1px solid var(--line); background:#fff; font-size:12px; line-height:1.6; color:var(--ink); max-width:100%; text-align:left; min-height:32px; }
.choice:hover { border-color:#8fa9bf; background:#f7f9fb; }
.choice[aria-pressed=true] { color:var(--green-dark); background:var(--green-tint); border-color:#8caac1; font-weight:600; }
.filter-panel .choice:hover { background:#fff3b0; border-color:#b79c37; }
.filter-panel .choice[aria-pressed=true] { background:var(--brand-yellow); color:var(--ink); border-color:#9f8728; }
.filter-panel .filter-footer { border-color:var(--brand-line); }
.filter-panel .choice,.filter-panel .check-label,.filter-panel .no-options { color:var(--ink); }
.subtle-choice { background:none; padding:0; color:var(--ink); font-size:12px; font-weight:400; margin-bottom:9px; min-height:26px; }
summary { font-size:12px; color:var(--green); cursor:pointer; list-style:none; padding:10px 0 5px; }
summary::-webkit-details-marker { display:none; }
summary:after { content:"＋"; float:right; color:var(--ink); margin-left:8px; }
details[open]>summary:after { content:"−"; }
.filter-panel details>summary { display:flex; align-items:center; gap:8px; width:fit-content; max-width:100%; min-height:36px; margin:9px 0; padding:6px 9px; border:1px solid #c7ad42; border-radius:4px; background:#fff; color:var(--ink); font-size:12px; font-weight:400; }
.filter-panel details>summary:after { float:none; display:grid; place-items:center; flex:none; width:20px; height:20px; margin:0; border-radius:3px; background:var(--brand-yellow); color:var(--ink); font-size:16px; line-height:1; }
.filter-panel details>summary:hover { background:#fff3b0; border-color:#9f8728; }
#city-search { font-size:13px; margin:5px 0 10px; padding:8px 9px; }
.city-results,.option-scroll { max-height:200px; overflow:auto; padding:1px; }
.no-options { font-size:12px; color:var(--ink); padding:5px 0; }
.filter-scroll>.filter-group:last-child { margin-bottom:0; }
.filter-group>.strict-label { display:flex; margin:12px 0 0; align-items:flex-start; font-size:12px; font-weight:400; }
.strict-label input { margin-top:3px!important; }
.filter-footer { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:13px 18px; border-top:1px solid var(--line); flex:none; }
.mobile-only,.mobile-results-link,#filter-backdrop { display:none; }

.results-area { min-width:0; scroll-margin-top:88px; }
.update-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin:0 0 16px; padding:17px 20px; border:1px solid var(--line); border-radius:4px; background:#fff; color:var(--ink); }
.update-stat { min-width:0; text-align:center; }
.update-stat strong { display:block; color:var(--ink); font-size:24px; font-weight:700; line-height:1.25; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.update-stat span { display:block; margin-top:5px; color:var(--ink); font-size:12px; line-height:1.5; }
.search-bar { height:46px; display:flex; align-items:center; background:#fff; border:1px solid #cbd3dc; border-radius:4px; padding:0 14px; }
.search-bar input { padding:8px 0; border:0; border-radius:0; background:transparent; font-size:14px; height:100%; }
.search-bar input:focus { outline:none; }
.search-bar:focus-within { border-color:var(--green); outline:2px solid #23232320; outline-offset:1px; }
.selected-filters { display:flex; gap:7px; flex-wrap:wrap; margin:12px 0; }
.selected-filters:empty { margin:0; }
.selected-tag { font-size:12px; background:var(--green-tint); border:1px solid #c6d6e2; padding:4px 9px; color:var(--green-dark); border-radius:4px; display:flex; gap:9px; align-items:center; min-height:32px; max-width:100%; overflow-wrap:anywhere; }
.selected-tag span { font-size:17px; line-height:1; }
.results-toolbar { display:flex; gap:16px; align-items:flex-start; justify-content:space-between; margin:22px 0 14px; }
.results-toolbar h2 { font-size:19px; font-weight:600; }
#results-heading { scroll-margin-top:88px; }
.results-toolbar h2 strong { color:var(--green); }
.sort-label { flex:none; }
.sort-label select { background:#fff; min-height:33px; font-size:12px; padding:5px 8px; max-width:145px; }
.check-label { display:flex; align-items:center; gap:6px; cursor:pointer; font-size:12px; line-height:1.65; }
.check-label input { margin:0; }
.cards { display:flex; flex-direction:column; gap:14px; }
.recruitment-card { border:1px solid var(--line); border-radius:var(--radius); background:#fff; padding:20px 22px 18px; overflow:hidden; scroll-margin-top:88px; }
.card-heading { display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.company-avatar { background:#f0f3f6; color:var(--ink); border:1px solid var(--line); width:36px; height:36px; flex:none; border-radius:4px; display:grid; place-items:center; font-size:16px; font-weight:700; }
.company-heading { min-width:0; flex:1; }
.company-heading h3 { font-size:19px; line-height:1.5; font-weight:700; overflow-wrap:anywhere; }
.card-tags { display:flex; gap:6px; align-items:center; margin-top:5px; flex-wrap:wrap; }
.badge { font-size:11px; line-height:1.65; border-radius:3px; padding:2px 6px; background:#f2f4f7; color:var(--ink); overflow-wrap:anywhere; }
.type-badge { background:#ffe04b; }
.batch-badge { background:#a9d9fa; }
.nature-badge { background:#d6bafa; }
.opened-badge { color:var(--ink); font-size:12px; align-self:flex-start; flex:none; }
.opened-badge:before { content:"✓ "; }
.card-row { display:grid; grid-template-columns:60px minmax(0,1fr); gap:12px; margin-bottom:8px; font-size:13px; line-height:1.8; }
.card-label { color:var(--ink); font-size:12px; padding-top:1px; }
.card-value { color:var(--ink); overflow-wrap:anywhere; white-space:pre-wrap; }
.audience-token { display:inline-block; white-space:nowrap; color:var(--ink); padding:1px 5px; border-radius:3px; font-size:12px; line-height:1.8; }
.year-2027 { background:#ffe04b; }
.year-2028 { background:#a9d9fa; }
.year-2029 { background:#d6bafa; }
.year-other { background:#ffc996; }
.education-college { background:#a8e2df; }
.education-bachelor { background:#afe2b6; }
.education-master { background:#ffc996; }
.education-doctor { background:#efb8d8; }
.education-graduate { background:#becbff; }
.position-value { color:var(--ink); font-size:inherit; font-weight:500; }
.card-row mark,.company-heading mark,.referral-item mark { background:#fff0b8; color:inherit; padding:0 1px; }
.card-metadata { display:flex; gap:7px 20px; flex-wrap:wrap; font-size:12px; color:var(--ink); margin-top:13px; padding-top:12px; border-top:1px solid #e9edf1; }
.card-metadata span { max-width:100%; overflow-wrap:anywhere; }
.card-metadata b { font-weight:400; color:var(--ink); margin-right:6px; }
.referral-item { background:#f7f9fb; border:1px solid #e7ecf0; padding:12px 14px; border-radius:4px; margin-top:9px; font-size:12px; color:var(--ink); }
.referral-item h4 { font-size:13px; color:var(--ink); margin:0 0 7px; line-height:1.7; }
.referral-item p { margin:4px 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.referral-link { color:var(--green); text-decoration:underline; text-underline-offset:3px; display:inline-block; margin-top:7px; }
.card-footer { display:flex; justify-content:flex-end; align-items:center; margin-top:17px; gap:12px; }
.card-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.primary-button,.primary-link { background:var(--green); color:#fff; border:1px solid var(--green); border-radius:4px; display:inline-flex; align-items:center; justify-content:center; gap:12px; padding:8px 14px; font-size:13px; font-weight:600; min-height:38px; }
.primary-button:hover,.primary-link:hover { background:var(--green-dark); }
.secondary-link,.copy-button,.wishlist-button { border:1px solid #bfcbd5; border-radius:4px; color:var(--green); padding:8px 12px; font-size:12px; display:inline-flex; align-items:center; justify-content:center; background:#fff; min-height:38px; }
.secondary-link:hover,.copy-button:hover,.wishlist-button:hover { background:#f3f6f9; border-color:#8fa9bf; }
.wishlist-button[aria-pressed=true] { background:var(--green-tint); color:var(--green-dark); border-color:#8caac1; }
.no-entry { font-size:12px; color:var(--ink); }
.application-note { font-size:12px; color:var(--ink); line-height:1.7; margin-top:10px; overflow-wrap:anywhere; }
.pagination { margin:16px 0; color:var(--ink); }
#pagination-bottom { margin:24px 0 32px; }
.pagination-main { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:12px 16px; }
.pagination-summary { display:flex; align-items:center; justify-content:center; gap:12px; font-size:12px; white-space:nowrap; }
.pagination-summary label { display:flex; }
#page-size { width:104px; min-height:36px; padding:5px 8px; border:1px solid #bfcbd5; border-radius:4px; background:#fff; color:var(--ink); font-size:12px; }
.pagination-controls,.pagination-pages { display:flex; justify-content:center; align-items:center; gap:6px; }
.pagination-pages { flex-wrap:wrap; }
.pagination button { min-width:34px; min-height:36px; padding:5px 9px; border:1px solid #bfcbd5; border-radius:4px; background:#fff; color:var(--ink); font-size:12px; white-space:nowrap; }
.pagination button:hover:not(:disabled) { background:#fff3b0; border-color:#b79c37; }
.pagination button[aria-current=page] { background:var(--brand-yellow); border-color:#9f8728; font-weight:700; }
.pagination button:disabled:not([aria-current]) { background:#ededed; border-style:dashed; }
.pagination-gap { font-size:12px; }
.pagination-footer { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px 16px; margin-top:12px; }
.page-jump { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px; max-width:100%; }
.page-jump label { display:flex; align-items:center; gap:6px; font-size:12px; }
.page-jump input { width:64px; min-width:0; height:36px; padding:6px; border:1px solid #bfcbd5; border-radius:4px; background:#fff; color:var(--ink); font-size:12px; text-align:center; }
.page-indicator { text-align:center; font-size:12px; }
.loading-note { color:var(--green); background:var(--green-tint); padding:9px 13px; font-size:12px; border-radius:4px; margin-bottom:12px; }
.search-error { display:flex; justify-content:space-between; gap:16px; color:var(--ink); background:#fff5ef; border:1px solid #ecd5c9; border-radius:4px; padding:12px 15px; font-size:13px; margin-bottom:16px; }
.empty-state { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:46px 28px; text-align:center; }
.empty-state h3 { font-size:18px; margin-bottom:8px; }
.empty-state p { color:var(--ink); font-size:13px; }
.empty-actions { display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-top:22px; }
.empty-actions button { border:1px solid #bfcbd5; background:#fff; border-radius:4px; padding:8px 12px; font-size:12px; color:var(--green); }
#empty-directions { justify-content:center; margin-top:18px; }

.wishlist-view { max-width:1000px; margin:0 auto 36px; }
.wishlist-toolbar { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; margin-bottom:20px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.wishlist-toolbar h2 { font-size:22px; font-weight:600; }
.wishlist-toolbar>.secondary-link { flex:none; }
.wishlist-storage-note { font-size:12px; color:var(--ink); margin-top:6px; }
.wishlist-card { border-color:#d3dde6; }
.wishlist-unavailable { font-size:12px; color:var(--ink); background:#fff5ef; border:1px solid #ecd5c9; border-radius:4px; padding:10px 12px; margin-bottom:14px; }
.toast { position:fixed; bottom:24px; left:50%; transform:translateX(-50%); z-index:80; display:flex; gap:18px; align-items:center; background:#263747; color:#fff; padding:12px 16px; border-radius:4px; font-size:13px; width:max-content; max-width:calc(100vw - 32px); }
.toast button { background:none; color:#fff; padding:3px; font-size:13px; white-space:nowrap; }
.toast #dismiss-toast { font-size:20px; line-height:1; color:#fff; }
.boot-state { min-height:65vh; display:grid; place-content:center; justify-items:center; gap:16px; color:var(--ink); font-size:13px; }
.spinner { width:24px; height:24px; border:2px solid #d5dee6; border-top-color:var(--green); border-radius:50%; animation:spin 1s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }

.login-page { max-width:1120px; margin:64px auto; padding:32px 36px; display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:64px; align-items:center; min-height:420px; }
.login-intro h1 { font-family:"Noto Sans SC","Microsoft YaHei","PingFang SC",sans-serif; font-size:clamp(38px,4.25vw,58px); line-height:1.24; margin:20px 0 27px; font-weight:900; letter-spacing:-.055em; color:#111; -webkit-text-stroke:.2px currentColor; }
.login-intro>p { font-size:15px; color:var(--ink); line-height:1.85; text-wrap:balance; }
.login-intro .hero-eyebrow { display:inline-flex; align-items:center; gap:9px; font-size:12px; font-weight:600; letter-spacing:.12em; }
.hero-eyebrow::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--ink); }
.hero-line { white-space:nowrap; }
.hero-emphasis { position:relative; display:inline-block; isolation:isolate; }
.hero-emphasis::after { content:""; position:absolute; z-index:-1; left:-2%; right:-3%; bottom:.015em; height:.15em; border-radius:70% 28% 60% 36%; background:var(--brand-yellow); transform:rotate(-2deg); transform-origin:left center; }
.login-intro .login-tagline { display:table; font-size:17px; color:var(--ink); margin-top:22px; padding:7px 14px; border-radius:40px; background:#fff0a1; font-weight:650; letter-spacing:.015em; }
.hero-reveal { --hero-delay:0ms; }
.login-intro h1.hero-reveal { --hero-delay:90ms; }
.hero-audience { --hero-delay:190ms; }
.login-tagline.hero-reveal { --hero-delay:280ms; }
.landing-mode .hero-reveal { animation:hero-arrive 650ms cubic-bezier(.22,.7,.25,1) var(--hero-delay) both; }
.landing-mode .hero-emphasis::after { animation:hero-mark 550ms cubic-bezier(.22,.7,.25,1) 260ms both; }
@keyframes hero-arrive { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
@keyframes hero-mark { from { transform:rotate(-2deg) scaleX(0); } to { transform:rotate(-2deg) scaleX(1); } }
.login-box { background:#fff; border:1px solid #bdbbb3; border-radius:4px; padding:32px; }
.login-box h2 { font-size:22px; line-height:1.45; margin:0; }
.login-box form { margin-top:26px; }
.login-box label { display:block; font-size:13px; font-weight:600; margin-bottom:8px; }
.login-box input { padding:11px 12px; font-size:15px; height:48px; border-color:#a6a49c; }
.login-submit { width:100%; min-height:48px; font-size:14px; padding:11px 13px; margin-top:14px; justify-content:space-between; background:var(--brand-yellow); color:var(--ink); border-color:var(--ink); }
.login-submit:hover { background:#f5d432; border-color:var(--ink); }
.form-error { font-size:13px; color:var(--ink); background:#fff5ef; padding:8px 10px; border-radius:4px; margin-top:10px; }
.icon-button { background:#f2f4f7; border-radius:4px; line-height:1; width:30px; height:30px; font-size:23px; color:var(--ink); }

@media(max-width:1100px) {
  .header-inner { padding:0 24px; }
  .workspace { padding:26px 24px 0; }
  .workspace-grid { grid-template-columns:252px minmax(0,1fr); gap:20px; }
  .filter-scroll,.filter-title,.filter-footer { padding-left:15px; padding-right:15px; }
  .recruitment-card { padding:18px; }
  .card-footer { align-items:flex-start; }
  .login-page { gap:36px; margin:48px auto; }
  .login-intro h1 { font-size:clamp(38px,4.25vw,46px); }
  .login-box { padding:28px; }
}

@media(max-width:760px) {
  .site-header { height:64px; }
  .header-inner { padding:0 16px; gap:12px; }
  .brand { font-size:20px; gap:8px; }
  .brand-mark { width:28px; height:28px; }
  .brand-caption { display:none; }
  .workspace-actions { gap:12px; }
  .wishlist-toggle { font-size:12px; padding:7px 9px; min-height:36px; }
  .change-access-code { font-size:12px; min-height:36px; }
  .workspace { padding:20px 16px 0; }
  .page-intro { margin-bottom:18px; }
  .page-intro h1 { font-size:23px; margin-bottom:5px; }
  .page-intro p { font-size:12px; }
  .workspace-grid { display:block; }
  .filter-panel { position:static; width:100%; max-height:none; display:flex; margin-bottom:20px; }
  .filter-title { padding:13px 15px; }
  .filter-title h2 { font-size:14px; }
  .filter-scroll { padding:15px; overflow:visible; }
  .filter-group { margin-bottom:17px; }
  .filter-group>label,.filter-group legend { margin-bottom:6px; }
  .choice { min-height:34px; padding:5px 9px; }
  .subtle-choice { margin-bottom:6px; }
  .filter-footer { padding:9px 15px; }
  .mobile-results-link { display:inline-flex; align-items:center; color:var(--green); font-size:12px; font-weight:600; min-height:34px; }
  .search-bar { height:46px; padding:0 12px; }
  .search-bar input { font-size:14px; }
  .update-summary { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 12px; padding:16px; margin-bottom:14px; }
  .update-stat strong { font-size:23px; }
  .selected-filters { gap:6px; margin:10px 0; }
  .results-toolbar { margin:18px 0 12px; gap:12px; flex-wrap:wrap; }
  .results-toolbar h2 { font-size:18px; }
  .sort-label select { min-height:34px; }
  .cards { gap:12px; }
  .recruitment-card { padding:16px 14px; }
  .card-heading { gap:10px; margin-bottom:14px; align-items:flex-start; }
  .company-avatar { width:32px; height:32px; font-size:14px; }
  .company-heading h3 { font-size:18px; }
  .opened-badge { font-size:11px; }
  .card-row { grid-template-columns:54px minmax(0,1fr); gap:9px; font-size:13px; }
  .card-metadata { gap:6px 15px; margin-top:12px; }
  .card-footer { gap:8px; margin-top:13px; align-items:stretch; flex-direction:column; }
  .card-actions { gap:8px; justify-content:flex-start; }
  .primary-link,.wishlist-button { min-height:42px; }
  .card-actions .primary-link,.card-actions .wishlist-button { flex-grow:1; }
  .pagination-controls { display:grid; grid-template-columns:1fr 1fr; gap:8px; width:100%; }
  .pagination-pages { grid-column:1 / -1; grid-row:1; gap:4px; }
  .pagination button { min-width:32px; padding:5px 8px; }
  .empty-state { padding:32px 18px; }
  .empty-state h3 { font-size:17px; }
  .empty-actions { gap:8px; margin-top:18px; }
  .wishlist-toolbar { flex-wrap:wrap; gap:13px; margin-bottom:16px; }
  .wishlist-toolbar h2 { font-size:20px; }
  .wishlist-toolbar>.secondary-link { min-height:40px; }
  .toast { bottom:16px; gap:12px; padding:11px 13px; font-size:12px; }
  .toast button { font-size:12px; }
  .login-page { margin:32px auto; min-height:0; display:flex; flex-direction:column; padding:0 20px; gap:30px; align-items:stretch; max-width:500px; }
  .login-intro h1 { font-size:clamp(34px,8.9vw,46px); line-height:1.28; margin:18px 0 22px; }
  .login-intro>p { font-size:14px; }
  .login-intro>p br { display:none; }
  .login-intro .login-tagline { font-size:14px; margin-top:18px; padding:7px 12px; }
  .login-box { padding:24px 20px; }
  .login-box h2 { font-size:20px; }
  .login-box form { margin-top:24px; }
  .login-box input { font-size:16px; }
}

@media(prefers-reduced-motion:reduce) {
  *,*:before,*:after { animation-duration:.01ms!important; transition:none!important; scroll-behavior:auto!important; }
  .landing-mode .hero-reveal,.landing-mode .hero-emphasis::after { animation:none!important; }
}
