@font-face{font-family:Fisherman;src:url(./Fisherman-Regular-C9lrhBvn.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}:root{--page: #eef1e6;--header: #1f3b2d;--header-soft: #2d5240;--gold: #f0b33d;--ink: #1d2b22;--muted: #4e5b50;--line: #d3d9c6;--line-strong: #b9c3a9;--link: #2f6690;--tag: #e6ecd9;--tag-ink: #2d5240;--rain: #3a6f95;--font-display: "Fisherman", Georgia, serif;--font-body: "Nunito Sans", system-ui, sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--ink);font-family:var(--font-body);line-height:1.5}h1,h2,h3{font-family:var(--font-display);font-weight:700;line-height:1.15;text-wrap:balance;margin:0 0 8px}h1{font-size:1.9rem}h2{font-size:1.4rem}h3{font-size:1.1rem}a{color:var(--link)}:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.app{min-height:100vh;display:flex;flex-direction:column}.site-header{background:var(--header)}.header-inner{max-width:1120px;margin:0 auto;padding:12px 16px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.site-title{font-family:var(--font-display);font-size:1.7rem;font-weight:700;color:var(--gold);margin-right:8px}nav{display:flex;flex-wrap:wrap;gap:4px;flex:1}nav .tab{min-height:44px;display:inline-flex;align-items:center;padding:0 14px;border-radius:8px;color:#dde6d5;font-weight:600;text-decoration:none}nav .tab:hover{background:var(--header-soft)}nav .tab.active{background:var(--header-soft);color:#fff}.header-actions{display:flex;gap:8px}.btn{min-height:44px;padding:0 14px;border-radius:8px;border:1px solid var(--line-strong);background:#fff;color:var(--ink);font:inherit;font-weight:600;cursor:pointer}main{width:100%;max-width:1120px;margin:0 auto;padding:20px 16px;display:flex;flex-direction:column;gap:20px;flex:1}.controls{display:flex;flex-wrap:wrap;gap:12px 20px;font-size:14px;color:var(--muted);font-weight:600}select{font:inherit;min-height:36px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;color:var(--ink);padding:0 8px}.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px}.cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;align-items:start}.cols .card{padding:16px}.cols.masonry{display:flex;align-items:flex-start;gap:16px}.masonry-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:16px}.bundle-card.done{opacity:.7;border-color:#3c7a4f}.bundle-card.locked{background:#f1f1ec;border-style:dashed}.bundle-card.locked .item-list{opacity:.6}.room-status{margin:0 0 6px;font-weight:800;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.room-status.open{color:#3c7a4f}.room-status .when{text-transform:none;letter-spacing:0;font-weight:600}.card ul,.card ol{margin:8px 0 0;padding-left:1.2rem;display:flex;flex-direction:column;gap:8px}.when{color:var(--muted);font-size:14px}.badge{margin-left:8px;padding:2px 8px;border-radius:6px;background:var(--rain);color:#fff;font-size:12px;font-weight:800}.note{background:var(--tag);color:var(--tag-ink);border-radius:8px;padding:10px 14px;font-size:14px}.site-footer{max-width:1120px;width:100%;margin:0 auto;padding:16px;font-size:13px;color:var(--muted);border-top:1px solid var(--line)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.header-status{max-width:1120px;margin:0 auto;padding:0 16px 8px;display:flex;gap:12px;flex-wrap:wrap;font-size:14px;color:#dde6d5}.header-status:empty{display:none}.today{width:100%;max-width:1280px;margin:0 auto;display:flex;flex-direction:column;gap:20px}.banner{background:#1f3b2d;color:#fff;border-radius:10px;padding:20px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px}.banner h1{color:var(--gold)}.banner-when{font-family:var(--font-display);font-size:1.4rem;margin:0}.banner-note{margin:4px 0 0;color:#dde6d5;font-size:14px}.banner-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px}@media (min-width: 1000px){.banner-controls{flex-wrap:nowrap}.banner-controls .clock-editor{flex-wrap:wrap}}.banner-clock{display:flex;flex-direction:column}.clock-face{font-family:var(--font-display);font-size:clamp(2.4rem,6vw,3.2rem);white-space:nowrap;font-weight:900;line-height:1;letter-spacing:.02em;color:var(--gold);-webkit-text-stroke:1px var(--gold);text-shadow:0 2px 0 rgba(0,0,0,.35);font-variant-numeric:tabular-nums}.banner-soon{font-size:12px;color:#dde6d5}.banner-buttons,.weather-toggle{display:flex;gap:6px}.banner-btn{min-height:44px;padding:0 14px;border-radius:8px;border:1px solid #2d5240;background:#2d5240;color:#fff;font:inherit;font-weight:600}.banner-btn:disabled{opacity:.6;cursor:not-allowed}.banner-btn[aria-pressed=true]{background:var(--gold);border-color:var(--gold);color:#1f3b2d}.clock-editor{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 12px;flex-basis:100%}.clock-editor label{display:flex;flex-direction:column;font-size:12px;gap:2px}.clock-editor select,.clock-editor input{min-height:44px;border-radius:8px;border:1px solid #2d5240;padding:0 8px;font:inherit}.clock-editor input{width:5rem}.clock-editor-error{font-size:12px;color:#ffd9d0;align-self:center}.ribbon{background:#fff;border:1px solid #d3d9c6;border-radius:10px;padding:20px}.ribbon-head{font-size:1.2rem}.ribbon-chips{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.chip{min-height:44px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;border-radius:8px;border:1px solid #d3d9c6;background:var(--tag);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.chip.on{background:#3c7a4f;border-color:#3c7a4f;color:#fff}.chip-title{font-size:13px;line-height:1.3}.today-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:24px;align-items:start}.path-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.tag{background:var(--tag);color:var(--tag-ink);border-radius:6px;padding:2px 10px;font-weight:800;font-size:13px}.rain-banner{background:#e4eef6;color:#2f6690;border-radius:8px;padding:10px 14px;font-size:14px;margin:8px 0 0}.card ol.path-list{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-direction:column;gap:8px}.path-row{display:grid;grid-template-columns:78px 1fr;gap:12px;padding:10px;border:2px solid transparent;border-radius:10px}.path-row.done{opacity:.65}.path-row.next{border-color:#f0b33d;background:#fdf3da}.row-when{font-size:13px;font-weight:800;color:var(--muted)}.row-check{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}.row-check input{width:20px;height:20px;accent-color:#3c7a4f}.row-detail{margin:0;font-size:14px;color:var(--muted)}.path-row .badge{margin-left:0;background:#2f6690}@media (max-width: 900px){.ribbon-chips{grid-template-columns:repeat(4,minmax(0,1fr))}.today-grid{grid-template-columns:1fr}}.today-aside{display:flex;flex-direction:column;gap:20px;min-width:0}.aside-card{background:#fff;border:1px solid #d3d9c6;border-radius:10px;padding:20px;min-width:0}.notes-input{display:block;width:100%;min-height:100px;font:inherit;padding:8px;border:1px solid var(--line-strong);border-radius:8px;overflow-wrap:anywhere;resize:vertical}.notes-page-input{min-height:320px}.notes-toggle{display:flex;gap:6px;margin-bottom:8px}.notes-toggle button{min-height:44px;padding:0 14px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;font:inherit;color:inherit;cursor:pointer}.notes-toggle button[aria-pressed=true]{background:var(--tag);font-weight:600}.notes-preview{min-height:100px;padding:8px;border:1px solid var(--line-strong);border-radius:8px;overflow-wrap:anywhere}.notes-preview>:first-child{margin-top:0}.notes-preview>:last-child{margin-bottom:0}.notes-preview ul,.notes-preview ol{margin:4px 0;padding-left:22px}.notes-preview ul ul,.notes-preview ol ol,.notes-preview ul ol,.notes-preview ol ul{margin:2px 0}.notes-preview ul{list-style:disc}.notes-preview ul ul{list-style:circle}.needed-bundle{margin-top:12px}.needed-head{display:flex;justify-content:space-between;gap:12px}.progress{height:8px;background:var(--tag);border-radius:4px;overflow:hidden;margin:6px 0}.progress-fill{height:100%;background:#3c7a4f}.needed-label{margin:4px 0 0}.aside-card li{overflow-wrap:anywhere}@media print{.site-header,.controls,.site-footer,.banner-controls,.weather-toggle,.clock-editor{display:none}body,.banner{background:#fff;color:#000}.banner h1,.banner-note{color:#000}.card,.aside-card{border:0;padding:0}.today-grid{grid-template-columns:1fr}.ribbon-chips{grid-template-columns:repeat(4,minmax(0,1fr))}.notes-input{border-color:#999}}.item-row{display:flex;align-items:center;gap:10px}.item-icon-btn{min-width:44px;min-height:44px;padding:0;border:0;background:none;cursor:pointer;line-height:0}.item-name-btn{min-height:44px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.item-source{font-size:13px;color:var(--muted)}.item-icon{width:48px;height:48px;image-rendering:pixelated}.item-coin{width:48px;height:48px;display:block}.item-tile{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--tag);color:var(--tag-ink);font-weight:800;font-size:16px;line-height:1}.obtained .item-name{text-decoration:line-through;opacity:.6}.item-detail{background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:20px;max-width:min(90vw,360px)}.item-detail::backdrop{background:#0006}.item-detail dl{margin:12px 0;display:grid;grid-template-columns:auto 1fr;gap:6px 12px}.item-detail dt{font-weight:800;color:var(--muted)}.item-detail dd{margin:0}.item-detail-close{min-height:44px;padding:0 16px}.item-list{list-style:none;margin:0;padding:0}.item-name-btn{min-width:0;overflow-wrap:anywhere}.today-main{display:flex;flex-direction:column;gap:20px;min-width:0}.path-row.plan-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 10px}.plan-row .row-body{flex:1;min-width:0}.plan-row .row-check{align-items:center;flex:1;min-width:0}.plan-row .row-check strong{font-weight:700;line-height:1.35;overflow-wrap:anywhere}.plan-row .item-icon,.plan-row .item-coin,.plan-row .item-tile{width:32px;height:32px;flex:none}.plan-row .row-detail{padding-left:74px}.card ul.path-list{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-direction:column;gap:4px}.plan-icon-spacer{width:32px;height:32px;flex:none}.plan-label{display:flex;flex-direction:column;gap:2px}.cap{text-transform:capitalize}.add-task{display:flex;gap:8px;margin:8px 0}.add-task input{flex:1;min-width:0;min-height:44px;border:1px solid var(--line-strong);border-radius:8px;padding:0 12px;font:inherit}.btn-small{min-height:44px;padding:0 12px;border-radius:8px;border:1px solid var(--line-strong);background:#fff;color:var(--ink);font:inherit;font-size:14px;cursor:pointer}.notes-hint{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin-top:6px}@media print{.add-task,.btn-small{display:none}}.farm-form{flex-wrap:wrap;align-items:center}.farm-form select,.farm-form input[type=number]{min-height:44px;border:1px solid var(--line-strong);border-radius:8px;padding:0 8px;font:inherit}.farm-form input[type=number]{flex:none;width:80px}@media print{.no-print{display:none}}.icon-grid{list-style:none!important;padding-left:0!important;display:flex!important;flex-direction:row!important;flex-wrap:wrap;gap:6px!important;margin-top:6px!important}.item-icon-only{position:relative;min-width:56px;min-height:56px;padding:4px;border:1px solid var(--line);border-radius:8px;background:var(--tag);cursor:pointer;line-height:0}.item-icon-only[aria-pressed=true]{opacity:.35}.item-stack{position:absolute;right:2px;bottom:2px;padding:0 5px;border-radius:6px;background:var(--header);color:#fff;font-size:12px;font-weight:800;line-height:1.4}.item-icon-only.obtained:after{content:"¹3";position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:28px;color:#1f3b2d;line-height:1}.villager-head{display:flex;align-items:center;gap:12px;margin-bottom:8px}.villager-head h3{margin:0}.avatar{width:64px;height:64px;border-radius:8px;object-fit:cover;flex:none;border:2px solid var(--line-strong)}.avatar-game{image-rendering:pixelated;background:var(--tag)}.avatar-empty{display:flex;align-items:center;justify-content:center;background:var(--tag);color:var(--tag-ink);font-family:var(--font-display);font-size:1.8rem}.cal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:24px;margin:8px 0 16px}.cal-season{margin:0;max-width:604px}.cal-season figcaption{font-family:var(--font-display);font-size:1.4rem;text-transform:capitalize;margin-bottom:4px}.cal{position:relative;width:100%;aspect-ratio:302 / 198;background-size:100% 100%;background-repeat:no-repeat;image-rendering:pixelated}.cal-bday{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}.cal-bday .avatar{width:62%;height:auto;aspect-ratio:1;border:0;border-radius:4px;margin-bottom:8%}.cal-bday{cursor:default}.cal-bday:hover,.cal-bday:focus-visible{z-index:2}.cal-bday:hover:after,.cal-bday:focus-visible:after{content:attr(data-tip);position:absolute;bottom:100%;left:50%;transform:translate(-50%);padding:4px 8px;border-radius:6px;background:var(--header);color:#fff;font-size:13px;font-weight:700;white-space:nowrap;pointer-events:none}.where-btn{display:flex;flex-direction:column;gap:2px;width:100%;margin:0 0 10px;padding:8px 10px;text-align:left;font:inherit;font-size:14px;color:var(--ink);background:var(--tag);border:1px solid var(--line-strong);border-radius:8px;cursor:pointer}.where-btn:hover{border-color:var(--header-soft)}.where-none{margin:0 0 8px}.map-popup{position:fixed;z-index:50;background:#fff;color:var(--ink);border:1px solid var(--line-strong);border-radius:10px;padding:10px;box-shadow:0 8px 30px #00000059}.map-frame{position:relative;width:100%;line-height:0}.map-img{width:100%;height:auto;image-rendering:pixelated;border-radius:6px}.map-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.map-text{font:800 7.5px var(--font-body);fill:#fff;stroke:#1f3b2d;stroke-width:2.2px;paint-order:stroke;line-height:1}.map-pulse{fill:#e0452f80;transform-box:fill-box;transform-origin:center;animation:map-pulse 1.4s ease-out infinite}.swatch{display:inline-block;width:12px;height:12px;border-radius:50%;border:2px solid #1f3b2d;vertical-align:-1px}.swatch.now{background:#e0452f}.swatch.next{background:var(--gold)}.map-legend{list-style:none;margin:8px 0 0;font-size:14px;padding:0;display:flex;flex-direction:column;gap:4px}@keyframes map-pulse{0%{transform:scale(1);opacity:1}to{transform:scale(2.6);opacity:0}}@media (prefers-reduced-motion: reduce){.map-pulse{animation:none}}.farm-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:24px;align-items:start}.farm-main,.farm-side{display:flex;flex-direction:column;gap:16px;min-width:0}@media (max-width: 900px){.farm-grid{grid-template-columns:1fr}}.farm-tile{position:relative;min-width:44px;min-height:44px;padding:4px;border:1px solid var(--line);border-radius:8px;background:var(--tag);cursor:pointer;line-height:0}.farm-tile[aria-pressed=true]{border-color:#3c7a4f;background:#e6f0e0}.farm-tile-count{position:absolute;right:-4px;bottom:-4px;min-width:18px;padding:1px 5px;border-radius:9px;background:#2f6690;color:#fff;font-size:12px;line-height:16px;text-align:center}.farm-tiles{display:flex;flex-wrap:wrap;gap:10px}.farm-tile-plus{font-size:24px;line-height:40px;display:inline-block;width:40px;text-align:center}.farm-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--tag)}.farm-actions .btn-small{min-width:44px;min-height:44px}.farm-picker{margin-top:12px}.farm-grid-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}.farm-pick{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;min-height:44px;padding:6px;border:1px solid var(--line);border-radius:8px;background:var(--tag);font-size:12px;cursor:pointer}.farm-pick[aria-pressed=true]{border-color:#3c7a4f;background:#e6f0e0}.farm-goal-star{color:#b8860b;margin-left:4px}.farm-tile .farm-goal-star{position:absolute;left:-2px;top:-4px;margin:0}.card ul.goal-list{list-style:none;padding:0;margin:12px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px}.goal-row{display:flex;gap:12px;align-items:flex-start;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff}.goal-pic{flex:none;width:48px}.goal-icon{width:48px;height:48px;border-radius:8px}.goal-hidden{background:#f1f1ec;border-style:dashed;padding:0}.spoiler-btn{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;padding:8px 10px;border:0;background:none;font:inherit;color:var(--muted);text-align:left;cursor:pointer;filter:grayscale(1)}.spoiler-q{display:flex;align-items:center;justify-content:center;background:#d8d8d0;color:#8a8a80;font-family:var(--font-display);font-size:1.6rem}.goal-notes{margin-top:6px}.goal-notes summary{cursor:pointer;font-weight:700;font-size:14px;min-height:28px}.card ul.goal-crops{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-wrap:wrap;gap:4px}.goal-crops li{line-height:0}.goal-crops .item-icon,.goal-crops .item-tile{width:36px;height:36px}@media print{.spoiler-btn{display:none}}.goal-row.done{opacity:.6;border-color:#3c7a4f}.goal-done{display:inline-flex;min-height:32px;vertical-align:middle}.goal-done strong{font-weight:800}.remix-candidates{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}.remix-candidate{width:100%;display:grid;gap:4px;text-align:left;padding:8px 10px;border-radius:8px;border:1px solid var(--line-strong);background:#fff;color:var(--ink);font:inherit;cursor:pointer}.remix-candidate[aria-pressed=true]{border-color:#3c7a4f;background:#e8f3ea}.remix-candidate[aria-disabled=true]{opacity:.5}.remix-pictures{display:flex;flex-wrap:wrap;gap:4px}.remix-pictures .item-icon,.remix-pictures .item-tile{width:32px;height:32px}.joja-facts,.joja-stock{margin:8px 0;padding-left:1.2rem}.joja-stock{columns:2 220px;list-style:none;padding-left:0}.joja-stock li{display:flex;align-items:center;gap:8px;break-inside:avoid;margin-bottom:4px}.joja-stock .item-icon,.joja-stock .item-coin,.joja-stock .item-tile{width:32px;height:32px;flex:none}.joja-price{margin-left:6px}.card ul.goal-list[aria-label=Membership]{grid-template-columns:1fr}@media (max-width: 640px){.app{padding-bottom:calc(64px + env(safe-area-inset-bottom))}.header-inner{flex-wrap:nowrap;justify-content:space-between;padding:8px 12px}.site-title{font-size:1.3rem;margin-right:0}.header-actions{gap:6px}.header-actions .btn{min-height:40px;padding:0 10px;font-size:14px}nav{position:fixed;left:0;right:0;bottom:0;z-index:20;flex:none;flex-wrap:nowrap;gap:0;background:var(--header);border-top:1px solid var(--header-soft);padding-bottom:env(safe-area-inset-bottom)}nav .tab{flex:1 1 0;min-width:0;min-height:56px;justify-content:center;text-align:center;padding:0 2px;border-radius:0;font-size:12px;line-height:1.15}.controls{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}.controls label{display:flex;flex-direction:column;gap:2px;min-width:0}.controls label:nth-of-type(3),.controls small{grid-column:1 / -1}.controls select{width:100%;min-height:44px}.banner-controls{width:100%}.banner-buttons{flex-wrap:wrap;width:100%}.banner-buttons .banner-btn{flex:1 1 auto}.banner-buttons .banner-btn:last-child{flex-basis:100%}.weather-toggle{width:100%}.weather-toggle .banner-btn{flex:1}}@media (hover: none){.tip-focus{position:relative}.farm-tile[data-tip]:focus:before,.item-icon-only[data-tip]:focus:before,.tip-focus[data-tip]:focus:before,.cal-bday:focus:after{content:attr(data-tip);position:absolute;bottom:100%;left:50%;transform:translate(-50%);z-index:5;padding:4px 8px;border-radius:6px;background:var(--header);color:#fff;font-size:13px;font-weight:700;line-height:1.3;white-space:nowrap;pointer-events:none}.cal-bday:focus{z-index:2}}.plant-cost{margin-top:12px;padding-top:8px;border-top:1px solid var(--line)}.plant-cost h3{margin:0 0 4px}.plant-pick{flex-direction:column;align-items:flex-start}.count-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;max-width:100%}.count-input{width:4.5rem;min-height:44px;padding:0 8px;font:inherit;font-size:16px;font-weight:700;text-align:center;border:1px solid var(--line-strong);border-radius:8px;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.count-input::-webkit-outer-spin-button,.count-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
