/* Two families, locally served; Chinese stays sans-serif, Latin accents use Lora. */
@font-face{font-family:"Tresu Sans";src:url('./assets/fonts/noto-sans-sc-ui.woff2') format('woff2');font-style:normal;font-weight:400 700;font-display:swap}
@font-face{font-family:"Tresu Serif";src:url('./assets/fonts/lora-roman.woff2') format('woff2');font-style:normal;font-weight:400 700;font-display:swap;unicode-range:U+0000-024F,U+2000-206F,U+2197}
@font-face{font-family:"Tresu Serif";src:url('./assets/fonts/lora-italic.woff2') format('woff2');font-style:italic;font-weight:400 700;font-display:swap;unicode-range:U+0000-024F,U+2000-206F,U+2197}
:root{--font-ui:"Tresu Sans","PingFang SC","Microsoft YaHei",sans-serif;--font-editorial:"Tresu Serif",Georgia,serif;font-family:var(--font-ui);font-synthesis:none}
body,button,input,select,textarea{font-family:var(--font-ui)}
button,input{letter-spacing:0}
h1,h2,h3,.brand,.place-story h1,.sheet-header h2,.detail-dialog h2,.reward-dialog h2,.reward-item h3,.harvest-heading h2{font-family:var(--font-ui)}
.brand{font-family:var(--font-editorial);font-size:30px;font-weight:500;letter-spacing:.045em;line-height:1.2}
.brand small{font:400 11px/1.8 var(--font-ui);letter-spacing:.06em;margin-top:5px}
.nav-item{font-size:14px;font-weight:500;letter-spacing:0}
.place-story h1{font-size:clamp(44px,5.2vw,76px);font-weight:500;line-height:1.35;letter-spacing:.05em}
.place-story p{font-size:15px;line-height:1.8;letter-spacing:.03em}
.place-eyebrow{font-size:12px;letter-spacing:.08em}
.place-eyebrow>span:nth-child(2),.footer-coordinate{font-family:var(--font-editorial)}
.weather{font-size:12px;letter-spacing:.02em}
.focus-card .card-topline{font-size:13px;line-height:1.6}
.focus-card .card-caption{font-size:12px;letter-spacing:0}
.timer,.is-focusing .timer{font-family:var(--font-editorial);font-size:76px;font-weight:400;font-variant-numeric:lining-nums tabular-nums;letter-spacing:-.025em;line-height:1.25;gap:3px}
.timer>span:not(.timer-colon){min-width:0;width:auto;flex:0 0 auto}
.timer .timer-colon{font-size:.7em;transform:translateY(-.04em);margin:0 1px;opacity:.85}
.focus-card #timer-subtitle{font-size:12px;line-height:1.75;letter-spacing:0;margin-top:10px}
.duration-options{gap:3px}
.focus-card .duration-options button{font-size:12px;font-weight:400;line-height:1.5;padding:10px 0}
.focus-card .duration-options button.selected{font-weight:600}
.task-field>span{font-size:14px;line-height:1.6}
.focus-card .task-field small{font-size:12px}
.task-field input{font-size:14px;line-height:1.5;padding:12px}
.primary-button{font-size:16px;font-weight:500;letter-spacing:.03em;line-height:1.5}
.focus-card .focus-rule{font-size:11px;line-height:1.8;margin:14px 0 0}
.focus-card .discovery-note,.focus-card .preview-button{font-size:12px;line-height:1.6;letter-spacing:0}
.scene-choice-text strong{font-size:14px;font-weight:500;letter-spacing:0}
.scene-choice-text small{font-size:11px;line-height:1.5}
.footer,.footer>button{font-size:11px;line-height:1.6;letter-spacing:0}
.header-tools .motion-toggle{font-size:11px}
.section-kicker{font-family:var(--font-editorial);letter-spacing:.14em}
.active-task,.focus-commitment{font-family:var(--font-ui);font-size:14px}
/* Use actual italic outlines only for Latin species names. */
.shell-atlas-dialog,.tresu-round-dialog,#collection-dialog,#detail-dialog,#receipt-dialog{font-family:var(--font-ui)}
.shell-atlas-dialog h1,.shell-atlas-dialog h2,.shell-atlas-dialog h3,.round-shells-header h2{font-family:var(--font-ui);font-weight:600}
.shell-atlas-brand{font-family:var(--font-editorial);font-weight:500;letter-spacing:.04em}
.shell-atlas-brand>span{font-family:var(--font-ui);letter-spacing:.03em}
.shell-atlas-card-group,.shell-atlas-latin,.specimen-scientific{font-family:var(--font-editorial)!important;font-style:italic;font-weight:400}
.specimen-english,.specimen-author{font-family:var(--font-editorial)!important;font-weight:400}
.specimen-edition,.shell-atlas-eyebrow,.round-shells-kicker{font-family:var(--font-editorial)!important;letter-spacing:.12em}
.shell-atlas-card-name,.round-shell-body>strong{font-weight:600}
.shell-atlas-card-note{font-size:13px;line-height:1.8;letter-spacing:0}
.shell-atlas-card-habitat{font-size:11px;line-height:1.7}
.shell-atlas-intro{font-size:14px;line-height:1.8}
.specimen-reading p{font-family:var(--font-ui);letter-spacing:0;line-height:1.85}
.specimen-facts dt{font-weight:600}
.round-shells-count,.round-shell-amount,.shell-atlas-summary{font-variant-numeric:tabular-nums}
/* Embedded harvest shares the same typography without changing its scene. */
.wordmark{font-family:var(--font-editorial);font-size:26px;font-weight:500;letter-spacing:.04em}
.wordmark .place,.caption h1,#receipt-dialog h2{font-family:var(--font-ui)}
.caption h1{font-weight:500;letter-spacing:.05em}
.caption p{font-size:14px;line-height:1.8;letter-spacing:0}
.discovery strong,.harvest-tally strong{font-family:var(--font-editorial);font-variant-numeric:lining-nums tabular-nums}
.tresu-tide-dialog .tresu-tide-close{font-family:var(--font-ui);font-size:13px}
@media(min-width:1500px){.timer,.is-focusing .timer{font-size:82px}}
@media(max-width:760px){
  .brand{font-size:28px}.brand small{font-size:10px}.nav-item{font-size:13px;padding:10px 8px}
  .place-story h1{font-size:40px;letter-spacing:.04em}.place-story p{font-size:13px}.place-eyebrow{font-size:11px;letter-spacing:.04em}
  .focus-card{padding-left:22px;padding-right:22px}.timer,.is-focusing .timer{font-size:72px}
  .scene-choice-text strong{font-size:13px}.scene-choice-text small{font-size:11px}
  .shell-atlas-intro{font-size:12px;line-height:1.8}.shell-atlas-card-note{font-size:12px;line-height:1.8}.shell-atlas-card-habitat{font-size:10px}
  .shell-atlas-card-group{font-size:12px}.shell-atlas-button>span{font-size:10px}
  .shell-atlas-detail:not(.is-card-fit) .specimen-reading p{font-size:14px}
  .shell-atlas-detail:not(.is-card-fit) .specimen-range>p{font-size:13px}
  .shell-atlas-detail:not(.is-card-fit) .specimen-facts dd{font-size:14px}
}
@media(max-width:370px){
  .timer,.is-focusing .timer{font-size:60px;gap:2px}.focus-card{padding-left:18px;padding-right:18px}
  .focus-card .duration-options button{font-size:11px}.focus-card .focus-rule{font-size:11px}
  .card-topline{gap:8px}.focus-card .card-caption{font-size:11px}.brand small{display:none}
}
