@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/roboto-latin-500-normal-7RbcRiD8.woff2)format("woff2"),url(/assets/roboto-latin-500-normal-DQZyH_nt.woff)format("woff")}:root{color:#151515;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#fff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}.mobile-carousel{overscroll-behavior:contain;scrollbar-width:none;-webkit-user-select:none;user-select:none;width:100%;min-width:0;max-width:100%;display:block;position:relative;overflow:auto}.mobile-carousel::-webkit-scrollbar{display:none}.mobile-carousel{touch-action:pan-y;overflow:auto hidden}.mobile-carousel[data-dragging=true]{cursor:none}.mobile-carousel-content{width:max-content;min-width:100%;transform:translateX(var(--mobile-carousel-overdrag));will-change:transform;display:flex}.mobile-carousel-scrollbar{z-index:4;opacity:0;pointer-events:none;transition:opacity .15s;position:absolute;inset:0}.mobile-carousel-scrollbar[data-visible=true]{opacity:1}.mobile-carousel-scrollbar-thumb{background:#00000059;border-radius:999px;height:3px;position:absolute;bottom:4px;right:4px}body{min-width:320px;overflow:hidden}.web-stage{background:var(--stub-canvas,#f6f1e7);width:100%;min-height:100dvh;position:relative;overflow:hidden}.device-screen.web-screen{background:var(--stub-canvas,#f6f1e7);width:100%;height:100dvh;box-shadow:none;cursor:default;-webkit-user-select:auto;user-select:auto;border-radius:0;position:relative;inset:auto;overflow:hidden}.device-screen.web-screen,.device-screen.web-screen *{cursor:default!important}.device-screen.web-screen button,.device-screen.web-screen a,.device-screen.web-screen [role=button]{cursor:pointer!important}.device-screen.web-screen input,.device-screen.web-screen textarea,.device-screen.web-screen select{cursor:text!important}.device-screen.web-screen :focus-visible{outline-offset:3px;outline:2px solid var(--stub-brand,#b94738)!important}.mobile-app-viewport[data-presentation=web]{width:100%;height:100dvh;position:relative}.mobile-app-viewport[data-presentation=web] .mobile-page{--mobile-safe-area-height:0px}.mobile-app-viewport[data-presentation=web] .mobile-scroll{overflow-anchor:none;touch-action:pan-y}button{cursor:pointer}.phone-stage{place-items:center;width:100%;height:100%;padding:24px;display:grid;position:relative}.device-menu-bar{z-index:100;border-radius:12px;padding:3px;position:absolute;top:18px;right:18px}.device-picker-trigger{color:#151515;background:0 0;border:0;border-radius:9px;align-items:center;gap:10px;height:34px;padding:0 10px 0 12px;font:600 14px/1 ui-sans-serif,system-ui,sans-serif;display:flex}.device-picker-trigger:hover,.device-picker-trigger[data-state=open]{background:#0000000e}.device-picker-trigger:focus-visible{outline-offset:2px;outline:2px solid #000000b8}.device-picker-menu{z-index:200;min-width:168px;transform-origin:var(--radix-dropdown-menu-content-transform-origin);background:#fffffffa;border-radius:12px;padding:3px;animation:.12s ease-out device-menu-in;box-shadow:0 0 1px #0000000f,0 0 0 1px #00000014,0 4px 4px #0000000d}.device-picker-item{color:#181818;-webkit-user-select:none;user-select:none;border-radius:8px;outline:none;justify-content:space-between;align-items:center;height:34px;padding:0 9px 0 10px;font:500 14px/1 ui-sans-serif,system-ui,sans-serif;display:flex}.device-picker-item[data-highlighted]{background:#f0f0f0}.device-picker-item[data-state=checked]{font-weight:600}.device-picker-check{color:#181818;place-items:center;display:grid}@keyframes device-menu-in{0%{opacity:0;transform:scale(.98)translateY(-2px)}to{opacity:1;transform:scale(1)translateY(0)}}.phone-scale-box{position:relative}.phone-device{transform-origin:0 0;-webkit-user-select:none;user-select:none;position:absolute;top:0;left:0}.phone-bezel{object-fit:contain;z-index:2;-webkit-user-drag:none;pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.device-screen{cursor:none;z-index:1;-webkit-user-select:none;user-select:none;background:#fff;border-radius:42px;position:absolute;overflow:hidden;box-shadow:inset 0 0 0 1px #00000014}.device-camera{z-index:75;pointer-events:none;background:#050505;border-radius:50%;display:block;position:absolute;box-shadow:inset 0 0 0 1px #ffffff14}.device-screen,.device-screen *{cursor:none!important}.device-screen img,.keyboard-asset{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.device-screen input,.device-screen textarea,.device-screen select,.device-screen option,.device-screen [contenteditable=true]{-webkit-user-select:auto;user-select:auto}.device-screen:active,.device-screen:active *,.device-screen input,.device-screen textarea,.device-screen button,.device-screen a,.device-screen [role=button]{cursor:none!important}.device-screen[data-cursor-debug=true],.device-screen[data-cursor-debug=true] *{cursor:default!important}.device-screen :focus,.device-screen :focus-visible{box-shadow:none!important;outline:0!important}.flow-stack,.flow-scenes,.flow-screen,.mobile-app-viewport{position:absolute;inset:0}.mobile-app-viewport[data-platform=android][data-keyboard-visible=false]{bottom:var(--device-safe-area-bottom,48px)}.flow-stack{--flow-header-height:0px;--flow-header-content-height:0px;--flow-header-safe-area:0px;--flow-footer-height:0px;--keyboard-height:0px;touch-action:pan-y;background:0 0;overflow:hidden}.flow-fixed-header{z-index:12;height:var(--flow-header-height);padding-top:var(--flow-header-safe-area);box-sizing:border-box;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-bottom:0;position:absolute;top:0;left:0;right:0}.flow-fixed-footer{z-index:12;right:0;bottom:var(--keyboard-height);height:var(--flow-footer-height);background:0 0;transition:bottom .26s cubic-bezier(.2,.8,.2,1);position:absolute;left:0}.flow-scenes{top:var(--flow-header-height);bottom:0;overflow:hidden}.flow-screen{will-change:transform;background:0 0;overflow:hidden}.mobile-page{--mobile-safe-area-height:var(--device-safe-area-bottom,34px);--keyboard-height:0px;position:absolute;inset:0}.mobile-page[data-keyboard-visible=true],.mobile-app-viewport[data-platform=android] .mobile-page{--mobile-safe-area-height:0px}.mobile-scroll{top:0;right:0;bottom:var(--keyboard-height);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scrollbar-width:none;touch-action:none;-webkit-user-select:none;user-select:none;transition:bottom .26s cubic-bezier(.2,.8,.2,1);position:absolute;left:0;overflow:hidden auto}.mobile-scroll::-webkit-scrollbar{display:none}.mobile-scroll[data-dragging=true]{cursor:none}.mobile-cursor{z-index:80;opacity:0;pointer-events:none;will-change:transform;background:radial-gradient(circle at 50% 44%,#ffffffb3 0 34%,#ffffff8a 58%,#eeeeee7a 100%);border:.5px solid #0000001f;border-radius:999px;width:48px;height:48px;transition:opacity 90ms,background 80ms,box-shadow 80ms;position:absolute;top:0;left:0;box-shadow:inset 0 1px 2px #fff9,inset 0 -5px 10px #0000000d,inset 0 0 0 1px #00000006}.mobile-cursor:before{content:"";pointer-events:none;background:linear-gradient(#ffffff61,#fff0);border-radius:999px;width:32px;height:17px;position:absolute;top:3px;left:50%;transform:translate(-50%)}.mobile-cursor:after{border-radius:inherit;content:"";pointer-events:none;position:absolute;inset:0;box-shadow:inset 1px 0 3px #ffffff47,inset -1px 0 3px #00000005}.mobile-cursor-hotspot{pointer-events:none;background:#ffffffd1;border:1px solid #007afff2;border-radius:999px;width:9px;height:9px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #ffffffbf,0 0 0 3px #007aff29}.mobile-cursor-hotspot:before,.mobile-cursor-hotspot:after{content:"";background:#007afff2;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.mobile-cursor-hotspot:before{width:17px;height:1px}.mobile-cursor-hotspot:after{width:1px;height:17px}.mobile-cursor[data-visible=true]{opacity:1}.mobile-cursor[data-active=true]{background:radial-gradient(circle at 50% 55%,#e8e8e894 0 30%,#f8f8f880 62%,#ffffffad 100%);box-shadow:inset 0 3px 7px #00000014,inset 0 -4px 8px #ffffff57,inset 0 0 0 1px #00000008}.mobile-cursor[data-active=true]:before{background:linear-gradient(#0000000e,#0000)}.mobile-cursor[data-active=true]:after{box-shadow:inset 0 5px 9px #0000000b,inset 0 -3px 7px #ffffff47}.mobile-scroll-content{will-change:transform;grid-template-columns:minmax(0,1fr);gap:0;min-width:0;padding:0;display:grid}.app-screen{background:#fff}.mobile-scrollbar{z-index:9;top:4px;right:5px;bottom:calc(var(--mobile-safe-area-height) + var(--keyboard-height) + 4px);opacity:0;pointer-events:none;width:4px;transition:bottom .26s cubic-bezier(.2,.8,.2,1),opacity .18s;position:absolute}.mobile-page[data-keyboard-dragging=true] .mobile-scroll,.mobile-page[data-keyboard-dragging=true] .mobile-scrollbar,.flow-stack[data-keyboard-dragging=true] .flow-fixed-footer{transition:none}.mobile-scrollbar[data-visible=true]{opacity:1}.mobile-scrollbar-thumb{background:#00000047;border-radius:999px;width:4px;min-height:36px;transition:background .12s;box-shadow:0 0 0 1px #ffffff2e}.status-bar{z-index:72;color:#050505;pointer-events:none;background:0 0;grid-template-columns:1fr auto;align-items:center;height:54px;padding:10px 34px 0 36px;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Arial,sans-serif;display:grid;position:absolute;top:0;left:0;right:0}.device-screen[data-device=pixel-10] .status-bar{align-items:start;height:auto;padding:32px 32px 0;font-family:Roboto,Arial,sans-serif}.status-time{text-align:center;letter-spacing:0;justify-self:start;min-width:58px;font-size:15px;font-weight:600;line-height:1}.status-indicators{justify-self:end;align-items:center;display:flex}.status-indicator-svg{display:block}.status-indicator-svg[data-platform=ios]{width:79px;height:13px}.status-indicator-svg[data-platform=android]{width:50px;height:14px}.device-screen[data-device=pixel-10] .status-time{font-weight:500;transform:translateY(2px)}.home-indicator-svg{z-index:70;width:100%;height:var(--device-safe-area-bottom,34px);pointer-events:none;display:block;position:absolute;bottom:0;left:0;right:0}.android-navigation-bar{z-index:70;width:428px;height:var(--device-safe-area-bottom,48px);pointer-events:none;-webkit-user-drag:none;display:block;position:absolute;bottom:-1px;left:-1px}h1,h2,p{margin:0}h1{letter-spacing:0;font-size:26px;line-height:1.08}h2{font-size:15px}p{color:#555;font-size:14px;line-height:1.45}.field-label{color:#555;font-size:13px;font-weight:800}.mobile-field{gap:8px;display:grid}.mobile-field input{color:#151515;background:#fff;border:1px solid #0000001a;border-radius:8px;outline:0;width:100%;min-height:44px;padding:0 12px}.mobile-field input:focus{box-shadow:none;border-color:#00000029}.device-screen .mobile-field input:focus,.device-screen .mobile-field input:focus-visible{border-color:#0000001f;box-shadow:none!important;outline:0!important}.sheet-overlay{z-index:20;background:#00000057;position:absolute;inset:0}.bottom-sheet{z-index:21;touch-action:none;background:#fff;border-radius:22px 22px 0 0;flex-direction:column;min-height:260px;display:flex;position:absolute;left:0;right:0;overflow:hidden;box-shadow:0 -16px 48px #0003}.sheet-handle-zone{touch-action:none;place-items:center;height:30px;display:grid}.sheet-handle{background:#c9c9c4;border-radius:999px;width:42px;height:5px}.sheet-header{gap:4px;padding:0 18px 14px;display:grid}.sheet-title{margin:0;font-size:18px;font-weight:900}.sheet-description{color:#737373;margin:0;font-size:13px;line-height:1.35}.sheet-content{padding:0 18px 24px;overflow:auto}.keyboard-dock{z-index:30;height:339px;box-shadow:none;pointer-events:none;will-change:transform;background:#d8d9de;border-radius:32px 32px 0 0;padding:0;position:absolute;bottom:-1px;left:0;right:0;overflow:hidden}.keyboard-dock[data-platform=android]{background:#f3f2f6;border-radius:0;box-shadow:0 -1px 2px #00000014}.keyboard-dock[data-visible=true]{pointer-events:auto}.keyboard-asset{z-index:1;border-radius:inherit;object-fit:cover;object-position:center bottom;-webkit-user-drag:none;pointer-events:none;width:100%;height:100%;display:block;position:relative}.keyboard-dock[data-platform=android] .keyboard-asset{object-fit:fill;border-radius:0}:root{--stub-canvas:#f6f1e7;--stub-surface:#fffdf8;--stub-surface-raised:#fff;--stub-surface-muted:#ece4d8;--stub-ink:#282421;--stub-muted:#655d55;--stub-subtle:#756a60;--stub-brand:#b94738;--stub-brand-pressed:#96372b;--stub-brand-soft:#f2d9d1;--stub-brand-ink:#883428;--stub-memory:#8b5f12;--stub-memory-decorative:#d6a34a;--stub-border:#d8cdbf;--stub-border-strong:#9d9183;--stub-success:#47735c;--stub-danger:#a33f3b;--stub-shadow:#372b1f26;--stub-shadow-soft:#372b1f14;--stub-nav:#f6f1e7f7;--stub-map-overlay:#fffdf8f0;color:var(--stub-ink);background:var(--stub-canvas);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,Hiragino Sans GB,sans-serif}:root[data-stub-theme=dark],.stub-app[data-theme=dark]{--stub-canvas:#171511;--stub-surface:#211e19;--stub-surface-raised:#29251f;--stub-surface-muted:#322d26;--stub-ink:#f5eee2;--stub-muted:#c9bdad;--stub-subtle:#aa9d8e;--stub-brand:#b94738;--stub-brand-pressed:#96372b;--stub-brand-soft:#4a2b25;--stub-brand-ink:#ffb09f;--stub-memory:#efb950;--stub-memory-decorative:#d8a64f;--stub-border:#51483d;--stub-border-strong:#756858;--stub-success:#65987b;--stub-danger:#f28d87;--stub-shadow:#00000057;--stub-shadow-soft:#0003;--stub-nav:#171511fa;--stub-map-overlay:#211e19f5}button,input,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}.stub-app{color:var(--stub-ink);background:var(--stub-canvas);transition:background .18s,color .18s;position:absolute;inset:0;overflow:hidden}:root[data-stub-theme=dark] .bottom-sheet{color:var(--stub-ink);background:var(--stub-surface-raised);box-shadow:0 -16px 48px #00000075}:root[data-stub-theme=dark] .sheet-description{color:var(--stub-muted)}:root[data-stub-theme=dark] .sheet-handle{background:var(--stub-border-strong)}.app-screen{background:var(--stub-canvas);color:var(--stub-ink)}.stub-home,.trip-home,.wall-page,.profile-page,.subpage{box-sizing:border-box;min-height:100%;padding:56px 25px calc(var(--mobile-safe-area-height) + 28px)}.stub-home,.trip-home,.wall-page,.profile-page{padding-bottom:calc(var(--mobile-safe-area-height) + 102px)}.brand-header,.subpage-header,.section-title-row,.detail-label-row{justify-content:space-between;align-items:flex-start;display:flex}.brand-name{letter-spacing:-1.6px;margin:0;font-family:Georgia,Times New Roman,Songti SC,serif;font-size:35px;font-weight:700;line-height:.95}.brand-cn{color:var(--stub-subtle);letter-spacing:.18em;margin:9px 0 0;font-family:Songti SC,STSong,serif;font-size:12px}.header-tools{align-items:center;gap:8px;display:flex}.mini-language{border:1px solid var(--stub-border-strong);min-width:42px;height:42px;color:var(--stub-ink);background:0 0;border-radius:999px;padding:0 11px;font-family:Georgia,Times New Roman,serif;font-size:13px;font-weight:700}.icon-button{border:1px solid var(--stub-border-strong);width:42px;height:42px;color:var(--stub-ink);background:0 0;border-radius:999px;place-items:center;padding:0;display:grid}.icon-button.small{flex:none;width:38px;height:38px}.icon-button:active,.mini-language:active{background:var(--stub-surface-muted)}.icon-button.plain{border:0;width:36px;height:36px;margin-left:-9px}.month-intro{margin:28px 0 21px}.month-eyebrow,.section-eyebrow{color:var(--stub-memory);letter-spacing:.14em;margin:0 0 7px;font-family:Georgia,Times New Roman,serif;font-size:10px;font-weight:700}.month-title{color:var(--stub-memory);letter-spacing:.04em;margin:0;font-family:Songti SC,STSong,Georgia,serif;font-size:42px;font-weight:500;line-height:1}.month-caption{color:var(--stub-muted);letter-spacing:.03em;margin:10px 0 0;font-family:Songti SC,STSong,serif;font-size:13px}.filter-label{color:var(--stub-brand-ink);background:var(--stub-brand-soft);border-radius:999px;margin:11px 0 0;padding:5px 9px;font-size:11px;display:inline-block}.loading-paper{min-height:220px;color:var(--stub-muted);align-content:center;place-items:center;gap:12px;font-family:Songti SC,STSong,serif;font-size:13px;display:grid}.loading-paper span{border:2px solid var(--stub-border);border-top-color:var(--stub-brand);border-radius:50%;width:32px;height:32px;animation:.85s linear infinite stub-spin}@keyframes stub-spin{to{transform:rotate(360deg)}}.stub-timeline{gap:14px;display:grid}.stub-entry{min-width:0}.ticket-button{background:0 0;border:0;border-radius:9px;width:100%;padding:0;display:block}.ticket-image{object-fit:contain;width:100%;box-shadow:0 10px 22px var(--stub-shadow), 0 2px 4px var(--stub-shadow-soft);-webkit-user-select:none;user-select:none;border-radius:9px;display:block}.featured-entry .ticket-image{background:var(--stub-surface-muted);max-height:315px}.memory-note{border-left:3px solid var(--stub-memory-decorative);color:var(--stub-memory);margin:16px 7px 3px;padding-left:13px;font-family:Songti SC,STSong,serif}.memory-note p{margin:0;font-size:15px;line-height:1.65}.memory-note time{margin-top:6px;font-size:12px;display:block}.inline-tags,.detail-tags{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.inline-tags span,.detail-tags span{border:1px solid;border-radius:999px;padding:4px 7px;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,sans-serif;font-size:9px;line-height:1}.compact-entry{border-top:1px dashed var(--stub-border);padding-top:12px}.compact-entry .ticket-image{object-fit:cover;max-height:135px}.compact-caption{width:100%;color:var(--stub-ink);text-align:left;background:0 0;border:0;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:10px 2px 0;display:grid}.compact-caption span{color:var(--stub-brand-ink);font-size:10px}.compact-caption strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.bottom-nav{z-index:30;min-height:calc(69px + var(--mobile-safe-area-height));padding:7px 15px var(--mobile-safe-area-height);border-top:1px solid var(--stub-border);background:var(--stub-nav);box-shadow:0 -8px 22px var(--stub-shadow-soft);grid-template-columns:repeat(5,1fr);align-items:start;display:grid;position:absolute;bottom:0;left:0;right:0}.nav-item{height:56px;color:var(--stub-subtle);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:0;font-size:10px;display:flex}.nav-item svg{width:19px;height:19px}.nav-item.active{color:var(--stub-brand);font-weight:700}.nav-add{border:4px solid var(--stub-canvas);color:#fffaf3;background:var(--stub-brand);border-radius:50%;justify-self:center;place-items:center;width:52px;height:52px;margin-top:-16px;padding:0;display:grid;box-shadow:0 8px 18px #a940303d}.primary-cta,.secondary-action{letter-spacing:.04em;border-radius:999px;justify-content:center;align-items:center;gap:9px;width:100%;min-height:52px;font-size:16px;font-weight:650;display:flex}.primary-cta{color:#fffaf3;background:var(--stub-brand);border:0;margin-top:14px;box-shadow:0 6px 16px #a9403033}.secondary-action{border:1px solid var(--stub-border);color:var(--stub-ink);background:var(--stub-surface)}.primary-cta:active{background:var(--stub-brand-pressed);transform:translateY(1px)}.primary-cta:disabled,.secondary-action:disabled{opacity:.55}.empty-state,.empty-book{text-align:center;color:var(--stub-muted);margin:44px 0}.empty-state button,.empty-book button{color:var(--stub-brand-ink);background:var(--stub-brand-soft);border:0;border-radius:999px;padding:9px 15px}.storage-warning{border:1px solid var(--stub-brand);color:var(--stub-brand-ink);background:var(--stub-brand-soft);border-radius:10px;padding:12px;font-size:11px;line-height:1.5}.trip-intro,.wall-intro,.profile-intro{margin:32px 0 18px}.trip-intro{margin:26px 0 14px}.trip-intro h1,.wall-intro h1,.profile-intro h1{color:var(--stub-memory);margin:0;font-family:Songti SC,STSong,Georgia,serif;font-size:39px;font-weight:500;line-height:1.05}.trip-intro p:not(.section-eyebrow),.wall-intro p:not(.section-eyebrow),.profile-intro p:not(.section-eyebrow){max-width:285px;color:var(--stub-muted);margin:8px 0 0;font-size:12px;line-height:1.5}.segmented-control{border:1px solid var(--stub-border);background:var(--stub-surface-muted);border-radius:999px;grid-template-columns:1fr 1fr;width:150px;padding:2px;display:grid}.segmented-control button{min-height:30px;color:var(--stub-muted);background:0 0;border:0;border-radius:999px;padding:0 10px;font-size:12px}.segmented-control button.selected{color:var(--stub-brand-ink);background:var(--stub-surface);box-shadow:0 2px 8px var(--stub-shadow-soft);font-weight:700}.map-experience{margin-top:8px}.map-canvas{border-top:1px solid var(--stub-border);border-bottom:1px solid var(--stub-border);background:#f4efe5;height:300px;margin-left:-25px;margin-right:-25px;position:relative;overflow:hidden}.stub-app[data-theme=dark] .map-canvas{background:#29251f}.map-canvas>img{object-fit:cover;opacity:.96;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.stub-app[data-theme=dark] .map-canvas>img,.stub-app[data-theme=dark] .trip-cover-card>img,.stub-app[data-theme=dark] .trip-book-cover>img{opacity:.72;filter:brightness(.72)saturate(.85)sepia(.1)}.map-label{border:1px solid var(--stub-border-strong);color:var(--stub-ink);background:var(--stub-map-overlay);box-shadow:0 4px 11px var(--stub-shadow-soft);border-radius:999px;padding:5px 8px;font-size:10px;font-weight:700;position:absolute}.map-label.active{border-color:var(--stub-brand);color:var(--stub-brand-ink)}.map-label-otaru{top:48%;left:20%}.map-label-sapporo{top:53%;left:38%}.map-label-asahikawa{top:29%;left:55%}.map-label-chitose{top:65%;right:23%}.map-chapter-card{border:1px solid var(--stub-border);width:205px;color:var(--stub-ink);background:var(--stub-map-overlay);box-shadow:0 10px 22px var(--stub-shadow);text-align:left;border-radius:8px;gap:8px;padding:13px 14px;display:grid;position:absolute;bottom:15px;left:26px;right:auto}.map-chapter-card>span,.map-chapter-card>small{color:var(--stub-brand-ink);align-items:center;gap:6px;font-size:11px;display:flex}.map-chapter-card>strong{font-family:Songti SC,STSong,serif;font-size:13px;font-weight:500;line-height:1.5}.map-chapter-card>small{color:var(--stub-muted)}.trip-cover-card{border:1px solid var(--stub-border);width:100%;min-height:145px;color:var(--stub-ink);background:var(--stub-surface);box-shadow:0 10px 24px var(--stub-shadow);text-align:left;border-radius:10px;grid-template-columns:34% 1fr;margin-top:18px;padding:0;display:grid;position:relative;overflow:hidden}.trip-cover-card>img{object-fit:cover;border-right:1px solid var(--stub-border);width:100%;height:100%;display:block}.trip-cover-copy{flex-direction:column;justify-content:center;align-items:flex-start;padding:15px 14px;display:flex}.trip-cover-copy small{color:var(--stub-memory);letter-spacing:.08em;font-family:Georgia,Times New Roman,serif;font-size:8px}.trip-cover-copy strong{margin-top:7px;font-family:Songti SC,STSong,Georgia,serif;font-size:21px}.trip-cover-copy em{color:var(--stub-muted);margin-top:5px;font-size:10px;font-style:normal}.trip-cover-copy b{color:var(--stub-brand-ink);align-items:center;gap:5px;margin-top:13px;font-size:11px;display:flex}.book-shelf{gap:13px;margin-top:18px;display:grid}.shelf-book{border:1px solid var(--stub-border);min-height:128px;color:var(--stub-ink);background:var(--stub-surface);box-shadow:0 8px 18px var(--stub-shadow-soft);text-align:left;border-radius:9px;grid-template-columns:31px 1fr auto;align-items:stretch;padding:0 14px 0 0;display:grid;overflow:hidden}.book-spine{color:#fff7ec;background:var(--stub-brand);letter-spacing:.1em;writing-mode:vertical-rl;place-items:center;font-family:Georgia,serif;font-size:7px;display:grid}.book-copy{flex-direction:column;justify-content:center;align-items:flex-start;padding:15px;display:flex}.book-copy small,.book-copy em,.book-copy b{color:var(--stub-muted);font-size:9px;font-style:normal;font-weight:500}.book-copy strong{margin:7px 0 4px;font-family:Songti SC,STSong,serif;font-size:19px}.book-copy b{color:var(--stub-brand-ink);margin-top:8px}.new-book-card{border:1px dashed var(--stub-border-strong);min-height:62px;color:var(--stub-muted);background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:9px;display:flex}.wall-filter-carousel{margin:0 -25px 16px;padding:0 25px}.wall-filter-label{color:var(--stub-subtle);letter-spacing:.08em;margin:2px 0 8px;font-size:8px;font-weight:700}.wall-tag-carousel{margin-bottom:18px}.wall-filter-track{gap:8px;padding-right:25px}.wall-filter{border:1px solid var(--stub-border);color:var(--stub-muted);background:var(--stub-surface);border-radius:999px;flex:none;padding:8px 13px;font-size:11px}.wall-filter.selected{border-color:var(--stub-brand);color:#fffaf3;background:var(--stub-brand)}.stub-wall{columns:2;column-gap:11px}.wall-tile{break-inside:avoid;border:1px solid var(--stub-border);width:100%;color:var(--stub-ink);background:var(--stub-surface);box-shadow:0 7px 15px var(--stub-shadow-soft);text-align:left;border-radius:8px;margin:0 0 11px;padding:0;display:block;position:relative;overflow:hidden}.wall-tile>img{object-fit:cover;width:100%;min-height:126px;max-height:240px;display:block}.wall-movie>img{aspect-ratio:2/3}.wall-travel>img{aspect-ratio:1.3}.wall-food>img{aspect-ratio:1}.wall-tile-1>img{max-height:190px}.wall-tile-copy{padding:9px 9px 10px;display:block}.wall-tile-copy small{color:var(--stub-subtle);font-size:7.5px;line-height:1.3;display:block}.wall-tile-copy strong{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:4px;font-family:Songti SC,STSong,serif;font-size:11px;line-height:1.4;display:-webkit-box;overflow:hidden}.stats-card{border:1px solid var(--stub-border);background:var(--stub-surface);box-shadow:0 8px 18px var(--stub-shadow-soft);border-radius:11px;grid-template-columns:repeat(3,1fr);margin-bottom:25px;padding:17px 5px;display:grid}.stats-card span{border-right:1px solid var(--stub-border);flex-direction:column;align-items:center;gap:3px;display:flex}.stats-card span:last-child{border-right:0}.stats-card strong{font-family:Georgia,serif;font-size:23px}.stats-card small{color:var(--stub-muted);font-size:9px}.settings-section{margin-top:24px}.settings-section h2{color:var(--stub-muted);margin:0 0 10px;font-size:11px;font-weight:600}.theme-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.theme-option{border:1px solid var(--stub-border);min-height:82px;color:var(--stub-muted);background:var(--stub-surface);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:7px;padding:8px;font-size:9px;display:flex}.theme-option>svg:first-child{width:19px;height:19px}.theme-option>svg:last-child{width:12px;height:12px;color:var(--stub-brand)}.theme-option.selected{border-color:var(--stub-brand);color:var(--stub-brand-ink);background:var(--stub-brand-soft)}.settings-row{border:1px solid var(--stub-border);width:100%;min-height:62px;color:var(--stub-ink);background:var(--stub-surface);text-align:left;border-radius:10px;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;margin-top:9px;padding:10px 12px;display:grid}.settings-row>svg{color:var(--stub-brand)}.settings-row span{gap:3px;display:grid}.settings-row strong{font-size:12px}.settings-row small{color:var(--stub-muted);font-size:9px}.settings-row b{color:var(--stub-brand-ink);font-size:11px}.privacy-card{border:1px solid var(--stub-border);color:var(--stub-ink);background:var(--stub-surface);border-radius:10px;grid-template-columns:auto 1fr;gap:11px;padding:14px;display:grid}.privacy-card>svg{color:var(--stub-success)}.privacy-card strong{font-size:12px}.privacy-card p{color:var(--stub-muted);margin:5px 0 0;font-size:10px;line-height:1.55}.plus-card{border:1px solid var(--stub-border-strong);color:var(--stub-ink);background:var(--stub-surface-raised);box-shadow:0 10px 24px var(--stub-shadow-soft);border-radius:12px;margin-top:26px;padding:20px 17px}.plus-badge{color:#fffaf3;background:var(--stub-brand);letter-spacing:.08em;border-radius:999px;padding:5px 8px;font-family:Georgia,serif;font-size:9px;font-weight:700;display:inline-block}.plus-card h2{margin:13px 0 0;font-family:Songti SC,STSong,serif;font-size:19px}.plus-card p{color:var(--stub-muted);margin:9px 0 0;font-size:10px;line-height:1.65}.plus-card button{color:var(--stub-brand-ink);background:0 0;border:0;align-items:center;gap:5px;margin-top:14px;padding:0;font-size:11px;font-weight:700;display:flex}.subpage-header{align-items:center;margin-bottom:25px}.subpage-header h1{margin:0;font-size:16px;font-weight:650}.header-action{place-items:center;width:36px;min-height:36px;display:grid}.header-action .plain{margin:0}.import-page{flex-direction:column;display:flex}.import-hero{text-align:center;margin-top:42px}.import-icon{width:74px;height:74px;color:var(--stub-brand);background:var(--stub-brand-soft);border-radius:50%;place-items:center;margin:0 auto 20px;display:grid}.import-hero h2{margin:0;font-family:Songti SC,STSong,Georgia,serif;font-size:24px;font-weight:600;line-height:1.35}.import-hero p{max-width:285px;color:var(--stub-muted);margin:12px auto 0;font-size:13px;line-height:1.65}.import-actions{gap:11px;margin-top:60px;display:grid}.import-action{margin:0}.privacy-strip{border:1px solid var(--stub-border);color:var(--stub-muted);border-radius:9px;align-items:flex-start;gap:8px;margin-top:18px;padding:12px;font-size:10px;line-height:1.5;display:flex}.privacy-strip svg{color:var(--stub-success);flex:none}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.review-image,.detail-image{object-fit:contain;background:var(--stub-surface-muted);width:100%;max-height:290px;box-shadow:0 10px 24px var(--stub-shadow);border-radius:9px;display:block}.review-hint{color:var(--stub-muted);margin:15px 2px 20px;font-family:Songti SC,STSong,serif;font-size:12px}.stub-form{gap:20px;display:grid}.form-field,.type-field{border:0;gap:8px;min-width:0;margin:0;padding:0;display:grid}.form-field>span,.type-field legend{color:var(--stub-muted);font-size:11px}.form-field input,.form-field textarea,.tag-input-row input{box-sizing:border-box;border:1px solid var(--stub-border);width:100%;color:var(--stub-ink);background:var(--stub-surface);border-radius:9px;outline:none;padding:12px 13px;font-size:14px}.form-field input:focus,.form-field textarea:focus,.tag-input-row input:focus{border-color:var(--stub-brand);box-shadow:0 0 0 3px var(--stub-brand-soft)!important}.form-field input::placeholder,.form-field textarea::placeholder,.tag-input-row input::placeholder{color:var(--stub-subtle);opacity:1}.form-field textarea{resize:none;min-height:84px;line-height:1.5}.field-pair{grid-template-columns:1fr 1fr;gap:10px;min-width:0;display:grid}.type-options{flex-wrap:wrap;gap:7px;display:flex}.type-chip{border:1px solid var(--stub-border);color:var(--stub-muted);background:var(--stub-surface);border-radius:999px;padding:8px 11px;font-size:11px}.type-chip.selected{border-color:var(--stub-brand);color:var(--stub-brand-ink);background:var(--stub-brand-soft);font-weight:700}.dynamic-fields,.tag-editor,.attachment-editor{border:1px solid var(--stub-border);background:var(--stub-surface-raised);border-radius:11px;gap:16px;padding:16px;display:grid}.form-section-title{grid-template-columns:auto 1fr;align-items:flex-start;gap:9px;display:grid}.form-section-title>svg{color:var(--stub-brand);margin-top:2px}.form-section-title>div{gap:3px;display:grid}.form-section-title strong{font-size:12px}.form-section-title small{color:var(--stub-muted);font-size:9px;line-height:1.4}.travel-type-prompt{border:1px dashed var(--stub-border-strong);color:var(--stub-ink);background:var(--stub-surface);border-radius:10px;grid-template-columns:auto 1fr;align-items:flex-start;gap:10px;padding:13px;display:grid}.travel-type-prompt>svg{color:var(--stub-brand);margin-top:1px}.travel-type-prompt strong{font-size:11px}.travel-type-prompt p{color:var(--stub-muted);margin:5px 0 0;font-size:9px;line-height:1.55}.poster-match{border:1px solid var(--stub-border);background:var(--stub-surface);border-radius:10px;grid-template-columns:88px 1fr;gap:12px;padding:10px;display:grid;overflow:hidden}.poster-match.selected{border-color:var(--stub-brand)}.poster-match>img{object-fit:cover;border-radius:6px;width:88px;height:132px;display:block}.poster-match>div{min-width:0}.poster-match small{color:var(--stub-brand-ink);align-items:center;gap:4px;font-size:8px;display:flex}.poster-match strong{text-overflow:ellipsis;white-space:nowrap;margin-top:8px;font-family:Songti SC,STSong,serif;font-size:13px;display:block;overflow:hidden}.poster-match p{color:var(--stub-muted);margin:7px 0 0;font-size:8.5px;line-height:1.5}.poster-match>div>div{gap:6px;margin-top:10px;display:flex}.poster-match button{border:1px solid var(--stub-border);color:var(--stub-brand-ink);background:var(--stub-brand-soft);border-radius:999px;align-items:center;gap:3px;padding:6px 8px;font-size:8px;display:flex}.poster-no-match{border:1px dashed var(--stub-border-strong);color:var(--stub-ink);background:var(--stub-surface);border-radius:10px;grid-template-columns:auto 1fr;align-items:flex-start;gap:10px;padding:13px;display:grid}.poster-no-match>svg{color:var(--stub-memory);margin-top:1px}.poster-no-match strong{font-size:11px}.poster-no-match p{color:var(--stub-muted);margin:5px 0 0;font-size:9px;line-height:1.55}.poster-no-match button{border:1px solid var(--stub-border-strong);color:var(--stub-brand-ink);background:var(--stub-brand-soft);border-radius:999px;margin-top:9px;padding:6px 9px;font-size:8px}.tag-input-row{grid-template-columns:1fr auto;gap:8px;display:grid}.tag-input-row button,.add-photo-button{border:1px solid var(--stub-border);color:var(--stub-brand-ink);background:var(--stub-brand-soft);border-radius:9px;justify-content:center;align-items:center;gap:5px;padding:0 12px;font-size:10px;display:flex}.add-photo-button{min-height:43px}.attachment-carousel,.detail-photo-carousel{margin:0 -16px;padding:0 16px}.attachment-track,.detail-photo-track{gap:9px;padding-right:16px}.attachment-track figure{border-radius:8px;flex:none;width:105px;height:105px;margin:0;position:relative;overflow:hidden}.attachment-track img,.detail-photo-track img{object-fit:cover;width:100%;height:100%;display:block}.attachment-track figure button{color:#fff;background:#181512c2;border:0;border-radius:50%;place-items:center;width:24px;height:24px;padding:0;display:grid;position:absolute;top:5px;right:5px}.form-error{text-align:center;color:var(--stub-danger);margin:14px 0 0;font-size:11px}.save-button{margin-bottom:8px}.detail-page{padding-bottom:calc(var(--mobile-safe-area-height) + 36px)}.movie-detail-hero{grid-template-columns:42% 1fr;align-items:end;gap:16px;margin-bottom:18px;display:grid}.movie-detail-hero>img{aspect-ratio:2/3;object-fit:cover;width:100%;box-shadow:0 10px 22px var(--stub-shadow);border-radius:8px;display:block}.movie-detail-hero small{color:var(--stub-brand-ink);letter-spacing:.04em;font-size:8px}.movie-detail-hero h2{margin:8px 0 0;font-family:Songti SC,STSong,serif;font-size:19px;line-height:1.35}.movie-detail-hero p{color:var(--stub-muted);margin:10px 0 0;font-size:9px;line-height:1.4}.movie-detail-hero span{color:var(--stub-subtle);margin-top:4px;font-size:9px;display:block}.detail-image{margin-top:16px}.detail-copy{padding:22px 3px 0}.detail-label-row{align-items:center}.detail-label-row time{color:var(--stub-muted);font-size:10px}.detail-type{color:var(--stub-brand-ink);background:var(--stub-brand-soft);border-radius:999px;margin:0;padding:5px 9px;font-size:9px;display:inline-block}.detail-copy h2{margin:12px 0 0;font-family:Songti SC,STSong,Georgia,serif;font-size:25px;line-height:1.35}.detail-tags{color:var(--stub-brand-ink)}.detail-note{border-left:3px solid var(--stub-memory-decorative);color:var(--stub-memory);margin:22px 0 0;padding-left:13px;font-family:Songti SC,STSong,serif;font-size:15px;line-height:1.72}.detail-attachments{margin-top:27px}.detail-attachments h3{color:var(--stub-muted);margin:0 0 10px;font-size:11px}.detail-photo-carousel{margin-left:-25px;margin-right:-25px;padding:0 25px}.detail-photo-track{gap:10px;padding-right:25px}.detail-photo-track img{border-radius:9px;flex:none;width:190px;height:190px}.canonical-note{border:1px solid var(--stub-border);background:var(--stub-surface);border-radius:10px;grid-template-columns:auto 1fr;gap:10px;margin-top:27px;padding:14px;display:grid}.canonical-note>svg{color:var(--stub-success)}.canonical-note strong{font-size:11px}.canonical-note p{color:var(--stub-muted);margin:5px 0 0;font-size:9px;line-height:1.55}.detail-actions{gap:8px;margin-top:24px;display:grid}.delete-button{width:100%;min-height:44px;color:var(--stub-danger);background:0 0;border:0;justify-content:center;align-items:center;gap:7px;padding:10px;font-size:11px;display:flex}.flight-card{border:1px solid var(--stub-border);color:var(--stub-ink);background:var(--stub-surface-raised);box-shadow:0 10px 22px var(--stub-shadow-soft);border-radius:12px;padding:14px;overflow:hidden}.flight-card-top{grid-template-columns:auto 1fr auto;align-items:center;gap:9px;display:grid}.airline-mark{color:#fff;background:var(--stub-brand);border-radius:9px;place-items:center;width:34px;height:34px;font-family:Georgia,serif;font-size:12px;font-weight:700;display:grid}.airline-logo{border:1px solid var(--stub-border);object-fit:contain;background:#fff;border-radius:9px;width:34px;height:34px;padding:2px;display:block}.flight-card-top p{color:var(--stub-muted);margin:0;font-size:8px}.flight-card-top strong{margin-top:2px;font-size:12px;display:block}.flight-status{border:1px solid var(--stub-border);color:var(--stub-success);letter-spacing:.05em;border-radius:999px;padding:4px 6px;font-size:6px;font-weight:700}.flight-route{grid-template-columns:1fr 68px 1fr;align-items:center;gap:5px;margin-top:17px;display:grid}.flight-route>div:first-child{text-align:left}.flight-route>div:last-child{text-align:right}.flight-route strong{letter-spacing:.03em;font-family:Georgia,serif;font-size:27px;display:block}.flight-route span{color:var(--stub-muted);margin-top:3px;font-size:9px;display:block}.flight-line{color:var(--stub-brand);place-items:center;display:grid;position:relative}.flight-line:before{background:var(--stub-border-strong);content:"";height:1px;position:absolute;left:0;right:0}.flight-line svg{background:var(--stub-surface-raised);padding:3px;position:relative}.flight-meta{border-top:1px dashed var(--stub-border);grid-template-columns:1.3fr 1.2fr .7fr;gap:5px;margin-top:15px;padding-top:12px;display:grid}.flight-meta span{text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.flight-meta small{color:var(--stub-subtle);letter-spacing:.05em;margin-bottom:3px;font-size:6px;display:block}.flight-disclaimer{color:var(--stub-subtle);text-align:center;margin:11px 0 0;font-size:7px}.trip-book-page{padding-left:20px;padding-right:20px}.trip-book-cover{border:1px solid var(--stub-border);background:var(--stub-surface);min-height:330px;box-shadow:0 14px 28px var(--stub-shadow);border-radius:10px;position:relative;overflow:hidden}.trip-book-cover>img{object-fit:cover;border-bottom:1px solid var(--stub-border);width:100%;height:165px;display:block}.trip-book-cover>div{padding:18px}.trip-book-cover small{color:var(--stub-memory);letter-spacing:.1em;font-family:Georgia,serif;font-size:8px}.trip-book-cover h1{margin:8px 0 0;font-family:Songti SC,STSong,serif;font-size:27px}.trip-book-cover p{color:var(--stub-muted);margin:5px 0 0;font-size:10px}.trip-book-cover time{color:var(--stub-subtle);margin-top:7px;font-size:9px;display:block}.trip-book-cover blockquote{border-left:2px solid var(--stub-memory-decorative);color:var(--stub-memory);margin:16px 0 0;padding-left:12px;font-family:Songti SC,STSong,serif;font-size:11px;line-height:1.55}.book-pages{gap:20px;margin-top:22px;display:grid}.book-page{border:1px solid var(--stub-border);background:var(--stub-surface);box-shadow:0 10px 22px var(--stub-shadow-soft);border-radius:10px;padding:18px 15px 20px}.book-day{border-bottom:1px dashed var(--stub-border);justify-content:space-between;align-items:center;margin-bottom:13px;padding-bottom:9px;display:flex}.book-day span{color:var(--stub-brand-ink);letter-spacing:.08em;font-family:Georgia,serif;font-size:10px;font-weight:700}.book-day time{color:var(--stub-subtle);font-size:8px}.book-page .flight-card{margin-bottom:13px}.book-artifact{background:0 0;border:0;border-radius:7px;width:100%;padding:0;display:block}.book-artifact img{object-fit:contain;width:100%;max-height:280px;box-shadow:0 8px 18px var(--stub-shadow);border-radius:7px;display:block}.book-caption{margin-top:17px}.book-caption small{color:var(--stub-brand-ink);font-size:8px}.book-caption h2{margin:5px 0 0;font-family:Songti SC,STSong,serif;font-size:18px}.book-caption p{color:var(--stub-memory);margin:8px 0 0;font-family:Songti SC,STSong,serif;font-size:11px;line-height:1.6}.book-caption button{color:var(--stub-brand-ink);background:0 0;border:0;align-items:center;gap:5px;margin-top:10px;padding:0;font-size:9px;display:flex}.empty-book{border:1px dashed var(--stub-border-strong);border-radius:10px;place-items:center;gap:9px;padding:30px 20px;display:grid}.empty-book h2{color:var(--stub-ink);margin:0;font-family:Songti SC,STSong,serif;font-size:18px}.empty-book p{margin:0;font-size:10px;line-height:1.55}.filter-sheet,.trip-picker{padding-bottom:10px;display:grid}.filter-sheet{gap:18px}.filter-apply{margin-top:2px}.filter-option,.trip-picker>button{border:0;border-bottom:1px solid var(--stub-border);min-height:48px;color:var(--stub-ink);text-align:left;background:0 0;justify-content:space-between;align-items:center;padding:0 4px;display:flex}.filter-option.selected{color:var(--stub-brand-ink);font-weight:700}.trip-picker>button{grid-template-columns:auto 1fr auto;gap:10px;display:grid}.trip-picker>button>svg:first-child{color:var(--stub-brand)}.trip-picker span{gap:3px;display:grid}.trip-picker strong{font-size:12px}.trip-picker small{color:var(--stub-muted);font-size:9px}.trip-picker .trip-picker-new{color:var(--stub-brand-ink);border-bottom:0;justify-content:center;margin-top:8px;display:flex}.sheet-form{gap:15px;padding-bottom:12px;display:grid}.sheet-form .primary-cta{margin-top:2px}.business-sheet{gap:10px;padding-bottom:10px;display:grid}.business-sheet section{border:1px solid var(--stub-border);background:var(--stub-surface);border-radius:9px;padding:12px}.business-sheet strong{font-size:12px}.business-sheet p{color:var(--stub-muted);margin:5px 0 0;font-size:9px;line-height:1.55}.business-note{background:var(--stub-brand-soft);border-radius:8px;padding:10px;color:var(--stub-brand-ink)!important}.toast{z-index:80;left:50%;bottom:calc(var(--mobile-safe-area-height) + 78px);color:#fff;background:var(--stub-success);border-radius:999px;align-items:center;gap:8px;width:max-content;max-width:calc(100% - 42px);padding:11px 13px;font-size:11px;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 8px 28px #0000003d}.toast button{width:20px;height:20px;color:inherit;background:0 0;border:0;place-items:center;padding:0;display:grid}@media (width<=360px){.stub-home,.trip-home,.wall-page,.profile-page,.subpage{padding-left:21px;padding-right:21px}.map-canvas,.wall-filter-carousel,.detail-photo-carousel{margin-left:-21px;margin-right:-21px}.month-title,.trip-intro h1,.wall-intro h1,.profile-intro h1{font-size:36px}.field-pair{grid-template-columns:1fr}}.web-screen .stub-home,.web-screen .trip-home,.web-screen .wall-page,.web-screen .profile-page,.web-screen .subpage{width:min(100%,760px);margin-inline:auto;padding-top:30px}.web-screen .stub-home,.web-screen .trip-home,.web-screen .wall-page,.web-screen .profile-page{padding-bottom:116px}.web-screen .bottom-nav{border:1px solid var(--stub-border);width:min(100% - 28px,720px);min-height:68px;box-shadow:0 12px 32px var(--stub-shadow);border-radius:24px;padding:7px 12px;bottom:12px;left:50%;right:auto;transform:translate(-50%)}.web-screen .nav-item{border-radius:16px}.web-screen .nav-item.active{background:var(--stub-brand-soft)}.web-screen .nav-rail-brand,.web-screen .nav-add-label{display:none}.web-screen .nav-add{margin-top:-14px}.web-screen .bottom-sheet{transform-origin:bottom;border-radius:24px 24px 0 0;width:min(100%,620px);left:auto;right:50%;translate:50%}@media (width>=960px){.web-screen .app-screen{left:188px}.web-screen .stub-home,.web-screen .trip-home,.web-screen .wall-page,.web-screen .profile-page,.web-screen .subpage{width:min(100%,820px);padding-top:48px;padding-left:38px;padding-right:38px}.web-screen .stub-home,.web-screen .trip-home,.web-screen .wall-page,.web-screen .profile-page{padding-bottom:54px}.web-screen .bottom-nav{border-radius:28px;grid-template-rows:auto repeat(5,minmax(54px,auto));grid-template-columns:1fr;align-content:start;gap:8px;width:140px;min-height:0;padding:18px 12px;inset:24px auto 24px 24px;transform:none}.web-screen .nav-rail-brand{color:var(--stub-ink);gap:7px;margin:4px 8px 24px;font-family:Georgia,Times New Roman,Songti SC,serif;font-size:26px;font-weight:700;line-height:1;display:grid}.web-screen .nav-rail-brand small{color:var(--stub-subtle);letter-spacing:.16em;font-family:Songti SC,STSong,serif;font-size:9px;font-weight:400}.web-screen .brand-header>div:first-child{display:none}.web-screen .brand-header{justify-content:flex-end}.web-screen .nav-item{flex-direction:row;justify-content:flex-start;gap:11px;height:54px;padding:0 16px;font-size:13px}.web-screen .nav-item svg{flex:none;width:20px;height:20px}.web-screen .nav-add{border-width:0;border-radius:16px;justify-content:center;align-items:center;gap:8px;width:100%;height:50px;margin:0;display:flex}.web-screen .nav-add-label{font-size:12px;font-weight:700;display:inline}.web-screen .wall-page{width:min(100%,980px)}.web-screen .stub-wall{columns:3;column-gap:14px}.web-screen .sheet-overlay{left:188px}}:root{--font-display:Georgia, "Times New Roman", "Songti SC", "STSong", "SimSun", serif;--font-cn-serif:"Songti SC", "STSong", "SimSun", Georgia, serif;--font-body:-apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-pill:999px;--shadow-card:0 1px 2px var(--stub-shadow-soft), 0 6px 18px var(--stub-shadow-soft);--shadow-lift:0 4px 10px var(--stub-shadow-soft), 0 18px 38px var(--stub-shadow);--shadow-pop:0 12px 28px var(--stub-shadow), 0 2px 6px var(--stub-shadow-soft)}.stub-app{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}.stub-app ::selection{background:var(--stub-brand-soft);color:var(--stub-brand-ink)}.ticket-button,.compact-caption,.nav-item,.nav-add,.icon-button,.mini-language,.primary-cta,.secondary-action,.segmented-control button,.wall-filter,.wall-tile,.trip-cover-card,.trip-picker>button,.tag-input-row button,.empty-state button,.empty-book button{transition:transform .2s cubic-bezier(.34,1.45,.64,1),box-shadow .22s,background-color .18s,color .18s,border-color .18s,opacity .18s}.wall-tile>img,.trip-cover-card>img,.ticket-image{transition:transform .26s cubic-bezier(.34,1.25,.64,1),box-shadow .28s}:focus-visible{outline:2px solid var(--stub-brand);outline-offset:2px;border-radius:var(--radius-sm)}@media (hover:hover) and (pointer:fine){.ticket-button:hover .ticket-image{box-shadow:var(--shadow-lift);transform:translateY(-3px)}.compact-caption:hover{opacity:.72}.nav-item:hover{color:var(--stub-ink)}.icon-button:hover,.mini-language:hover{background:var(--stub-surface-muted);border-color:var(--stub-ink)}.secondary-action:hover{border-color:var(--stub-border-strong);box-shadow:var(--shadow-card)}.wall-filter:hover{border-color:var(--stub-border-strong)}.wall-tile:hover>img{transform:scale(1.02)}.trip-cover-card:hover{box-shadow:var(--shadow-lift)}.trip-picker>button:hover{background:var(--stub-surface-muted)}.segmented-control button:not(.selected):hover{color:var(--stub-ink)}.empty-state button:hover,.empty-book button:hover{box-shadow:var(--shadow-card)}}.ticket-button:active .ticket-image{transform:scale(.985)}.compact-caption:active{opacity:.6}.nav-add:active,.icon-button:active,.mini-language:active{transform:scale(.9)}.primary-cta:active{transform:translateY(1px)scale(.99)}.secondary-action:active{background:var(--stub-surface-muted);transform:scale(.99)}.wall-filter:active{transform:scale(.95)}.wall-tile:active{transform:scale(.98)}.trip-picker>button:active{transform:scale(.99)}@media (width>=600px) and (width<=959px){.web-screen .stub-home,.web-screen .trip-home,.web-screen .wall-page,.web-screen .profile-page,.web-screen .subpage{max-width:620px;margin-left:auto;margin-right:auto}}@media (width>=1440px){.web-screen .stub-home,.web-screen .trip-home,.web-screen .profile-page,.web-screen .subpage{width:min(100%,860px)}.web-screen .wall-page{width:min(100%,1080px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}:root{--stub-ease-standard:cubic-bezier(.2, 0, 0, 1);--stub-ease-emphasized:cubic-bezier(.2, 0, 0, 1);--stub-dur-fast:.14s;--stub-dur-med:.24s;--stub-dur-slow:.38s;--stub-lift-shadow:0 14px 30px #372b1f2e, 0 4px 10px #372b1f1a}:root[data-stub-theme=dark]{--stub-lift-shadow:0 14px 30px #0000006b, 0 4px 10px #00000042}.stub-app button{transition:transform var(--stub-dur-fast) var(--stub-ease-standard), box-shadow var(--stub-dur-fast) var(--stub-ease-standard), background-color var(--stub-dur-fast) var(--stub-ease-standard), border-color var(--stub-dur-fast) var(--stub-ease-standard), color var(--stub-dur-fast) var(--stub-ease-standard), opacity var(--stub-dur-fast) var(--stub-ease-standard)}.stub-app img{transition:transform var(--stub-dur-med) var(--stub-ease-standard)}.stub-app button:focus-visible,.stub-app input:focus-visible,.stub-app textarea:focus-visible{outline:2px solid var(--stub-brand);outline-offset:2px}.nav-item{border-radius:12px;position:relative}@media (hover:hover){.nav-item:not(.active):hover{color:var(--stub-ink);background:var(--stub-surface-muted)}.web-screen .nav-item:not(.active):hover{background:var(--stub-surface-muted)}}.nav-item:active{transform:scale(.94)}.nav-add{transition:transform var(--stub-dur-fast) var(--stub-ease-emphasized), box-shadow var(--stub-dur-fast) var(--stub-ease-standard), background-color var(--stub-dur-fast) var(--stub-ease-standard)}@media (hover:hover){.nav-add:hover{background:var(--stub-brand-pressed);transform:translateY(-2px);box-shadow:0 12px 26px #a9403057}}.nav-add:active{transform:scale(.92)}@media (hover:hover){.icon-button:hover,.mini-language:hover{border-color:var(--stub-brand);color:var(--stub-brand-ink);background:var(--stub-brand-soft)}}.icon-button:active,.mini-language:active{transform:scale(.94)}.primary-cta,.secondary-action{transition:transform var(--stub-dur-fast) var(--stub-ease-emphasized), box-shadow var(--stub-dur-med) var(--stub-ease-standard), background-color var(--stub-dur-fast) var(--stub-ease-standard), border-color var(--stub-dur-fast) var(--stub-ease-standard), opacity var(--stub-dur-fast) var(--stub-ease-standard)}@media (hover:hover){.primary-cta:not(:disabled):hover{background:var(--stub-brand-pressed);transform:translateY(-1px);box-shadow:0 10px 24px #a940304d}.secondary-action:not(:disabled):hover{border-color:var(--stub-border-strong);background:var(--stub-surface-raised);box-shadow:0 8px 18px var(--stub-shadow-soft);transform:translateY(-1px)}}.primary-cta:not(:disabled):active,.secondary-action:not(:disabled):active{transform:translateY(1px)scale(.985)}.ticket-button{border-radius:12px}.ticket-image{transition:transform var(--stub-dur-med) var(--stub-ease-emphasized), box-shadow var(--stub-dur-med) var(--stub-ease-standard)}@media (hover:hover){.ticket-button:hover .ticket-image{box-shadow:var(--stub-lift-shadow);transform:translateY(-3px)}}.ticket-button:active .ticket-image{transition-duration:var(--stub-dur-fast);transform:scale(.985)}.compact-entry{transition:border-color var(--stub-dur-fast) var(--stub-ease-standard)}@media (hover:hover){.compact-caption:hover strong{color:var(--stub-brand-ink)}}.wall-filter,.type-chip,.segmented-control button,.theme-option{transition:transform var(--stub-dur-fast) var(--stub-ease-standard), background-color var(--stub-dur-fast) var(--stub-ease-standard), border-color var(--stub-dur-fast) var(--stub-ease-standard), color var(--stub-dur-fast) var(--stub-ease-standard), box-shadow var(--stub-dur-fast) var(--stub-ease-standard)}@media (hover:hover){.wall-filter:not(.selected):hover,.type-chip:not(.selected):hover{border-color:var(--stub-border-strong);color:var(--stub-ink);transform:translateY(-1px)}.theme-option:not(.selected):hover{border-color:var(--stub-border-strong);color:var(--stub-ink)}.segmented-control button:not(.selected):hover{color:var(--stub-ink)}}.wall-filter:active,.type-chip:active,.theme-option:active{transform:scale(.96)}.wall-tile,.trip-cover-card,.shelf-book,.stats-card,.settings-row,.flight-card,.book-page,.poster-match,.travel-type-prompt,.poster-no-match,.canonical-note,.privacy-card,.new-book-card{transition:transform var(--stub-dur-med) var(--stub-ease-emphasized), box-shadow var(--stub-dur-med) var(--stub-ease-standard), border-color var(--stub-dur-fast) var(--stub-ease-standard), background-color var(--stub-dur-fast) var(--stub-ease-standard)}@media (hover:hover){.wall-tile:hover{box-shadow:var(--stub-lift-shadow);transform:translateY(-3px)}.wall-tile:hover>img{transform:scale(1.02)}.trip-cover-card:hover,.shelf-book:hover{box-shadow:var(--stub-lift-shadow);border-color:var(--stub-border-strong);transform:translateY(-2px)}.settings-row:hover,.new-book-card:hover{border-color:var(--stub-border-strong);background:var(--stub-surface-raised)}.new-book-card:hover{color:var(--stub-brand-ink);border-color:var(--stub-brand)}.poster-match:hover,.book-artifact:hover img{box-shadow:var(--stub-lift-shadow)}}.wall-tile:active,.trip-cover-card:active,.shelf-book:active{transition-duration:var(--stub-dur-fast);transform:scale(.985)}.map-label{transition:transform var(--stub-dur-fast) var(--stub-ease-emphasized), border-color var(--stub-dur-fast) var(--stub-ease-standard), box-shadow var(--stub-dur-fast) var(--stub-ease-standard), color var(--stub-dur-fast) var(--stub-ease-standard)}@media (hover:hover){.map-label:hover{border-color:var(--stub-brand);box-shadow:0 8px 18px var(--stub-shadow);transform:translateY(-2px)}}.map-label:active{transform:scale(.95)}.map-chapter-card{transition:transform var(--stub-dur-med) var(--stub-ease-emphasized), box-shadow var(--stub-dur-med) var(--stub-ease-standard)}@media (hover:hover){.map-chapter-card:hover{box-shadow:var(--stub-lift-shadow);transform:translateY(-2px)}}.filter-option,.trip-picker>button{transition:background-color var(--stub-dur-fast) var(--stub-ease-standard), color var(--stub-dur-fast) var(--stub-ease-standard), padding var(--stub-dur-fast) var(--stub-ease-standard)}@media (hover:hover){.filter-option:hover,.trip-picker>button:hover{background:var(--stub-surface-muted)}}.empty-state button,.empty-book button,.tag-input-row button,.add-photo-button,.poster-match button,.poster-no-match button,.plus-card button,.book-caption button,.delete-button{transition:transform var(--stub-dur-fast) var(--stub-ease-standard), background-color var(--stub-dur-fast) var(--stub-ease-standard), border-color var(--stub-dur-fast) var(--stub-ease-standard), color var(--stub-dur-fast) var(--stub-ease-standard), opacity var(--stub-dur-fast) var(--stub-ease-standard)}@media (hover:hover){.empty-state button:hover,.empty-book button:hover,.tag-input-row button:hover,.add-photo-button:hover{border-color:var(--stub-brand);background:var(--stub-brand-soft);transform:translateY(-1px)}.delete-button:hover{background:var(--stub-brand-soft);border-radius:10px}}.delete-button:active,.empty-state button:active,.empty-book button:active{transform:scale(.96)}.attachment-track figure{transition:transform var(--stub-dur-fast) var(--stub-ease-standard), box-shadow var(--stub-dur-fast) var(--stub-ease-standard)}@media (hover:hover){.attachment-track figure:hover{box-shadow:0 8px 18px var(--stub-shadow-soft);transform:translateY(-2px)}}.attachment-track figure button{transition:transform var(--stub-dur-fast) var(--stub-ease-standard), background-color var(--stub-dur-fast) var(--stub-ease-standard)}.attachment-track figure button:active{transform:scale(.88)}.form-field input,.form-field textarea,.tag-input-row input{transition:border-color var(--stub-dur-fast) var(--stub-ease-standard), box-shadow var(--stub-dur-fast) var(--stub-ease-standard), background-color var(--stub-dur-fast) var(--stub-ease-standard)}@media (hover:hover){.form-field input:hover:not(:focus),.form-field textarea:hover:not(:focus),.tag-input-row input:hover:not(:focus){border-color:var(--stub-border-strong)}}.toast{animation:stub-toast-in .3s var(--stub-ease-emphasized)}@keyframes stub-toast-in{0%{opacity:0;transform:translate(-50%)translateY(10px)scale(.96)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}.app-screen>.stub-home,.app-screen>.trip-home,.app-screen>.wall-page,.app-screen>.profile-page,.app-screen>.subpage{animation:stub-screen-in .32s var(--stub-ease-standard)}@keyframes stub-screen-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width>=541px) and (width<=959px){.web-screen .stub-home,.web-screen .trip-home,.web-screen .wall-page,.web-screen .profile-page,.web-screen .subpage{width:min(100%,640px)}.web-screen .stub-wall{columns:3;column-gap:13px}.web-screen .map-canvas{height:340px}}@media (width>=1600px){.web-screen .stub-home,.web-screen .trip-home,.web-screen .profile-page,.web-screen .subpage{width:min(100%,880px)}.web-screen .wall-page{width:min(100%,1180px)}.web-screen .stub-wall{columns:4;column-gap:16px}}.stub-app[data-theme=dark] .icon-button:active,.stub-app[data-theme=dark] .mini-language:active,:root[data-stub-theme=dark] .icon-button:active,:root[data-stub-theme=dark] .mini-language:active{background:var(--stub-surface-muted)}@media (hover:hover){.stub-app[data-theme=dark] .filter-option:hover,.stub-app[data-theme=dark] .trip-picker>button:hover,:root[data-stub-theme=dark] .filter-option:hover,:root[data-stub-theme=dark] .trip-picker>button:hover{background:var(--stub-surface-muted)}}.review-hero{margin:28px 0 22px}.review-hero h1{color:var(--stub-memory);letter-spacing:.04em;margin:0;font-family:Songti SC,STSong,Georgia,serif;font-size:42px;font-weight:500;line-height:1}.review-hero>p:last-child{max-width:300px;color:var(--stub-muted);letter-spacing:.03em;margin:10px 0 0;font-family:Songti SC,STSong,serif;font-size:13px;line-height:1.6}.review-stats{border:1px solid var(--stub-border);background:var(--stub-surface);box-shadow:0 8px 18px var(--stub-shadow-soft);border-radius:11px;grid-template-columns:repeat(4,1fr);margin-bottom:20px;padding:16px 4px;display:grid}.review-stat{border-right:1px solid var(--stub-border);flex-direction:column;align-items:center;gap:4px;min-width:0;display:flex}.review-stat:last-child{border-right:0}.review-stat strong{color:var(--stub-ink);font-family:Georgia,serif;font-size:22px;line-height:1}.review-stat strong.trend-up{color:var(--stub-success)}.review-stat strong.trend-down,.review-stat strong.trend-flat{color:var(--stub-subtle)}.review-stat small{color:var(--stub-muted);text-align:center;font-size:9px;line-height:1.3}.review-period-tabs{border:1px solid var(--stub-border);background:var(--stub-surface-muted);border-radius:999px;grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:24px;padding:4px;display:grid}.period-tab{height:34px;color:var(--stub-muted);background:0 0;border:0;border-radius:999px;font-size:12px;font-weight:600;transition:color .16s,background-color .16s,box-shadow .16s}.period-tab.selected{color:var(--stub-brand-ink);background:var(--stub-surface-raised);box-shadow:0 2px 8px var(--stub-shadow-soft)}.review-groups{gap:26px;display:grid}.review-group-header{border-bottom:1px solid var(--stub-border);justify-content:space-between;align-items:baseline;margin-bottom:10px;padding-bottom:8px;display:flex}.review-group-header h2{color:var(--stub-ink);letter-spacing:.02em;margin:0;font-family:Songti SC,STSong,serif;font-size:15px;font-weight:600}.review-group-header span{color:var(--stub-subtle);font-family:Georgia,serif;font-size:11px}.review-group-list{gap:8px;display:grid}.review-item{border:1px solid var(--stub-border);width:100%;color:var(--stub-ink);background:var(--stub-surface);text-align:left;border-radius:11px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:9px 11px;transition:transform .18s,box-shadow .18s,border-color .18s;display:grid}.review-item-thumb{object-fit:cover;background:var(--stub-surface-muted);border-radius:8px;flex:none;width:52px;height:52px}.review-item-copy{gap:3px;min-width:0;display:grid}.review-item-copy small{color:var(--stub-subtle);font-size:9px}.review-item-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.review-item-copy em{color:var(--stub-muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-style:normal;overflow:hidden}.review-item>svg{width:16px;height:16px;color:var(--stub-border-strong);flex:none}.review-empty{justify-items:center;gap:8px;display:grid}.review-empty .empty-icon{border:1px solid var(--stub-border);width:56px;height:56px;color:var(--stub-memory);background:var(--stub-surface);border-radius:50%;place-items:center;margin-bottom:4px;display:grid}.review-empty h2{color:var(--stub-ink);margin:0;font-family:Songti SC,STSong,serif;font-size:17px;font-weight:600}.review-empty p{max-width:260px;margin:0 0 8px;line-height:1.6}.settings-sheet{gap:4px;padding-bottom:8px;display:grid}.settings-sheet .settings-section{margin-top:14px}.settings-sheet .settings-section:first-child{margin-top:0}@media (hover:hover) and (pointer:fine){.review-item:hover{border-color:var(--stub-border-strong);box-shadow:0 10px 22px var(--stub-shadow-soft);transform:translateY(-2px)}.period-tab:not(.selected):hover{color:var(--stub-ink)}}.review-item:active{transform:scale(.985)}.period-tab:active{transform:scale(.97)}@media (prefers-reduced-motion:reduce){.review-item,.period-tab{transition:none}}
