@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:"Nunito", "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.block{display:block}.hidden{display:none}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.rounded{border-radius:.25rem}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--ink:#36503b;--muted:#88927f;--line:#e0e5d7;--green:#668658;--pink:#f3e5df;--purple:#e9e5f0;--yellow:#f4edcf;--love-pink:#d77c9f;--together-pink:#e4a0bc;--map-route-current:#8b5ac4;--map-route-single:#709361}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;background:#f8f9f3 radial-gradient(#a3b28b1c .7px,#0000 .7px) 0 0/9px 9px;margin:0;font-size:13px}button,input,textarea,select{font:inherit}button{cursor:pointer;transition:background .2s,color .2s,border-color .2s,box-shadow .2s,transform .2s}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible{outline-offset:4px;outline:3px solid #abc497}button:not(:disabled):active{transform:translateY(1px)}input:focus,select:focus,textarea:focus{outline-offset:2px;outline:2px solid #a0b88b}button svg{flex-shrink:0}fieldset{border:0;min-width:0;margin:0;padding:0}button{-webkit-tap-highlight-color:transparent}::selection{color:#294b34;background:#d1dfb9}.character-art{display:block}.site-header{border-bottom:1px solid var(--line);background:#fdfef9e8;height:86px}.header-inner{justify-content:space-between;align-items:center;gap:30px;max-width:1440px;height:100%;margin:0 auto;padding:0 52px;display:flex}.brand{text-align:left;white-space:nowrap;background:0 0;border:0;align-items:center;gap:12px;padding:0;display:flex}.brand-icon{color:#638250;background:#e8edd9;border:1.5px solid #9fb38b;border-radius:14px;justify-content:center;align-items:center;width:44px;height:44px;display:flex;position:relative;transform:rotate(-5deg);box-shadow:0 3px #dbe2cb}.brand-icon>span{color:#acb778;-webkit-text-stroke:2px #fafbf5;font-size:19px;position:absolute;top:-9px;right:-5px}.brand strong{letter-spacing:1.2px;font-size:18px;font-weight:800;display:block}.brand small{color:#8c977e;letter-spacing:1.4px;margin-top:4px;font-size:8px;display:block}.main-nav{align-items:center;gap:5px;height:100%;display:flex}.main-nav>button{color:#8a9280;white-space:nowrap;background:0 0;border:0;border-radius:9px;justify-content:center;align-items:center;gap:7px;padding:11px 16px;font-size:12px;display:flex;position:relative}.main-nav>button:hover{color:#58734d;background:#f0f3e8}.main-nav>button.active{color:#557346;background:#eaf0df;font-weight:700}.main-nav>button i{background:#749762;border-radius:50%;width:4px;height:4px;position:absolute;bottom:-11px}.header-team{text-align:left;white-space:nowrap;color:#627257;background:0 0;border:0;align-items:center;gap:11px;padding:0;font-size:11px;display:flex}.header-team small{color:#9aa18e;align-items:center;gap:4px;margin-top:5px;font-size:8px;display:flex}.header-team small i{background:#93ac75;border-radius:50%;width:4px;height:4px}.mini-avatars{align-items:center;padding-left:5px;display:flex}.mini-avatars>span{background:#e5ebd6;border:2px solid #fffef5;border-radius:50%;width:34px;height:34px;margin-left:-5px;overflow:hidden}.mini-avatars>span:nth-child(2){background:#f3eddd}.mini-avatars .character-art{width:38px;height:42px;transform:translate(-4px,1px)}.app-shell{max-width:1440px;margin:0 auto;padding:0 52px}.hero{justify-content:space-between;align-items:center;gap:24px;padding:34px 0 29px;display:flex}.hero-eyebrow{color:#7c8c65;letter-spacing:1px;align-items:center;gap:6px;margin-bottom:13px;font-size:10px;display:inline-flex}.hero-eyebrow>span{color:#b4bd83;margin-left:3px;font-size:13px}.hero h1{letter-spacing:1.2px;white-space:nowrap;margin:0 0 15px;font-size:clamp(25px,2.3vw,34px);font-weight:850;line-height:1.5;position:relative}.hero h1>span{color:#6a8753;display:inline-block;position:relative}.hero h1>span>svg{fill:none;stroke:#c2cf9f;stroke-width:6px;stroke-linecap:round;opacity:.75;width:100%;height:9px;position:absolute;bottom:-4px;left:0}.hero .hero-fly{width:49px;height:44px;animation:6s ease-in-out infinite hover-bug;position:absolute;top:-15px;right:-58px;transform:rotate(13deg)}.hero-copy>p{color:#8b947f;letter-spacing:.25px;margin:0;font-size:11px;line-height:1.9}.hero-copy>p>span{margin-left:4px}.hero-actions{align-items:center;gap:26px;padding-top:19px;display:flex}.day-counter{border-right:1px dashed #d6ddc7;align-items:center;gap:12px;padding-right:25px;display:flex}.counter-heart{color:#b79d82;background:#f1eadf;border:1px solid #e5dbca;border-radius:50% 50% 44% 44%;justify-content:center;align-items:center;width:40px;height:40px;display:flex;transform:rotate(-8deg)}.counter-heart svg{fill:#d4b99c33}.day-counter>div>span{color:#8b947e;letter-spacing:.6px;font-size:10px;display:block}.day-counter strong{letter-spacing:-1.5px;white-space:nowrap;font-size:36px;font-weight:750;line-height:1.3;display:block}.day-counter strong small{letter-spacing:0;margin-left:6px;font-size:12px;font-weight:500}.day-counter strong i{color:#a5ab92;letter-spacing:.8px;margin-top:3px;font-family:Georgia,serif;font-size:8px;font-weight:400;display:block}.primary-button{color:#fffef4;white-space:nowrap;background:#718e5c;border:1px solid #527343;border-radius:9px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:10px 17px;font-size:11px;font-weight:600;display:inline-flex;box-shadow:0 3px #526e44}.primary-button:not(:disabled):hover{background:#62804e;transform:translateY(-1px);box-shadow:0 4px #49603c}.secondary-button{color:#73815f;white-space:nowrap;background:#fbfcf5;border:1px solid #d8dfcb;border-radius:7px;justify-content:center;align-items:center;gap:6px;min-height:33px;padding:7px 12px;font-size:10px;display:inline-flex}.secondary-button:not(:disabled):hover{background:#eff3e4;border-color:#9bb182}.icon-button{color:#8b997a;background:#fcfdf8;border:1px solid #dfe5d6;border-radius:7px;justify-content:center;align-items:center;width:29px;height:29px;padding:0;display:inline-flex}.icon-button:not(:disabled):hover{color:#4e6d3f;background:#e9eedf}.adventure-layout{grid-template-columns:minmax(0,1fr) 264px;gap:20px;display:grid}.map-panel{background:#f9fcf5;border:1.5px solid #bfcead;border-radius:17px;flex-direction:column;min-width:0;display:flex;overflow:hidden;box-shadow:0 4px #e0e7d4}.map-topbar{background:#f7f9ef;border-bottom:1px solid #d7e2cd;justify-content:space-between;align-items:center;gap:10px;height:57px;padding:0 21px;display:flex}.map-title{letter-spacing:.3px;align-items:center;gap:10px;font-size:12px;font-weight:700;display:flex}.map-title-icon{color:#7c9562;background:#e7edd8;border:1px solid #d4dfbf;border-radius:9px;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.map-title small{color:#9caa88;letter-spacing:1.4px;margin-top:4px;font-size:7px;font-weight:400;display:block}.map-unlocked{color:#7e926a;white-space:nowrap;background:#eaf0df;border:1px solid #dce5ce;border-radius:20px;align-items:center;gap:6px;padding:5px 9px;font-size:9px;display:inline-flex}.map-unlocked>i{background:#96ab7b;border-radius:50%;width:5px;height:5px}.map-canvas{background:#edf4e9;flex:1;height:342px;min-height:0;position:relative;overflow:hidden}.world-map{width:100%;height:100%;display:block;position:absolute;inset:0}.map-note{color:#8c9a7d;letter-spacing:1px;background:#f4f8edb3;border-radius:6px;align-items:center;gap:7px;padding:5px 9px;font-family:Georgia,PingFang SC,Microsoft YaHei,sans-serif;font-size:10px;display:flex;position:absolute;bottom:23px;left:27px}.map-note svg{color:#a5b080}.map-fly{opacity:.95;width:42px;height:38px;animation:7s ease-in-out infinite hover-bug;position:absolute;top:49%;left:44%}.map-zoom{background:#fdfef8e8;border:1px solid #cfddc4;border-radius:9px;flex-direction:column;align-items:center;display:flex;position:absolute;bottom:18px;right:16px;overflow:hidden;box-shadow:0 2px 4px #52683a08}.map-zoom>button{color:#8c9c79;background:0 0;border:0;justify-content:center;align-items:center;width:30px;height:29px;display:flex}.map-canvas{touch-action:none}.map-zoom>button.map-zoom-level{color:#778e61;border-top:1px solid #e4eadb;border-bottom:1px solid #e4eadb;width:36px;height:25px;font-size:8px}.map-zoom>button:not(:disabled):hover{color:#577740;background:#e8eedb}.map-zoom>span{background:#dfe6d5;width:15px;height:1px}.map-bottombar{color:#97a386;background:#f7faef;border-top:1px solid #d8e3ce;align-items:center;gap:16px;height:36px;padding:0 18px;font-size:9px;display:flex}.map-bottombar>span{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.map-bottombar b{color:#6e835a;margin-left:4px;font-weight:500}.replay-link{color:#789263;white-space:nowrap;background:0 0;border:0;align-items:center;gap:4px;padding:0;font-size:9px;display:inline-flex}.replay-link:hover:not(:disabled){color:#3e673d}.map-legend{align-items:center;gap:12px;margin-left:auto;font-size:8px;display:flex}.map-legend>span{white-space:nowrap;align-items:center;gap:5px;display:flex}.map-legend i{border-top:2px solid #90a57c;width:14px;display:inline-block}.map-legend .legend-dashed{border-top-style:dashed;border-top-color:#b4bfa0}.map-character-button{background:0 0;border:0;flex-direction:column;align-items:center;width:79px;height:114px;padding:0;display:flex;overflow:visible}.map-character-button>.character-art{filter:drop-shadow(0 3px #4c64351c);width:74px;height:82px;transition:transform .25s}.map-character-button:hover>.character-art{transform:translateY(-5px)rotate(-4deg)}.character-name{color:#607c4a;background:#fffff5;border:1px solid #b2c199;border-radius:7px;align-items:center;gap:7px;margin-bottom:2px;padding:3px 8px;font-size:10px;line-height:14px;display:inline-flex;box-shadow:0 2px #d3dec2}.character-name>span{color:#bdad8f;font-size:8px}.flying-plane{pointer-events:none;filter:drop-shadow(0 3px 1px #46683b22)}.adventure-sidebar{flex-direction:column;gap:15px;min-width:0;display:flex}.party-card{background:#fffef8;border:1px solid #d7dfca;border-radius:14px;padding:16px 17px 0;box-shadow:0 3px #e9ebde}.sidebar-card-heading{justify-content:space-between;align-items:center;display:flex}.sidebar-card-heading>span{color:#687e55;align-items:center;gap:6px;font-size:10px;font-weight:600;display:flex}.sidebar-card-heading>i{color:#94a47e;letter-spacing:1px;font-size:8px;font-style:normal}.party-characters{grid-template-columns:1fr 27px 1fr;align-items:center;gap:0;margin-top:13px;display:grid}.party-characters>button{background:0 0;border:0;flex-direction:column;align-items:center;padding:0;display:flex}.party-avatar{background:#edf0e0;border:1px dashed #c0caaa;border-radius:50%;width:69px;height:69px;margin:3px 0 7px;position:relative}.party-avatar.kitty{background:#f7f0df;border-color:#d9cfac}.party-avatar .character-art{width:69px;height:76px;transition:transform .25s;position:absolute;bottom:-2px;left:0}.party-characters>button:hover .character-art{transform:translateY(-5px)rotate(-5deg)}.party-characters strong{color:#5a704d;font-size:11px;font-weight:600}.party-characters button>span{color:#a0a68d;margin-top:4px;font-size:8px}.party-heart{color:#bbaa8e;flex-direction:column;align-self:start;align-items:center;gap:1px;margin-top:29px;display:flex;position:relative}.party-heart:before,.party-heart:after{content:"";border-top:1px dashed #e0d6be;width:14px;height:1px;position:absolute;top:8px}.party-heart:before{left:-7px}.party-heart:after{right:-7px}.party-heart>span{color:#b6c29c;font-size:14px}.party-status{color:#8e9c78;background:#f6f8ee;border:1px solid #e7ebdb;border-radius:6px;justify-content:center;align-items:center;gap:5px;margin:13px 0 12px;padding:6px;font-size:8px;display:flex}.status-dot{background:#8ba371;border-radius:50%;flex-shrink:0;width:4px;height:4px;display:inline-block}.party-more{color:#879775;background:#fbfcf5;border:0;border-top:1px dashed #e0e5d4;border-radius:0 0 14px 14px;justify-content:space-between;align-items:center;width:calc(100% + 34px);margin-left:-17px;padding:10px 17px;font-size:9px;display:flex}.party-more:hover{color:#4e733c;background:#f0f4e7}.chapter-card{background:#fdfbf0;border:1px solid #e1dfc8;border-radius:13px;flex:1;min-height:209px;padding:13px 16px 53px;position:relative;overflow:hidden}.chapter-eyebrow{color:#aaab8c;justify-content:space-between;align-items:center;gap:5px;margin-bottom:11px;font-size:8px;display:flex}.chapter-eyebrow>span:first-child{color:#8f9a74;align-items:center;gap:5px;display:flex}.chapter-dot{background:#9dac7d;border-radius:50%;width:4px;height:4px;display:inline-block}.category-badge{border-radius:4px;align-items:center;gap:4px;padding:3px 6px;font-size:8px;line-height:1.3;display:inline-flex}.category-badge.green{color:#7c925d;background:#e6ecd8}.category-badge.pink{color:#ac8e81;background:#f3e5de}.category-badge.purple{color:#9784af;background:#ebe6f2}.category-badge.yellow{color:#aa9b60;background:#f2ecd6}.chapter-card>h3{letter-spacing:.3px;margin:8px 0 7px;font-size:13px;font-weight:650;line-height:1.6}.chapter-card>p{color:#929578;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:10px;line-height:1.95;display:-webkit-box;overflow:hidden}.chapter-card>button{color:#8a956b;z-index:1;background:0 0;border:0;align-items:center;gap:5px;margin-top:10px;padding:0;font-size:8px;display:flex;position:relative}.chapter-card>button:hover{color:#4e733c;gap:9px}.chapter-card>svg{opacity:.95;pointer-events:none;width:100%;height:85px;position:absolute;bottom:-20px;left:0}.world-footnote{color:#a1aa93;letter-spacing:.2px;justify-content:space-between;align-items:center;gap:12px;margin:12px 4px 26px;font-size:8px;display:flex}.world-footnote>span{align-items:center;gap:5px;display:inline-flex}.world-footnote>span:last-child{color:#a8ad98}.section-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px;display:flex}.eyebrow{color:#97a27f;letter-spacing:2px;align-items:center;gap:6px;margin-bottom:8px;font-size:7px;font-weight:500;display:flex}.tiny-flower{color:#92a477;font-size:13px;line-height:8px}.section-heading h2{letter-spacing:.7px;margin:0;font-size:21px;font-weight:750;line-height:1.4}.heading-doodle{color:#9eae7f;margin-left:8px;font-family:Georgia,serif;font-size:23px;font-weight:400;display:inline-block;transform:rotate(12deg)}.section-heading p{color:#9ca48e;letter-spacing:.3px;margin:7px 0 0;font-size:9px}.timeline-heading-actions{align-items:center;gap:15px;padding-top:18px;display:flex}.timeline-hint{color:#a6ad98;font-size:8px}.playback-button{min-height:31px;font-size:9px}.playback-button.is-playing{background:#e6edda;border-color:#a4b58b}.timeline-card{background:#fdfef9;border:1px solid #dce3d0;border-radius:13px;overflow:hidden;box-shadow:0 3px #e8ecdf}.timeline-controls{justify-content:space-between;align-items:center;gap:12px;margin:16px 22px 0;display:flex}.memory-filters{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.memory-filters>button{color:#9da68e;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:5px;padding:6px 10px;font-size:9px;display:inline-flex}.memory-filters>button:hover{color:#5c7b49;background:#f1f5e9}.memory-filters>button.active{color:#718753;background:#eaf0de;border-color:#d6e1c3;font-weight:600}.memory-filters>button>span{color:#8f9d7d;background:#edf0e5;border-radius:3px;margin-left:2px;padding:1px 4px;font-size:8px}.timeline-scroll-buttons{align-items:center;gap:5px;display:flex}.timeline-scroll-buttons>span{letter-spacing:.4px;color:#b2b7a5;margin-right:7px;font-size:7px}.timeline-scroll-buttons .icon-button{width:24px;height:24px}.timeline-scroller{scrollbar-width:thin;scrollbar-color:#d3ddc6 transparent;padding:0 16px;overflow-x:auto}.timeline-track{padding:25px 24px 15px;display:flex;position:relative}.timeline-stop{flex-direction:column;flex:1 0 0;align-items:center;min-width:0;display:flex;position:relative}.timeline-date{color:#9ca68b;letter-spacing:.6px;white-space:nowrap;align-items:baseline;gap:5px;height:29px;font-size:9px;display:flex}.timeline-date em{color:#97a173;letter-spacing:0;background:#eef0e0;border-radius:3px;padding:2px 5px;font-size:6px;font-style:normal}.timeline-dot{z-index:1;color:#9aa884;background:#f6f8ef;border:1.5px solid #e3e7d7;border-radius:13px;justify-content:center;align-items:center;width:40px;height:40px;display:flex;position:relative;box-shadow:0 0 0 6px #fdfef9}.timeline-dot.pink{color:#bfa28b;background:#f5ebe4;border-color:#e7d9cb}.timeline-dot.green{color:#91a36d;background:#e9efdc;border-color:#d8e1c3}.timeline-dot.purple{color:#a18cba;background:#eee9f3;border-color:#dcd2e5}.timeline-dot.yellow{color:#b5a369;background:#f5f0dd;border-color:#e6dfbf}.timeline-dot.goal-dot{color:#adb47e;background:#f4f3e6;border:1.5px dashed #bdc69c}.timeline-stop.selected .timeline-dot{color:#fffef4;background:#769460;border-color:#5e7b49;box-shadow:0 0 0 4px #fdfef9,0 0 0 5.5px #b7c79f}.timeline-stop.selected .timeline-date{color:#71885a;font-weight:600}.timeline-stop.selected>strong{color:#5d7848}.timeline-dot:hover:not(:disabled){border-color:#98b27b;transform:translateY(-3px)}.timeline-stop>strong{color:#7d8a6b;text-align:center;max-width:175px;margin-top:16px;padding:0 4px;font-size:11px;font-weight:600;line-height:1.6;display:block}.timeline-caption{color:#aeb49e;text-align:center;justify-content:center;align-items:center;gap:3px;min-height:14px;margin-top:6px;font-size:8px;display:inline-flex}.timeline-connector{pointer-events:none;background:#b7c89d;width:100%;height:1px;position:absolute;top:48px;left:50%}.timeline-connector:after{content:"";background:#ced9ba;border-radius:1px;width:5px;height:5px;position:absolute;top:-2px;left:48%;transform:rotate(45deg)}.timeline-connector.dashed{background:0 0;border-top:1.5px dashed #d7ddc8}.timeline-connector.dashed:after{display:none}.today-dot{box-shadow:none;background:0 0;border:0;border-radius:0;width:20px}.today-dot>span{background:#fffef3;border:2px solid #a8b788;border-radius:50%;width:11px;height:11px;display:block;box-shadow:0 0 0 5px #f5f7ea}.today-stop>strong{color:#a4ac8f;font-weight:500}.future-stop>.timeline-date,.future-stop>strong{color:#a1a98c}.selected-chapter{color:#91a579;letter-spacing:.4px;background:#eef3e4;border-radius:4px;margin-top:7px;padding:3px 7px;font-size:6px}.timeline-empty{color:#929e7f;background:#f5f7ed;border-radius:7px;justify-content:center;align-items:center;gap:12px;margin:15px 18px 0;padding:10px;font-size:10px;display:flex}.timeline-empty>button{color:#688752;background:0 0;border:0;align-items:center;gap:3px;padding:0;font-size:9px;display:inline-flex}.love-progress{border-top:1px dashed #e1e7d5;margin:0 22px;padding:14px 1px 15px}.progress-heading{color:#96a282;justify-content:space-between;align-items:center;margin-bottom:13px;font-size:8px;display:flex}.progress-heading>span{align-items:center;gap:5px;display:inline-flex}.progress-heading>strong{color:#8e9e77;font-size:10px;font-weight:600}.progress-heading>strong>span{color:#b0b69e;letter-spacing:1px;font-size:7px;font-weight:400}.progress-rail{background:#e9eddd;border-radius:5px;width:100%;height:5px;position:relative}.progress-rail>span{background:repeating-linear-gradient(110deg,#99ad7d,#99ad7d 5px,#a8b98e 5px 9px);border-radius:5px;height:100%;display:block}.progress-rail>i{color:#829c66;-webkit-text-stroke:2px #fdfef9;font-size:15px;font-style:normal;position:absolute;top:-10px;transform:translate(-50%)}.progress-labels{letter-spacing:.3px;color:#b0b7a0;justify-content:space-between;align-items:center;gap:15px;margin-top:8px;font-size:7px;display:flex}.site-footer{color:#b3b9a5;justify-content:space-between;align-items:center;gap:10px;padding:32px 1px 24px;font-size:8px;display:flex}.site-footer>span{align-items:center;gap:5px;display:inline-flex}.site-footer>span:nth-child(2){letter-spacing:1.4px;color:#b4bba5;font-size:7px}.site-footer>span:nth-child(2)>i{color:#a2af8c;margin:0 9px;font-size:13px;font-style:normal}.site-footer>span:last-child{letter-spacing:1px}.footer-leaf{letter-spacing:.5px;font-family:Georgia,PingFang SC,Microsoft YaHei,sans-serif}.connection-error{color:#a48b55;background:#faf1dc;border:1px solid #eadbb6;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:12px 15px;font-size:10px;display:flex}.connection-error>button{color:#8c794f;white-space:nowrap;background:0 0;border:0;align-items:center;gap:5px;display:flex}.toast{z-index:100;color:#6b8254;background:#fdfff6;border:1px solid #c2d0af;border-radius:11px;align-items:center;gap:10px;max-width:calc(100vw - 32px);padding:12px 18px;font-size:11px;animation:.3s ease-out toast-in;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 5px 25px #3f5b3a20,0 3px #dfe7d3}.toast>span{background:#e9f0dc;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:23px;height:23px;display:flex}.journal-view,.wishes-view,.characters-view{min-height:570px;padding-top:10px}.journal-view .section-heading,.wishes-view .section-heading,.characters-view .section-heading{margin-bottom:27px}.journal-total{color:#93a27c;background:#eef2e4;border:1px solid #dfe6d2;border-radius:9px;align-items:center;gap:8px;padding:10px 15px;font-size:10px;display:inline-flex}.journal-filter-row{border-top:1px solid #e4e8dc;justify-content:space-between;align-items:center;gap:15px;padding:17px 0 22px;display:flex}.journal-filter-row>span{color:#a9b099;font-size:9px}.journal-filter-row .memory-filters>button{padding:8px 13px;font-size:10px}.memory-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;display:grid}.memory-card{text-align:left;background:#fffff9;border:1px solid #dce3ce;border-radius:13px;padding:0;overflow:hidden;box-shadow:0 3px #e8ecdf}.memory-card:hover{border-color:#c2cfae;transform:translateY(-4px);box-shadow:0 7px #e8ecdf}.memory-card-art{color:#95aa79;background-color:#edf1e2;background-image:radial-gradient(#a0b1812e .8px,#0000 .8px);background-size:12px 12px;justify-content:center;align-items:center;height:155px;display:flex;position:relative;overflow:hidden}.memory-card.pink .memory-card-art{color:#b7a084;background-color:#f3eae1;background-image:radial-gradient(#ba9f842b .8px,#0000 .8px)}.memory-card.purple .memory-card-art{color:#a191b3;background-color:#ede8f1;background-image:radial-gradient(#9c8eae29 .8px,#0000 .8px)}.memory-card.yellow .memory-card-art{color:#b1a168;background-color:#f5efd9}.memory-card-art>svg{background:#fffff551;border:1px solid;border-radius:23px;width:80px;height:80px;padding:12px;transform:rotate(-8deg)}.memory-card-stamp{color:currentColor;letter-spacing:2px;font-size:6px;position:absolute;bottom:15px}.art-sparkle{color:currentColor;opacity:.55;font-family:Georgia,serif;position:absolute}.art-sparkle.one{font-size:23px;top:20px;right:24%;transform:rotate(8deg)}.art-sparkle.two{font-size:19px;bottom:30px;left:23%;transform:rotate(-15deg)}.memory-card-body{padding:19px 20px 15px}.memory-card-meta{justify-content:space-between;align-items:center;gap:10px;display:flex}.memory-card-meta>time{color:#a0aa90;letter-spacing:.5px;font-size:9px}.memory-card-body h3{letter-spacing:.4px;margin:13px 0 8px;font-size:16px;font-weight:650;line-height:1.7}.memory-card-body>p{color:#97a087;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:42px;margin:0;font-size:11px;line-height:1.9;display:-webkit-box;overflow:hidden}.memory-card-bottom{color:#9ba987;border-top:1px dashed #e4e8d9;justify-content:space-between;align-items:center;margin-top:17px;padding-top:13px;display:flex}.memory-card-bottom>span{align-items:center;gap:4px;font-size:9px;display:inline-flex}.memory-card.is-future{border-style:dashed}.empty-state{text-align:center;background:#fbfcf5;border:1px dashed #d7dfc7;border-radius:15px;flex-direction:column;grid-column:1/-1;justify-content:center;align-items:center;min-height:350px;padding:35px 20px;display:flex}.empty-state-art{color:#a1af85;background:#eef1e2;border:1px solid #dde4cc;border-radius:31px;justify-content:center;align-items:center;width:93px;height:93px;display:flex;position:relative;transform:rotate(-7deg)}.empty-state-art>span{color:#c1bd8e;font-size:30px;position:absolute;top:-10px;right:-15px}.empty-state h3{letter-spacing:.4px;margin:25px 0 11px;font-size:17px}.empty-state p{color:#9ca78b;margin:0 0 23px;font-size:11px;line-height:1.9}.wish-destination{background:#edf2e1;border:1px solid #d1dec0;border-radius:17px;grid-template-columns:1fr 1fr;margin-bottom:26px;padding:33px 40px;display:grid;position:relative;overflow:hidden}.destination-tag{color:#8f9d72;align-items:center;gap:6px;font-size:10px;display:inline-flex}.wish-destination h3{letter-spacing:2px;margin:13px 0 15px;font-size:30px;font-weight:750}.wish-destination p{color:#939e7a;margin:0;font-size:11px;line-height:2.2}.wish-countdown{align-items:flex-end;gap:10px;margin-top:23px;display:flex}.wish-countdown strong{color:#728956;font-size:34px;font-weight:650;line-height:1}.wish-countdown>span{color:#94a379;padding-bottom:3px;font-size:10px}.wish-illustration{flex-direction:column;justify-content:center;align-self:end;align-items:center;width:100%;max-width:500px;padding-bottom:4px;display:flex}.wish-illustration>svg{width:100%}.wish-illustration>span{letter-spacing:1px;color:#9cae80;padding-top:14px;font-family:Georgia,serif;font-size:17px;font-style:italic}.wish-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.new-wish-card{color:#a0ad89;background:#fbfcf4;border:1.5px dashed #d3ddc3;border-radius:13px;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:275px;padding:25px;display:flex}.new-wish-card>span{background:#f1f5e7;border:1px dashed #d1ddbe;border-radius:50%;justify-content:center;align-items:center;width:53px;height:53px;margin-bottom:8px;display:flex}.new-wish-card>strong{font-size:12px;font-weight:500}.new-wish-card>p{color:#aab498;margin:0;font-size:9px}.new-wish-card:hover{background:#f1f5e6;border-color:#a5b887;transform:translateY(-3px)}.player-cards{grid-template-columns:1fr 1fr;gap:30px;max-width:840px;margin:35px auto 0;display:grid}.player-card{background:#f8fbf0;border:1px solid #d1ddbf;border-radius:18px;flex-direction:column;align-items:center;padding:22px 28px 0;display:flex;position:relative;overflow:hidden;box-shadow:0 5px #e4ebd8}.player-card.is-secondary{background:#fcf9ee;border-color:#e4dcc0;box-shadow:0 5px #eee8d7}.player-card:hover{border-color:#9db77e;transform:translateY(-5px)}.player-card-meta{color:#a2af8c;letter-spacing:1px;justify-content:space-between;align-items:center;width:100%;font-size:8px;display:flex}.player-card-meta>span:last-child{color:#a7a16f;background:#eeeed9;border:1px solid #deddbb;border-radius:4px;padding:4px 7px;font-size:8px}.player-card-art{background:#edf2e1;border:1px dashed #c4d3ac;border-radius:50%;width:178px;height:178px;margin:18px 0 24px;position:relative}.player-card-art .character-art{width:160px;height:176px;transition:transform .3s;position:absolute;bottom:2px;left:9px}.player-card.is-secondary .player-card-art{background:#f5efdb;border-color:#ddd3ad}.player-card:hover .player-card-art .character-art{transform:translateY(-6px)rotate(-4deg)}.role-tag{color:#94a278;background:#eaf0dc;border:1px solid #dfe6ce;border-radius:20px;align-items:center;padding:5px 11px;font-size:9px;display:inline-flex}.player-card.is-secondary .role-tag{color:#ac9f74;background:#f4edd7;border-color:#e9dfbf}.player-card h3{letter-spacing:4px;margin:12px 0;font-size:25px;font-weight:700}.player-card>p{color:#a0a98c;margin:0;font-size:11px;line-height:1.8}.player-skill{color:#97a97d;align-items:center;gap:5px;width:100%;margin-top:27px;padding-bottom:20px;font-size:9px;display:flex}.player-skill>i{background:repeating-linear-gradient(100deg,#afbf92 0 8px,#c2cfaa 8px 12px);border-radius:4px;flex:1;height:5px;margin-left:4px}.player-card-link{color:#8f9e76;background:#f4f7e99c;border-top:1px dashed #dce4ce;justify-content:space-between;align-items:center;width:calc(100% + 56px);margin:0 -28px;padding:16px 28px;font-size:10px;display:flex}.team-quote{text-align:center;color:#b1b997;flex-direction:column;align-items:center;gap:8px;margin-top:40px;display:flex}.team-quote>p{letter-spacing:.5px;color:#96a382;margin:3px 0;font-size:12px}.team-quote>span{letter-spacing:1px;font-size:8px}.adventure-dialog{color:var(--ink);background:#fffef7;border:1.5px solid #bdcda9;border-radius:19px;width:540px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 48px);margin:auto;padding:30px;overflow-y:auto;box-shadow:0 8px #99ad7e33,0 20px 90px #26403533}.adventure-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#29413365}.adventure-dialog[open]{animation:.25s ease-out dialog-in}.dialog-close{z-index:2;background:#fffef8c9;position:absolute;top:15px;right:15px}.dialog-eyebrow{color:#99a680;letter-spacing:1px;align-items:center;gap:6px;margin:4px 30px 14px 0;font-size:8px;display:flex}.adventure-dialog h2{letter-spacing:.6px;margin:0 0 10px;font-size:23px;font-weight:700;line-height:1.6}.memory-form-dialog h2>span{color:#a9b78a;margin-left:10px;font-size:25px}.dialog-subtitle{color:#a1a98e;margin:0 0 24px;font-size:10px;line-height:1.9}.field-label{margin-bottom:10px;font-size:11px;font-weight:600}.category-picker{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:22px;display:grid}.category-option{color:#9aa38b;background:#fafbf4;border:1px solid #e0e6d6;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:10px 0;font-size:11px;display:flex}.category-option.chosen{color:#728955;background:#eaf0dd;border-color:#a6ba8d}.category-option.pink.chosen{color:#ac927d;background:#f5e9e1;border-color:#d3baa3}.category-option.purple.chosen{color:#9d87b5;background:#eee9f3;border-color:#c7b8d5}.category-option.yellow.chosen{color:#a89a5e;background:#f5f0db;border-color:#d7c993}.form-field{flex-direction:column;gap:9px;margin-bottom:20px;font-size:11px;font-weight:550;display:flex}.form-field>input,.form-field>select,.form-field>textarea{color:#647651;background:#fcfdf7;border:1px solid #dfe5d4;border-radius:8px;width:100%;min-width:0;padding:11px 12px;font-size:11px;font-weight:400}.form-field>input::placeholder,.form-field>textarea::placeholder{color:#b3bba4}.form-field>textarea{resize:vertical;min-height:95px;line-height:1.9}.form-field>select{min-height:40px}.form-row{grid-template-columns:1fr 1fr;gap:15px;display:grid}.people-picker{grid-template-columns:1fr 1fr;gap:12px;display:grid}.people-picker>label{color:#9aa58a;cursor:pointer;background:#fafcf5;border:1px solid #e3e8d9;border-radius:8px;align-items:center;gap:6px;height:46px;padding:4px 12px;font-size:10px;display:flex}.people-picker>label.chosen{color:#72895a;background:#f1f5e7;border-color:#b1c29a}.people-picker input{accent-color:#859d68;width:13px;height:13px}.people-picker .character-art{width:34px;height:37px}.people-picker>label>svg:last-child:not(.character-art){margin-left:auto}.future-note{color:#a39e72;background:#f9f6e7;border:1px dashed #e0dcbc;border-radius:7px;align-items:flex-start;gap:6px;margin:-7px 0 19px;padding:10px 12px;font-size:9px;line-height:1.9;display:flex}.future-note>svg{flex-shrink:0;margin-top:2px}.form-footer{border-top:1px dashed #e0e6d2;justify-content:space-between;align-items:center;gap:12px;padding-top:18px;display:flex}.form-footer>span{color:#a2ae8c;align-items:center;gap:5px;font-size:9px;display:inline-flex}.form-error{color:#b57d68;background:#f8ece5;border:1px solid #edd4c6;border-radius:7px;padding:10px 12px;font-size:10px;line-height:1.8}.full-width{width:100%}.character-dialog{width:390px;padding:25px 27px}.character-dialog-top{text-align:center;border-bottom:1px dashed #e1e6d5;padding-bottom:21px;position:relative}.character-dialog-top .dialog-eyebrow{justify-content:flex-start;font-size:7px}.rarity{color:#a5975e;letter-spacing:1px;background:#f1edcf;border:1px solid #ded5a7;border-radius:4px;padding:4px 6px;font-size:7px;position:absolute;top:0;right:19px}.character-portrait{background:#eef3e2;border:1px dashed #becfa4;border-radius:50%;justify-content:center;align-items:center;width:170px;height:170px;margin:22px auto 15px;display:flex;position:relative}.portrait-orbit{border:1px solid #dfe7cd;border-radius:50%;position:absolute;inset:7px}.character-portrait .character-art{width:143px;height:157px;position:relative}.portrait-sparkle{color:#b8b87e;position:absolute;top:14px;right:-7px;transform:rotate(12deg)}.character-dialog h2{letter-spacing:4px;margin:9px 0 6px;font-size:28px}.character-dialog-top>p{color:#a5ae93;margin:0;font-size:10px;line-height:1.9}.character-stats{padding:14px 0 6px}.character-stats>div{color:#a3ae91;align-items:center;gap:7px;padding:8px 0;font-size:10px;display:flex}.character-stats>div>svg{color:#a5b48a}.character-stats>div>b{color:#7e916a;margin-left:auto;font-size:10px;font-weight:500}.attribute-bar{margin:15px 0}.attribute-bar>span{color:#96a77d;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:9px;display:flex}.attribute-bar b{letter-spacing:.6px;font-size:8px;font-weight:400}.attribute-bar>i{background:#edf1e3;border:1px solid #dce4cd;border-radius:5px;height:8px;padding:1px;display:block;overflow:hidden}.attribute-bar>i>span{background:repeating-linear-gradient(110deg,#9eb681,#9eb681 9px,#b3c497 9px 13px);border-radius:4px;width:100%;height:100%;display:block}.attribute-bar.affection>i>span{background:repeating-linear-gradient(110deg,#d4b89e,#d4b89e 9px,#e0cbb6 9px 13px)}.character-mission{background:#f7f6e9;border:1px dashed #d9debe;border-radius:8px;margin:21px 0;padding:14px}.character-mission>span{color:#a4aa7f;align-items:center;gap:5px;font-size:9px;display:flex}.character-mission>strong{color:#82916a;margin:8px 0;font-size:13px;font-weight:600;display:block}.character-mission>p{color:#afb493;letter-spacing:.6px;margin:0;font-size:8px}.memory-detail-dialog{width:530px}.detail-art{color:#a1b185;background:#eff3e4 radial-gradient(#8ea37622 .8px,#0000 .8px) 0 0/13px 13px;border-radius:11px;justify-content:center;align-items:center;height:150px;margin-top:20px;display:flex;position:relative;overflow:hidden}.detail-art.pink{color:#c1a98e;background-color:#f6ece2}.detail-art.purple{color:#ac98bf;background-color:#eee9f4}.detail-art.yellow{color:#b5a572;background-color:#f5efd8}.art-heart{opacity:.5;font-family:Georgia,serif;font-size:30px;position:absolute;top:23px;left:20%;transform:rotate(-20deg)}.detail-meta{color:#a2ad8d;align-items:center;gap:13px;margin:24px 0 14px;font-size:9px;display:flex}.detail-meta>span{align-items:center;gap:4px;display:inline-flex}.detail-story{color:#8d9c7c;white-space:pre-wrap;overflow-wrap:anywhere;margin:17px 0;font-size:12px;line-height:2.2}.detail-people{align-items:center;gap:10px;margin-bottom:21px;display:flex}.detail-people>span{color:#94a37d;background:#f1f5e7;border-radius:20px;align-items:center;gap:4px;padding:3px 10px 3px 4px;font-size:9px;display:inline-flex}.detail-people .character-art{width:24px;height:27px}.detail-footer{border-top:1px dashed #e0e6d1;align-items:center;gap:8px;padding-top:20px;display:flex}.detail-footer>.primary-button{min-height:34px;margin-left:auto;padding:8px 12px;font-size:10px;box-shadow:0 2px #526e44}.detail-footer>.secondary-button{font-size:9px}.delete-button{color:#baa58d;background:0 0;border:0;align-items:center;gap:4px;padding:7px 0;font-size:9px;display:inline-flex}.delete-button:hover{color:#b17763}.delete-confirm{color:#a28d72;background:#faf2e7;border:1px solid #eaddc9;border-radius:9px;padding:14px;font-size:10px}.delete-confirm>div{justify-content:flex-end;align-items:center;gap:8px;margin-top:13px;display:flex}.danger-button{color:#fffaf2;background:#c59d82;border:1px solid #c5977c;border-radius:7px;padding:8px 12px;font-size:10px}@keyframes hover-bug{0%,to{transform:translate(0)rotate(6deg)}35%{transform:translate(6px,-5px)rotate(-3deg)}65%{transform:translate(-2px,-8px)rotate(5deg)}}@keyframes dialog-in{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toast-in{0%{opacity:0;translate:0 12px}to{opacity:1;translate:0}}@media (min-width:1560px){.app-shell,.header-inner{max-width:1500px;padding-left:70px;padding-right:70px}.map-canvas{height:395px}.adventure-layout{grid-template-columns:minmax(0,1fr) 280px;gap:24px}.hero{padding-top:40px;padding-bottom:36px}.chapter-card>p{-webkit-line-clamp:3}.chapter-card{padding-top:17px}.party-card{padding-top:20px}.party-characters{margin-top:20px}.party-avatar{width:76px;height:76px}.party-avatar .character-art{width:76px;height:84px}.party-status{margin-top:18px}}@media (max-width:1180px){.app-shell,.header-inner{padding-left:30px;padding-right:30px}.header-inner{gap:15px}.main-nav>button{padding:10px 11px;font-size:11px}.brand strong{font-size:16px}.brand small{font-size:7px}.header-team{gap:5px}.header-team>span:last-child{display:none}.hero h1{font-size:28px}.hero .hero-fly{width:40px;right:-45px}.hero-actions{gap:15px}.day-counter{gap:9px;padding-right:15px}.counter-heart{width:32px;height:32px}.day-counter strong{font-size:30px}.hero-copy>p{font-size:10px}.adventure-layout{grid-template-columns:minmax(0,1fr) 240px;gap:16px}.map-canvas{height:335px}.map-note{font-size:8px;bottom:25px;left:13px}.map-bottombar{gap:10px;padding:0 13px}.map-legend{gap:6px}.party-card{padding-left:13px;padding-right:13px}.party-more{width:calc(100% + 26px);margin-left:-13px;padding-left:13px;padding-right:13px}.chapter-card{padding-left:13px;padding-right:13px}.chapter-card>h3{font-size:12px}.chapter-eyebrow{font-size:7px}.party-avatar{width:65px;height:65px}.party-avatar .character-art{width:65px;height:72px}.timeline-hint{display:none}}@media (max-width:940px){.header-inner,.app-shell{padding:0 24px}.site-header{height:76px}.brand strong{font-size:15px}.brand-icon{border-radius:12px;width:37px;height:37px}.brand{gap:9px}.main-nav{gap:1px}.main-nav>button{padding:10px}.main-nav>button>svg,.header-team{display:none}.hero{gap:12px;padding:29px 0 25px}.hero h1{font-size:26px}.hero .hero-fly{display:none}.hero-actions{gap:14px;padding-top:12px}.counter-heart{display:none}.day-counter{padding-right:14px}.day-counter strong{font-size:29px}.hero-copy>p>span{margin:0;display:block}.add-memory-button{min-height:36px;padding:9px 12px;font-size:10px}.adventure-layout{grid-template-columns:minmax(0,1fr) 220px;gap:13px}.map-canvas{height:325px}.map-topbar{padding:0 13px}.map-title{gap:7px;font-size:11px}.map-title small{font-size:6px}.map-unlocked{padding:4px 6px;font-size:8px}.map-unlocked>i,.map-legend{display:none}.map-bottombar>.replay-link{margin-left:auto}.party-avatar{width:57px;height:57px}.party-avatar .character-art{width:57px;height:63px}.party-characters{margin-top:16px}.party-characters strong{font-size:10px}.party-status{margin:15px 0 12px;font-size:7px}.chapter-card>p{-webkit-line-clamp:3;font-size:8px}.chapter-card{min-height:202px}.chapter-eyebrow{flex-wrap:wrap;gap:6px}.memory-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.wish-destination{padding:29px}.wish-destination h3{font-size:25px}.wish-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.world-footnote>span:last-child{font-size:7px}.player-cards{gap:20px}}@media (max-width:720px){.site-header{height:auto}.header-inner{flex-wrap:wrap;gap:14px;padding:16px 20px 0}.brand strong{font-size:16px}.brand small{font-size:7px}.brand-icon{width:39px;height:39px}.header-team{margin-left:auto;display:flex}.main-nav{order:3;justify-content:space-between;gap:5px;width:calc(100% + 8px);margin:0 -4px;padding-bottom:10px}.main-nav>button{flex:1;gap:5px;padding:9px 7px;font-size:10px}.main-nav>button>svg{width:13px;height:13px;display:block}.main-nav>button i{width:3px;height:3px;bottom:-6px}.app-shell{padding:0 20px}.hero{flex-wrap:wrap;gap:19px;padding:25px 0 23px}.hero-copy{width:100%}.hero-eyebrow{margin-bottom:10px;font-size:9px}.hero h1{letter-spacing:.3px;margin-bottom:13px;font-size:clamp(22px,5.8vw,31px)}.hero-copy>p{font-size:10px;line-height:2}.hero-copy>p>span{display:inline}.hero-actions{justify-content:space-between;gap:20px;width:100%;padding-top:0}.day-counter{border:0;gap:10px;padding:0}.counter-heart{width:35px;height:35px;display:flex}.day-counter>div{align-items:baseline;gap:10px;display:flex}.day-counter>div>span{font-size:9px}.day-counter strong{font-size:26px;line-height:1}.day-counter strong small{margin-left:5px;font-size:10px}.day-counter strong i{display:none}.add-memory-button{min-height:36px;padding:8px 12px;font-size:10px}.adventure-layout{grid-template-columns:1fr;gap:16px}.map-canvas{flex:none;height:300px}.map-topbar{height:52px;padding:0 16px}.map-title{font-size:11px}.map-unlocked{font-size:8px}.map-title small{font-size:6px}.map-note{font-size:8px;bottom:16px;left:14px}.map-zoom{bottom:14px;right:12px}.map-bottombar{height:35px;font-size:8px}.map-bottombar .map-legend{margin-left:auto;font-size:7px;display:flex}.map-bottombar .replay-link{margin-left:0;font-size:8px}.map-fly{width:35px}.adventure-sidebar{grid-template-columns:1fr 1fr;gap:13px;display:grid}.party-card{padding:13px 11px 0}.sidebar-card-heading>span{gap:4px;font-size:8px}.sidebar-card-heading>span>svg{width:12px;height:12px}.sidebar-card-heading>i{font-size:7px}.party-characters{grid-template-columns:1fr 16px 1fr;margin-top:11px}.party-avatar{width:52px;height:52px;margin-bottom:6px}.party-avatar .character-art{width:52px;height:58px}.party-characters strong{font-size:9px}.party-characters button>span{font-size:6px}.party-heart{margin-top:21px}.party-heart:before,.party-heart:after{display:none}.party-heart>svg{width:13px}.party-status{gap:3px;margin:10px -3px;padding:5px 3px;font-size:6px}.party-more{width:calc(100% + 22px);margin-left:-11px;padding:8px 11px;font-size:7px}.chapter-card{min-height:206px;padding:13px 12px 45px}.chapter-eyebrow{gap:5px;margin-bottom:8px;font-size:6px}.chapter-card .category-badge{font-size:7px}.chapter-card h3{margin:7px 0;font-size:11px;line-height:1.7}.chapter-card p{-webkit-line-clamp:3;font-size:8px;line-height:1.9}.chapter-card>button{margin-top:8px;font-size:7px}.chapter-card>svg{height:67px;bottom:-14px}.world-footnote{margin:13px 3px 26px;font-size:7px}.world-footnote>span:last-child{display:none}.section-heading{gap:12px;margin-bottom:16px}.section-heading h2{letter-spacing:.3px;font-size:19px}.section-heading p{font-size:8px}.eyebrow{letter-spacing:1.5px;margin-bottom:7px;font-size:6px}.heading-doodle{margin-left:6px;font-size:20px}.timeline-heading-actions{padding-top:12px}.playback-button{min-height:29px;padding:7px 9px;font-size:8px}.timeline-controls{gap:6px;margin:13px 13px 0}.memory-filters{gap:3px}.memory-filters>button{gap:3px;padding:5px 7px;font-size:8px}.memory-filters>button>svg{width:10px}.timeline-scroll-buttons>span{display:none}.timeline-scroll-buttons .icon-button{width:22px;height:22px}.timeline-scroller{padding:0 6px}.timeline-track{padding-top:23px;padding-left:4px;padding-right:4px;min-width:800px!important}.timeline-stop{min-width:165px}.timeline-dot{border-radius:11px;width:36px;height:36px}.timeline-dot>svg{width:17px;height:17px}.timeline-connector{top:46px}.timeline-date{font-size:8px}.timeline-stop>strong{font-size:9px}.timeline-caption{font-size:7px}.timeline-stop>strong{margin-top:14px}.love-progress{margin:0 15px;padding-top:13px}.progress-labels{letter-spacing:0;gap:7px;font-size:6px}.progress-heading{font-size:7px}.timeline-empty{gap:7px;margin-left:12px;margin-right:12px;font-size:8px}.timeline-empty>button{white-space:nowrap;font-size:7px}.site-footer{flex-wrap:wrap;gap:15px;padding:27px 0 20px;font-size:7px}.site-footer>span:nth-child(2){order:3;justify-content:center;width:100%;font-size:6px}.site-footer>span:last-child{margin-left:auto}.site-footer>span:nth-child(2)>i{margin:0 3px}.journal-view,.wishes-view,.characters-view{min-height:450px;padding-top:10px}.journal-total{white-space:nowrap;gap:5px;padding:8px;font-size:7px}.journal-total>svg{width:13px;height:13px}.journal-view .section-heading h2,.wishes-view .section-heading h2,.characters-view .section-heading h2{font-size:18px}.journal-view .section-heading,.wishes-view .section-heading,.characters-view .section-heading{align-items:flex-start;gap:10px}.journal-filter-row{padding:13px 0 19px}.journal-filter-row .memory-filters>button{padding:6px 7px;font-size:8px}.journal-filter-row>span{font-size:7px}.memory-grid{gap:14px}.memory-card-art{height:120px}.memory-card-art>svg{border-radius:18px;width:60px;height:60px}.memory-card-stamp{letter-spacing:1px;font-size:5px;bottom:12px}.memory-card-body{padding:13px 12px 12px}.memory-card-meta{gap:5px}.memory-card-meta>time{letter-spacing:0;font-size:7px}.memory-card-meta>.category-badge{padding:3px 4px;font-size:6px}.memory-card-body h3{letter-spacing:0;margin:10px 0 7px;font-size:12px}.memory-card-body>p{min-height:34px;font-size:9px;line-height:1.9}.memory-card-bottom{margin-top:12px;padding-top:10px}.memory-card-bottom>span{font-size:7px}.art-sparkle.one{font-size:17px;top:14px;right:13%}.art-sparkle.two{font-size:15px;bottom:24px;left:12%}.empty-state{min-height:310px}.empty-state h3{font-size:15px}.empty-state p{font-size:10px}.wish-destination{grid-template-columns:1fr;padding:23px}.wish-destination h3{font-size:25px}.wish-destination p{font-size:10px}.wish-illustration{justify-self:end;width:75%;margin:-30px -10px -5px 0}.wish-illustration>span{padding-top:5px;font-size:13px}.wish-countdown{margin-top:20px}.wish-countdown strong{font-size:30px}.wish-countdown>span{font-size:8px}.wish-grid{grid-template-columns:1fr 1fr}.new-wish-card{text-align:center;min-height:245px;padding:16px}.new-wish-card>strong{font-size:10px;line-height:1.8}.new-wish-card>p{font-size:8px}.new-wish-card>span{width:43px;height:43px}.player-cards{gap:14px;margin-top:23px}.player-card{border-radius:13px;padding:15px 15px 0}.player-card-meta{letter-spacing:0;font-size:6px}.player-card-meta>span:last-child{padding:3px 4px;font-size:6px}.player-card-art{width:125px;height:125px;margin:18px 0}.player-card-art .character-art{width:115px;height:126px;bottom:0;left:4px}.role-tag{padding:4px 7px;font-size:7px}.player-card h3{letter-spacing:2px;margin:10px 0;font-size:19px}.player-card>p{font-size:8px;line-height:1.9}.player-skill{gap:3px;margin-top:20px;padding-bottom:17px;font-size:6px}.player-skill>svg{width:10px;height:10px}.player-skill>i{height:4px;margin-left:0}.player-card-link{width:calc(100% + 30px);margin:0 -15px;padding:13px 15px;font-size:8px}.player-card-link>svg{width:12px}.team-quote{gap:6px;margin-top:28px}.team-quote>p{font-size:10px;line-height:1.9}.team-quote>span{font-size:7px}.adventure-dialog{border-radius:15px;max-height:calc(100dvh - 28px);padding:25px 21px}.adventure-dialog h2{font-size:20px}.dialog-eyebrow{letter-spacing:.8px;font-size:6px}.dialog-subtitle{font-size:9px}.category-option{gap:4px;font-size:10px}.form-row{gap:10px}.form-field{font-size:10px}.form-field>input,.form-field>select,.form-field>textarea{padding:10px;font-size:10px}.people-picker{gap:10px}.people-picker>label{gap:4px;padding-left:8px;padding-right:8px;font-size:9px}.people-picker .character-art{width:29px;height:32px}.form-footer>span{font-size:8px}.form-footer .primary-button{min-height:36px;padding:9px 12px;font-size:10px}.dialog-close{width:26px;height:26px;top:12px;right:12px}.detail-footer{flex-wrap:wrap;gap:7px}.detail-footer>.primary-button{font-size:9px}.detail-footer>.secondary-button{padding:7px 9px;font-size:8px}.delete-button{font-size:8px}.detail-story{font-size:11px}.character-dialog{padding:24px}.character-dialog h2{font-size:26px}.toast{min-width:270px;padding:11px 13px;font-size:10px;line-height:1.8;bottom:18px}}@media (max-width:390px){.header-inner,.app-shell{padding-left:15px;padding-right:15px}.hero h1{letter-spacing:0;font-size:22px}.hero-copy>p{font-size:9px}.main-nav>button{padding:9px 4px;font-size:9px}.hero-actions{gap:10px}.day-counter,.day-counter>div{gap:7px}.day-counter strong{font-size:24px}.counter-heart{width:31px;height:31px}.add-memory-button{padding:8px 10px;font-size:9px}.map-canvas{height:270px}.map-bottombar .map-legend{display:none}.map-bottombar .replay-link{margin-left:auto}.adventure-sidebar{gap:10px}.party-card{padding-left:9px;padding-right:9px}.party-more{width:calc(100% + 18px);margin-left:-9px;padding-left:9px;padding-right:9px}.party-avatar{width:46px;height:46px}.party-avatar .character-art{width:46px;height:51px}.sidebar-card-heading>span{font-size:7px}.party-status{gap:2px;font-size:5px}.chapter-card{min-height:201px;padding-left:10px;padding-right:10px}.chapter-card>h3{font-size:10px}.chapter-card>p{font-size:7px}.timeline-controls{margin-left:9px;margin-right:9px}.memory-filters>button{padding:5px}.timeline-scroll-buttons{gap:3px}.timeline-scroll-buttons .icon-button{width:21px;height:21px}.player-card{padding-left:10px;padding-right:10px}.player-card-art{width:112px;height:112px}.player-card-art .character-art{width:105px;height:115px;left:3px}.player-card-link{width:calc(100% + 20px);margin:0 -10px;padding-left:10px;padding-right:10px}.player-skill{font-size:5px}.player-card>p{font-size:7px}.role-tag{font-size:6px}.journal-total{padding:7px;font-size:6px}.journal-view .section-heading h2,.wishes-view .section-heading h2,.characters-view .section-heading h2{font-size:16px}}.app-shell.map-app-shell{width:100%;max-width:none;margin:0;padding:0}.map-app-shell .adventure-layout{width:100%;height:calc(100svh - 252px);min-height:480px;display:block;position:relative}.map-app-shell .map-panel{box-shadow:none;border:0;border-radius:0;position:absolute;inset:0}.map-app-shell .map-canvas{flex:1;height:auto;min-height:0}.map-app-shell .map-topbar{z-index:2;pointer-events:none;background:0 0;border:0;justify-content:flex-start;gap:13px;height:auto;padding:0;position:absolute;top:94px;left:24px}.map-app-shell .map-title{font-size:11px}.map-app-shell .map-title-icon{background:#f9fcf0c9}.map-app-shell .map-unlocked{background:#f7faedd9;font-size:8px}.map-app-shell .map-bottombar{z-index:2;background:#f8fbf0e8;flex:0 0 35px;height:35px;padding:0 24px;position:relative}.map-app-shell .map-note{color:#8b9e77;background:#f6faeee0;bottom:24px;left:50%;transform:translate(-50%)}.map-app-shell .map-zoom{bottom:26px;right:23px}.map-app-shell .world-footnote{z-index:2;pointer-events:none;margin:0;font-size:8px;position:absolute;bottom:42px;left:24px;right:24px}.map-app-shell .world-footnote>span:last-child{display:none}.world-map{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.world-map:active{cursor:grabbing}.map-character{transition:none}.flying-plane{pointer-events:none;animation:none}.story-strip{z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffef6ed;border:1px solid #cbd8b9;border-radius:12px;align-items:stretch;height:58px;display:flex;position:absolute;top:18px;left:24px;right:286px;overflow:hidden;box-shadow:0 3px #7c946614,0 5px 20px #536d3d08}.story-strip-preview{text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:11px;min-width:0;padding:9px 15px;display:flex}.story-strip-preview:hover{background:#f4f7e7}.story-strip-icon{color:#8ba06c;background:#edf2df;border:1px solid #dce5cb;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.story-strip-content{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.story-strip-heading{white-space:nowrap;color:#92a17d;align-items:center;gap:8px;min-width:0;font-size:9px;display:flex}.story-strip-heading time{color:#a6af95;letter-spacing:.5px;font-size:8px}.story-strip-heading strong{color:#627e4e;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.story-strip-excerpt{color:#98a387;text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.story-strip-open{color:#8fa274;flex-shrink:0;align-items:center;gap:4px;font-size:8px;display:flex}.story-add-button{color:#75905a;background:#ecf2de;border:0;border-left:1px solid #dce5ca;flex-shrink:0;justify-content:center;align-items:center;width:48px;display:flex}.story-add-button:hover{color:#4c703a;background:#e0eacc}.floating-party{z-index:12;filter:drop-shadow(0 5px 15px #3d56371a);width:238px;position:absolute;top:18px;right:24px}.floating-party .party-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffef6ed;border-color:#cbd8b9;border-radius:12px;padding:13px 16px 0;box-shadow:0 3px #7c946614}.floating-party .party-characters{grid-template-columns:1fr 27px 1fr;margin-top:12px}.floating-party .party-avatar{width:65px;height:65px;margin-bottom:8px}.floating-party .party-avatar .character-art{width:65px;height:72px}.floating-party .party-characters strong{font-size:11px}.floating-party .party-characters button>span{font-size:8px}.floating-party .sidebar-card-heading>span{font-size:10px}.floating-party .party-status{margin:13px 0 12px;padding:6px 3px;font-size:8px}.floating-party .party-more{border-radius:0 0 12px 12px;width:calc(100% + 32px);margin:0 -16px;padding:10px 16px;font-size:9px}.floating-party .party-collapse{background:#fbfdf5;border-color:#e0e7d3;width:27px;height:27px}.floating-party.is-collapsed{width:170px}.party-collapsed-toggle{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#8d9d76;background:#fffef6ed;border:1px solid #cbd8b9;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:57px;padding:10px 12px;display:flex}.party-collapsed-toggle>span:nth-child(2){text-align:left;font-size:10px}.party-collapsed-toggle small{color:#a2ac8d;margin-top:4px;font-size:7px;display:block}.party-collapsed-toggle .mini-avatars>span{width:27px;height:27px}.party-collapsed-toggle .mini-avatars .character-art{width:30px;height:33px;transform:translate(-3px)}.map-love-chip{z-index:2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#8da176;background:#fffef1df;border:1px solid #cedcbe;border-radius:10px;align-items:center;gap:8px;min-height:42px;padding:7px 13px;display:flex;position:absolute;bottom:66px;left:24px;box-shadow:0 2px #7c94660a}.map-love-chip>span{font-size:10px}.map-love-chip strong{color:#6c8556;margin:0 3px;font-size:22px;font-weight:650}.map-love-chip small{letter-spacing:1px;color:#aab397;border-left:1px dashed #d7dfc7;margin-left:3px;padding-left:10px;font-size:7px}.map-app-shell .timeline-section{background:#fcfdf6;border-top:1px solid #d9e2cc;padding:16px 24px 12px}.map-app-shell .timeline-section>.section-heading{align-items:center;margin-bottom:11px}.map-app-shell .timeline-section .section-heading h2{letter-spacing:.5px;font-size:17px}.map-app-shell .timeline-section .section-heading .eyebrow,.map-app-shell .timeline-section .section-heading p{display:none}.map-app-shell .timeline-heading-actions{padding-top:0}.map-app-shell .timeline-card{box-shadow:none;background:0 0;border:0;border-radius:0}.map-app-shell .timeline-controls{margin:0}.map-app-shell .timeline-scroller{padding:0}.map-app-shell .timeline-track{padding:17px 20px 10px}.map-app-shell .timeline-date{height:24px}.map-app-shell .timeline-dot{border-radius:11px;width:34px;height:34px}.map-app-shell .timeline-stop>strong{margin-top:12px}.map-app-shell .love-progress{margin:0;padding:10px 1px 3px}.map-app-shell .progress-heading{margin-bottom:9px}.view-switcher{background:#f8faf1;border-top:1px solid #e4e9d9;justify-content:center;align-items:center;gap:14px;padding:9px 15px;display:flex}.view-switcher>button{color:#a2ac90;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:6px 11px;font-size:9px;display:inline-flex}.view-switcher>button.active,.view-switcher>button:hover{color:#7c9460;background:#eaf0dd}.map-app-shell>.connection-error{z-index:15;max-width:calc(100% - 48px);position:absolute;top:145px;left:24px}.content-app-shell{padding-top:12px}@media (max-width:940px){.story-strip{left:18px;right:264px}.story-strip-preview{gap:8px;padding-left:11px;padding-right:11px}.story-strip-open{gap:0;font-size:0}.story-strip-heading{gap:5px}.floating-party{width:228px;right:18px}}@media (max-width:720px){.map-app-shell .adventure-layout{height:calc(100svh - 252px);min-height:520px}.story-strip{border-radius:10px;height:54px;top:12px;left:12px;right:12px}.story-strip-preview{gap:8px;padding:8px 10px}.story-strip-icon{border-radius:8px;width:28px;height:28px}.story-strip-icon svg{width:15px}.story-strip-heading{gap:5px;font-size:7px}.story-strip-heading time{font-size:7px}.story-strip-heading strong{font-size:9px}.story-strip-heading .chapter-dot{display:none}.story-strip-excerpt{font-size:8px}.story-strip-open{display:none}.story-add-button{width:37px}.floating-party,.floating-party.is-collapsed{top:78px;right:12px}.floating-party{width:216px}.floating-party.is-collapsed{width:144px}.party-collapsed-toggle{gap:6px;min-height:48px;padding:8px 9px}.party-collapsed-toggle>span:nth-child(2){font-size:9px}.party-collapsed-toggle small{margin-top:3px;font-size:6px}.party-collapsed-toggle .mini-avatars>span{width:24px;height:24px}.party-collapsed-toggle .mini-avatars .character-art{width:27px;height:30px}.map-app-shell .map-topbar{flex-direction:column;align-items:flex-start;gap:10px;top:83px;left:13px}.map-app-shell .map-title{gap:7px;font-size:9px}.map-app-shell .map-title-icon{border-radius:8px;width:27px;height:27px}.map-app-shell .map-title small{letter-spacing:1px;font-size:5px}.map-app-shell .map-unlocked{padding:4px 7px;font-size:7px}.map-app-shell .map-note{display:none}.map-app-shell .map-bottombar{padding:0 13px;font-size:8px}.map-app-shell .map-legend{display:none}.map-app-shell .map-zoom{bottom:28px;right:13px}.map-app-shell .map-bottombar .replay-link{margin-left:auto;font-size:8px}.map-app-shell .world-footnote{font-size:7px;bottom:42px;left:14px;right:14px}.map-love-chip{border-radius:9px;gap:6px;min-height:38px;padding:6px 10px;bottom:63px;left:13px}.map-love-chip>svg{width:12px}.map-love-chip>span{font-size:9px}.map-love-chip strong{font-size:20px}.map-love-chip small{margin-left:0;padding-left:8px;font-size:6px}.map-app-shell .timeline-section{padding:14px 13px 11px}.map-app-shell .timeline-section .section-heading h2{font-size:16px}.map-app-shell .timeline-section>.section-heading{margin-bottom:11px}.map-app-shell .timeline-track{padding-top:17px}.map-app-shell .timeline-stop>strong{font-size:9px}.view-switcher{gap:3px;padding:8px 10px}.view-switcher>button{gap:4px;padding:6px 8px;font-size:8px}.view-switcher>button svg{width:12px}}@media (max-height:620px) and (min-width:721px){.map-app-shell .adventure-layout{min-height:380px}}:is(html:has(.map-app-shell),body:has(.map-app-shell)){overscroll-behavior:none;height:100%;overflow:hidden}.app-shell.map-app-shell{grid-template-rows:minmax(0,1fr) 142px 26px;height:100dvh;display:grid;position:fixed;inset:0;overflow:hidden}.app-shell.map-app-shell .adventure-layout{height:auto;min-height:0}.app-shell.map-app-shell .timeline-section{flex-direction:column;height:100%;min-height:0;padding:5px 18px;display:flex;position:relative;overflow:hidden}.timeline-toolbar{align-items:center;gap:9px;height:26px;min-height:26px;display:flex}.timeline-toolbar h2{letter-spacing:.3px;white-space:nowrap;margin:0 6px 0 0;font-size:11px;font-weight:650}.timeline-toolbar .memory-filters{flex-wrap:nowrap;gap:3px}.timeline-toolbar .memory-filters>button{height:22px;padding:3px 7px;font-size:8px}.timeline-toolbar .memory-filters>button svg{width:11px;height:11px}.timeline-toolbar .timeline-scroll-buttons{gap:4px;margin-left:auto}.timeline-toolbar .timeline-scroll-buttons>span{font-size:7px}.timeline-toolbar .icon-button{width:22px;height:22px}.timeline-toolbar .timeline-heading-actions{padding:0}.timeline-toolbar .playback-button{height:22px;min-height:22px;padding:3px 8px;font-size:8px}.timeline-mobile-filter{display:none}.map-app-shell .timeline-card{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.map-app-shell .timeline-scroller{scrollbar-width:thin;flex:1;min-height:0;padding:0;overflow-y:hidden}.map-app-shell .timeline-track{width:max-content;height:74px;padding:5px 0 0;min-width:100%!important}.map-app-shell .timeline-stop{flex:1 0 138px;min-width:138px}.map-app-shell .timeline-date{height:16px;font-size:8px;line-height:13px}.map-app-shell .timeline-date em{padding:1px 4px;font-size:6px}.map-app-shell .timeline-dot{border-radius:7px;width:22px;height:22px;box-shadow:0 0 0 4px #fcfdf6}.map-app-shell .timeline-dot>svg{width:12px;height:12px}.map-app-shell .timeline-stop.selected .timeline-dot{box-shadow:0 0 0 2px #fcfdf6,0 0 0 3px #b7c79f}.map-app-shell .timeline-stop>strong{white-space:nowrap;text-overflow:ellipsis;max-width:130px;height:13px;margin-top:4px;font-size:8px;font-weight:550;line-height:13px;overflow:hidden}.map-app-shell .timeline-caption{height:10px;min-height:10px;margin-top:2px;font-size:7px;line-height:10px}.map-app-shell .timeline-connector{top:27px}.map-app-shell .selected-chapter{display:none}.map-app-shell .today-dot>span{border-width:1.5px;width:8px;height:8px;box-shadow:0 0 0 3px #f2f5e6}.map-app-shell .love-progress{height:22px;min-height:22px;margin:0;padding:4px 0 0}.map-app-shell .progress-heading{margin-bottom:4px;font-size:7px;line-height:8px}.map-app-shell .progress-heading svg{width:9px;height:9px}.map-app-shell .progress-heading>strong{font-size:8px}.map-app-shell .progress-rail{height:3px}.map-app-shell .progress-rail>i{font-size:11px;top:-7px}.map-app-shell .progress-labels{display:none}.map-app-shell .timeline-empty{z-index:2;background:#f6f9edee;margin:0;padding:5px;font-size:8px;position:absolute;top:64px;left:20%;right:20%}.map-app-shell .view-switcher{gap:12px;height:26px;min-height:0;padding:0 10px}.map-app-shell .view-switcher>button{height:22px;padding:3px 9px;font-size:8px}.map-app-shell .view-switcher svg{width:11px;height:11px}.map-characters-layer{pointer-events:none;z-index:1;position:absolute;inset:0;overflow:hidden}.map-characters-layer .map-character{width:34px;height:44px;position:absolute}.map-characters-layer .map-character-button{pointer-events:auto;gap:1px;width:34px;height:44px;padding:0}.map-characters-layer .map-character-button>.character-art{filter:drop-shadow(0 1px #4c64352a);width:28px;height:31px}.map-characters-layer .map-character-button:hover>.character-art{transform:translateY(-2px)}.map-characters-layer .character-name{border-radius:4px;gap:0;min-height:11px;margin:0;padding:0 4px;font-size:7px;line-height:9px;box-shadow:0 1px #d3dec2}.city-label{paint-order:stroke;stroke:#f4f8e9;stroke-width:3px;stroke-linejoin:round}@media (max-width:720px){.app-shell.map-app-shell .timeline-section{padding:5px 10px}.timeline-toolbar{gap:6px}.timeline-toolbar h2{font-size:10px}.timeline-toolbar>.memory-filters{display:none}.timeline-mobile-filter{display:flex}.timeline-mobile-filter select{color:#7c9364;background:#f2f6e8;border:1px solid #dbe5cb;border-radius:5px;max-width:83px;height:22px;padding:3px 5px;font-size:8px}.timeline-toolbar .timeline-scroll-buttons>span{display:none}.timeline-toolbar .playback-button{gap:4px;padding:3px 6px;font-size:7px}.map-app-shell .view-switcher{gap:3px}.map-app-shell .view-switcher>button{padding:3px 7px;font-size:7px}.map-app-shell .timeline-empty{font-size:7px;left:10px;right:10px}}@media (max-width:365px){.timeline-toolbar h2{display:none}}@media (max-height:500px){.app-shell.map-app-shell{grid-template-rows:minmax(0,1fr) 120px 24px}.app-shell.map-app-shell .timeline-section{padding:3px 10px}.timeline-toolbar{height:23px;min-height:23px}.map-app-shell .love-progress{height:13px;min-height:13px;padding-top:5px}.map-app-shell .progress-heading{display:none}.map-app-shell .view-switcher{height:24px}.story-strip{height:42px;top:10px;left:12px;right:178px}.story-strip-preview{padding-top:5px;padding-bottom:5px}.story-strip-excerpt{display:none}.floating-party,.floating-party.is-collapsed{width:152px;top:10px;right:12px}.party-collapsed-toggle{min-height:42px;padding-top:6px;padding-bottom:6px}.map-app-shell .map-topbar,.map-app-shell .map-note,.map-app-shell .world-footnote{display:none}.map-love-chip{min-height:30px;padding:4px 9px;bottom:43px;left:12px}.map-love-chip strong{font-size:17px}.map-love-chip small{display:none}.map-app-shell .map-zoom{bottom:9px}}.app-shell.map-app-shell .adventure-layout{--map-overlay-gap:24px;--story-width:380px}.map-app-shell .map-panel{background:#eaf3e8}.map-app-shell .floating-party,.map-app-shell .floating-party.is-collapsed{top:var(--map-overlay-gap);left:var(--map-overlay-gap);right:auto}.map-app-shell .map-zoom{left:var(--map-overlay-gap);right:auto;bottom:calc(var(--map-overlay-gap) + 106px)}.map-app-shell .adventure-layout>.energy-legend{left:var(--map-overlay-gap);bottom:var(--map-overlay-gap);z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffef6ed;border:1px solid #cbd8b9;border-radius:12px;grid-template-columns:repeat(2,max-content);justify-content:start;gap:8px 18px;height:auto;padding:10px 12px;display:grid;position:absolute;box-shadow:0 3px #7c946614}.story-window{z-index:10;top:var(--map-overlay-gap);right:var(--map-overlay-gap);bottom:var(--map-overlay-gap);width:var(--story-width);max-width:calc(100% - 2 * var(--map-overlay-gap));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffef6f2;border:1px solid #cbd8b9;border-radius:16px;flex-direction:column;min-height:0;display:flex;position:absolute;overflow:hidden;box-shadow:0 4px #7c946614,0 8px 24px #536d3d12}.story-window-heading{background:#f4f7e9;border-bottom:1px solid #e6ebd9;flex-shrink:0;justify-content:space-between;align-items:center;min-height:39px;padding:6px 12px 6px 16px;display:flex}.story-window-heading>span{color:#7a9163;align-items:center;gap:8px;font-size:12px;display:inline-flex}.story-window-toggle{color:#8c9f76;background:#fffef7;border:1px solid #dfe7d1;border-radius:8px;width:26px;height:26px}.story-window-preview{overscroll-behavior:contain;color:#647c50;text-align:left;background:0 0;border:0;flex-direction:column;flex:1;align-items:flex-start;gap:14px;width:100%;min-height:0;padding:20px;display:flex;overflow-y:auto}.story-window-preview:hover{background:#f7f9ec}.story-window-preview time{letter-spacing:1px;color:#a1ae8d;font-size:11px;line-height:14px}.story-window-preview>strong{text-overflow:ellipsis;white-space:normal;max-width:100%;font-size:20px;font-weight:700;line-height:28px;overflow:hidden}.story-window-excerpt{white-space:pre-wrap;color:#909f7e;flex-shrink:0;font-size:14px;line-height:27px;display:block}.story-day-entry{color:#899974;background:#f6f8ed;border:1px solid #e0e7d2;border-radius:12px;flex-direction:column;flex-shrink:0;gap:8px;width:100%;margin-top:12px;padding:14px;font-size:13px;line-height:24px;display:flex}.story-day-entry strong{color:#647c50;font-size:15px}.day-detail-list{gap:16px;margin-top:20px;display:grid}.day-detail-entry{background:#f6f8ed;border:1px solid #e0e7d2;border-radius:14px;padding:18px}.day-detail-entry h3{color:#536e42;margin:12px 0;font-size:18px}.story-window-open{color:#76915b;flex-shrink:0;align-items:center;gap:5px;margin-top:auto;padding-top:16px;font-size:11px;line-height:16px;display:inline-flex}.story-window .story-add-button{border-top:1px solid #dce5ca;border-left:0;flex-shrink:0;gap:6px;width:100%;height:44px;font-size:11px}.story-window.is-collapsed{grid-template-columns:minmax(0,1fr) 30px 30px;align-items:center;column-gap:6px;padding-right:10px;display:grid;bottom:auto}.story-window.is-collapsed .story-window-heading{display:contents}.story-window.is-collapsed .story-window-heading>span{display:none}.story-window.is-collapsed .story-window-toggle{grid-area:1/3}.story-window.is-collapsed .story-window-preview{grid-area:1/1;gap:3px;min-width:0;padding:8px 12px;overflow:hidden}.story-window.is-collapsed .story-window-preview time{font-size:10px;line-height:12px}.story-window.is-collapsed .story-window-preview>strong{white-space:nowrap;font-size:12px;line-height:17px}.story-window.is-collapsed .story-add-button{border:1px solid #dce5ca;border-radius:8px;grid-area:1/2;width:28px;height:28px}.story-window.is-collapsed .story-add-button>span{display:none}@media (min-width:721px){.app-shell.map-app-shell .adventure-layout:has(.story-window:not(.is-collapsed)) .map-canvas{margin-right:calc(var(--story-width) + 2 * var(--map-overlay-gap))}}@media (max-width:720px){.app-shell.map-app-shell .adventure-layout{--map-overlay-gap:12px;--story-width:320px}.story-window.is-collapsed{width:min(var(--story-width), calc(100% - 184px))}.story-window-preview>strong{font-size:17px}:is(.adventure-layout:has(.story-window:not(.is-collapsed))>.floating-party,.adventure-layout:has(.story-window:not(.is-collapsed))>.energy-legend,.adventure-layout:has(.story-window:not(.is-collapsed)) .map-zoom){visibility:hidden}}@media (max-height:500px){.app-shell.map-app-shell .adventure-layout{--map-overlay-gap:12px;--story-width:360px}.map-app-shell .map-zoom{bottom:calc(var(--map-overlay-gap) + 106px);flex-direction:row}.map-app-shell .map-zoom>button{height:32px}}.app-shell.map-app-shell{--timeline-height:170px;grid-template-rows:minmax(0, 1fr) var(--timeline-height)}.app-shell.map-app-shell .energy-timeline{height:var(--timeline-height);background:#f8faef;border-top:1px solid #cdd9ba;flex-direction:column;gap:0;min-height:0;padding:8px 24px 9px;display:flex;overflow:hidden}.energy-date-controls{flex:0 0 38px;justify-content:center;align-items:center;gap:16px;height:38px;display:flex}.energy-date-button{color:#526d3e;background:#edf3e1;border:1px solid #c6d4b2;border-radius:10px;place-items:center;width:34px;height:32px;padding:0;display:grid;box-shadow:0 2px #dae3cb}.energy-date-button:hover:not(:disabled){background:#deebcc;border-color:#91ac73}.energy-date-button:disabled{opacity:.35;cursor:default;box-shadow:none}.energy-date-button:focus-visible{outline-offset:3px;outline:2px solid #577a46}.energy-current-date{color:#425d34;letter-spacing:1px;font-variant-numeric:tabular-nums;font-size:25px;font-weight:800;line-height:34px}.energy-track{flex:0 0 76px;width:100%;height:76px;padding:11px 0;position:relative}.energy-bar{background:#dbe5ce;border:2px solid #7e9867;border-radius:999px;height:54px;position:relative;box-shadow:inset 0 2px 3px #4e6c362b,0 2px #d4dfc3}.energy-bar:after{content:"";pointer-events:none;background:linear-gradient(#ffffff35,#fff0);border-radius:999px;height:12px;position:absolute;top:5px;left:6px;right:6px}.energy-fill-track{background:#eaf0de;border-radius:999px;position:absolute;inset:3px;overflow:hidden}.energy-period{position:absolute;top:0;bottom:0;box-shadow:inset 0 1px #fff6}.energy-period.is-together{background:linear-gradient(180deg, #f5c4d6, var(--together-pink) 55%, #d787a9)}.energy-period.is-apart{background:linear-gradient(#b4cf8e,#91b36b 55%,#7b9e56)}.energy-period.is-acquaintance{background:linear-gradient(#f2ca8e,#e9b573 55%,#dca060)}.energy-future{background:repeating-linear-gradient(135deg,#eaf0de,#eaf0de 6px,#dfe8d2 6px 8px);border:1px dashed #a6b997;border-radius:0 999px 999px 0;position:absolute;top:0;bottom:0;right:0}.energy-counter{color:#fffef0;letter-spacing:.5px;font-variant-numeric:tabular-nums;text-shadow:0 1px 2px #31576e66;white-space:nowrap;pointer-events:none;z-index:1;align-items:center;gap:9px;font-size:21px;font-weight:700;display:inline-flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.energy-counter>strong{font-size:33px;font-weight:800;line-height:1}.energy-counter small{letter-spacing:1px;font-size:15px}.energy-scrubber{cursor:ew-resize;touch-action:none;-webkit-user-select:none;user-select:none;z-index:2;outline:none;position:absolute;inset:11px 5px}.energy-scrubber:focus-visible{outline-offset:8px;border-radius:999px;outline:2px solid #55743d}.energy-cursor{pointer-events:none;width:0;position:absolute;top:-1px;bottom:-1px}.energy-cursor-top,.energy-cursor-bottom{filter:drop-shadow(0 1px #fff);border-left:6px solid #0000;border-right:6px solid #0000;width:0;height:0;position:absolute;left:0;transform:translate(-50%)}.energy-cursor-top{border-top:8px solid #526e3e;top:-9px}.energy-cursor-bottom{border-bottom:8px solid #526e3e;bottom:-9px}.energy-cursor-line{background:#2f563c66;width:1px;position:absolute;top:2px;bottom:2px;left:-.5px}.energy-range{font-variant-numeric:tabular-nums;color:#627651;letter-spacing:.5px;justify-content:space-between;align-items:center;gap:12px;height:20px;min-height:20px;font-size:14px;font-weight:700;line-height:20px;display:flex}.energy-legend{color:#7b896a;flex:0 0 18px;justify-content:center;align-items:center;gap:22px;height:18px;font-size:11px;line-height:18px;display:flex}.energy-legend>span{align-items:center;gap:6px;display:inline-flex}.energy-legend i{border-radius:999px;width:18px;height:7px;display:inline-block}.energy-legend .legend-together{background:var(--together-pink)}.energy-legend .legend-shared{background:var(--love-pink)}.energy-legend .legend-current-route{background:var(--map-route-current);box-shadow:0 0 0 2px #8b5ac425}.energy-legend .legend-acquaintance{background:#e9b573}.energy-legend .legend-apart{background:#95b66f}.energy-legend .legend-future{background:#e6edd9;border:1px dashed #a6b997;height:8px}@media (max-width:720px){.app-shell.map-app-shell{--timeline-height:160px}.app-shell.map-app-shell .energy-timeline{padding:8px 16px 9px}.energy-date-controls{flex-basis:36px;gap:15px;height:36px}.energy-current-date{font-size:23px}.energy-track{flex-basis:70px;height:70px}.energy-bar{height:48px}.energy-counter{gap:7px;font-size:19px}.energy-counter>strong{font-size:30px}.energy-counter small{font-size:13px}.energy-range{height:18px;min-height:18px;font-size:13px;line-height:18px}.energy-legend{gap:12px;font-size:10px}.energy-legend>span{gap:4px}.energy-legend i{width:14px}}@media (max-height:500px){.app-shell.map-app-shell{--timeline-height:128px}.app-shell.map-app-shell .energy-timeline{padding:4px 16px 3px}.energy-date-controls{flex-basis:28px;height:28px}.energy-date-button{width:32px;height:26px}.energy-current-date{font-size:21px;line-height:28px}.energy-track{flex-basis:60px;height:60px;padding-top:10px;padding-bottom:10px}.energy-bar{height:40px}.energy-scrubber{top:10px;bottom:10px}.energy-counter>strong{font-size:27px}.energy-counter{font-size:18px}.energy-range{height:16px;min-height:16px;font-size:12px;line-height:16px}.energy-legend{flex-basis:16px;height:16px;line-height:16px}}.flying-flight,.flight-passengers,.character-callout-arrow{pointer-events:none}.character-callout-bubble{filter:drop-shadow(0 2px 2px #45633125)}.city-character-button{cursor:pointer;outline:none}.city-character-button:hover .city-character-hit,.city-character-button:focus-visible .city-character-hit{fill:#d9e6b64d}.city-character-button:focus-visible .city-character-hit{stroke:#6e9254;stroke-width:2px;vector-effect:non-scaling-stroke}.callout-love-heart{transform-box:fill-box;transform-origin:50%;animation:1.4s ease-in-out infinite flight-heartbeat}@keyframes flight-heartbeat{0%,to{transform:scale(1)}45%{transform:scale(1.1)}}.adventure-loading{color:#6f8c58;text-align:center;background:#eaf3e8;flex-direction:column;justify-content:center;align-items:center;gap:18px;min-height:100dvh;padding:24px;font-size:14px;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.flying-plane,.flying-flight{display:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
