:root{--bg: #f6f7f4;--surface: #ffffff;--surface-raised: #ffffff;--line: #e3e7e0;--text: #191e1a;--text-soft: #5e6a5f;--brass: #a5813a;--red: #8c3b2e;--green: #1f3b2c;--topbar-bg: rgba(246, 247, 244, .82);--scrim: rgba(20, 26, 21, .45);--shadow-1: 0 1px 2px rgba(20, 26, 21, .05), 0 4px 16px rgba(20, 26, 21, .06);--shadow-2: 0 2px 6px rgba(20, 26, 21, .08), 0 14px 38px rgba(20, 26, 21, .12);--skeleton-a: #ecefe9;--skeleton-b: #f7f8f5;--type-steam: #6b675f;--type-electric: #3a5f8a;--type-diesel: #8a7454;--type-freight: #a34a3a;--type-passenger: #33684a;--type-diner: #a5813a;--type-subway: #6d66b0;--radius-s: 10px;--radius-m: 14px;--radius-l: 18px;--font-display: "Space Grotesk", "Avenir Next", sans-serif;--font-body: "Inter", system-ui, sans-serif}@media (prefers-color-scheme: dark){:root{--bg: #0e1410;--surface: #161d18;--surface-raised: #1c2620;--line: #263129;--text: #e8ece6;--text-soft: #96a297;--brass: #c9a45c;--red: #d07862;--green: #7fb08f;--topbar-bg: rgba(14, 20, 16, .78);--scrim: rgba(4, 8, 5, .66);--shadow-1: 0 1px 2px rgba(0, 0, 0, .4), 0 6px 20px rgba(0, 0, 0, .35);--shadow-2: 0 0 0 1px rgba(201, 164, 92, .14), 0 18px 48px rgba(0, 0, 0, .55);--skeleton-a: #1a231d;--skeleton-b: #222c25;--type-steam: #9b968c;--type-electric: #7ca3d1;--type-diesel: #bfa176;--type-freight: #d07862;--type-passenger: #7fb08f;--type-diner: #c9a45c;--type-subway: #a29bdb}}*{box-sizing:border-box}html{color-scheme:light dark}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15.5px;line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:700;letter-spacing:-.015em;line-height:1.12;margin:0 0 .5rem}h1{font-size:1.85rem}h2{font-size:1.35rem}a{color:var(--green)}button{font:inherit;color:inherit}input,select,textarea{width:100%;padding:.65rem .8rem;border:1px solid var(--line);border-radius:var(--radius-s);font:inherit;background:var(--surface);color:var(--text);transition:border-color .15s,box-shadow .15s}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px color-mix(in srgb,var(--brass) 25%,transparent)}button:focus-visible,a:focus-visible{outline:2px solid var(--brass);outline-offset:2px;border-radius:4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:none;border-radius:999px;padding:.6rem 1.35rem;font-family:var(--font-display);font-weight:600;font-size:.95rem;cursor:pointer;text-decoration:none;background:var(--red);color:#fff;transition:transform .15s,box-shadow .15s,background .15s}.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-1)}.btn:active{transform:translateY(0)}.btn.secondary{background:transparent;color:var(--text);box-shadow:inset 0 0 0 1.5px var(--line)}.btn.secondary:hover{box-shadow:inset 0 0 0 1.5px var(--brass)}.btn.quiet{background:none;color:var(--text-soft);box-shadow:inset 0 0 0 1px var(--line)}.btn.danger{background:var(--red)}.btn:disabled{opacity:.5;cursor:default;transform:none;box-shadow:none}.field{display:block;margin-bottom:1rem;font-weight:500}.field>span{display:block;margin-bottom:.3rem;font-size:.9rem;color:var(--text-soft)}.photo-drop{border:1px dashed var(--line);border-radius:var(--radius-m);background:color-mix(in srgb,var(--line) 18%,var(--surface));padding:.75rem;transition:border-color .15s ease,background .15s ease}.photo-drop.is-dragging{border-color:var(--brass);background:color-mix(in srgb,var(--brass) 12%,var(--surface))}.photo-drop__preview{display:block;max-width:100%;max-height:200px;object-fit:contain;border-radius:var(--radius-s);margin-bottom:.6rem}.photo-drop__hint{margin:0 0 .6rem;font-size:.85rem;font-weight:400;color:var(--text-soft)}.photo-drop__status{display:block;margin-top:.4rem;font-size:.85rem;color:var(--text-soft)}.lookup-note{background:color-mix(in srgb,var(--brass) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--brass) 35%,transparent);color:var(--text-soft);padding:.6rem .85rem;border-radius:var(--radius-s);margin:.75rem 0 0;font-size:.85rem;line-height:1.45}.lookup-files{list-style:none;margin:0 0 .5rem;padding:0;font-weight:400}.lookup-files li{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding:.35rem 0;border-bottom:1px solid var(--line);font-size:.9rem}.lookup-files__type{color:var(--text-soft);font-size:.78rem;white-space:nowrap}.error{background:color-mix(in srgb,var(--red) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--red) 45%,transparent);color:var(--red);padding:.6rem .85rem;border-radius:var(--radius-s);margin:.75rem 0}.notice{background:color-mix(in srgb,var(--green) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--green) 40%,transparent);color:var(--green);padding:.6rem .85rem;border-radius:var(--radius-s);margin:.75rem 0}.topbar{position:sticky;top:0;z-index:30;background:var(--topbar-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.topbar-inner{max-width:1150px;margin:0 auto;padding:.6rem 1.1rem;display:flex;align-items:center;gap:1.4rem}.wordmark{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-display);font-weight:700;font-size:1.12rem;letter-spacing:-.01em;color:var(--text);text-decoration:none}.wordmark-badge{width:32px;height:32px}.topbar nav{display:flex;gap:.35rem;align-items:center}.topbar nav a{position:relative;color:var(--text-soft);text-decoration:none;padding:.45rem .75rem;font-weight:500;border-radius:8px;transition:color .15s}.topbar nav a:after{content:"";position:absolute;left:.75rem;right:.75rem;bottom:.1rem;height:2px;border-radius:2px;background:var(--brass);transform:scaleX(0);transform-origin:center;transition:transform .2s ease}.topbar nav a.active{color:var(--text)}.topbar nav a.active:after{transform:scaleX(1)}.topbar nav a:hover{color:var(--text)}.topbar nav a.cta{background:var(--red);color:#fff;border-radius:999px;padding:.45rem 1.1rem;font-weight:600}.topbar nav a.cta:after{display:none}.topbar .spacer{flex:1}main{max-width:1150px;margin:0 auto;padding:1.75rem 1.1rem 5rem}.site-footer{max-width:1150px;margin:0 auto;padding:1.5rem 1.1rem 2.5rem;color:var(--text-soft);border-top:1px solid var(--line);font-size:.9rem}.bottom-tabs{display:none}@media (max-width: 700px){.topbar nav.primary-nav{display:none}.wordmark-text{display:none}.topbar-inner{gap:.6rem}.bottom-tabs{position:fixed;bottom:0;left:0;right:0;z-index:30;display:flex;justify-content:space-around;background:var(--topbar-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:.4rem 0 calc(.4rem + env(safe-area-inset-bottom))}.bottom-tabs a{display:flex;flex-direction:column;align-items:center;gap:.1rem;text-decoration:none;color:var(--text-soft);font-size:.72rem;font-weight:500;padding:.25rem .9rem;border-radius:10px}.bottom-tabs a.active{color:var(--brass)}.bottom-tabs .tab-icon{font-size:1.25rem;line-height:1}main{padding-bottom:6.5rem}}.avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(140deg,var(--brass),color-mix(in srgb,var(--brass) 60%,var(--red)));color:#fff;font-weight:600;font-family:var(--font-display);box-shadow:0 0 0 2px var(--surface),0 0 0 3.5px color-mix(in srgb,var(--brass) 55%,transparent)}.avatar-lg{width:84px;height:84px;font-size:2.1rem}.avatar-menu{position:relative}.avatar-btn{display:flex;align-items:center;gap:.55rem;background:none;border:none;cursor:pointer;padding:.2rem;border-radius:999px}.owner-handle{color:var(--text-soft);margin-left:.35rem;font-size:.92em}.owner-handle.light{color:var(--text-soft)}.avatar-menu .menu{position:absolute;right:0;top:115%;background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-m);box-shadow:var(--shadow-2);min-width:180px;z-index:40;display:flex;flex-direction:column;overflow:hidden;padding:.35rem}.avatar-menu .menu a,.avatar-menu .menu button{padding:.6rem .85rem;text-align:left;text-decoration:none;color:var(--text);background:none;border:none;border-radius:9px;cursor:pointer}.avatar-menu .menu a:hover,.avatar-menu .menu button:hover{background:color-mix(in srgb,var(--line) 55%,transparent)}.auth-page{max-width:410px;margin:3.5rem auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);box-shadow:var(--shadow-1);padding:2.25rem}.auth-logo{width:60px;height:60px;display:block;margin-bottom:.9rem}.auth-page .alt{margin-top:1.25rem;color:var(--text-soft)}.handle-input{display:flex;align-items:center;gap:.35rem}.handle-input>span{color:var(--brass);font-weight:600;font-family:var(--font-display)}.feed-page{max-width:620px;margin:0 auto}.tab-bar{display:flex;gap:.4rem;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:.28rem;margin-bottom:1.4rem;width:max-content}.tab-bar .tab{background:none;border:none;border-radius:999px;padding:.45rem 1.3rem;font-family:var(--font-display);font-size:.98rem;font-weight:600;color:var(--text-soft);cursor:pointer;transition:background .18s,color .18s}.tab-bar .tab.active{color:#fff;background:var(--green)}@media (prefers-color-scheme: dark){.tab-bar .tab.active{color:#0e1410}}.signup-prompt{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);padding:.95rem 1.2rem;margin-bottom:1.4rem;box-shadow:var(--shadow-1)}.feed-list{display:flex;flex-direction:column;gap:1.5rem}.feed-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);overflow:hidden;box-shadow:var(--shadow-1);transition:transform .18s ease,box-shadow .18s ease}.feed-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}.feed-card-owner{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem}.owner-link{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:var(--text)}.owner-link strong{font-family:var(--font-display);font-weight:600}.owner-link:hover strong{color:var(--brass)}.feed-time{color:var(--text-soft);font-size:.82rem}.feed-card-media{display:block;width:100%;padding:0;border:none;background:color-mix(in srgb,var(--line) 40%,var(--surface));cursor:pointer}.feed-card-media img{display:block;width:100%;max-height:440px;object-fit:cover}.feed-card-media .no-photo{height:150px;display:flex;align-items:center;justify-content:center;color:var(--text-soft)}.feed-card-body{padding:.85rem 1rem 1rem}.feed-card-body .desc{font-weight:600;font-size:1.02rem}.feed-card-foot{display:flex;align-items:center;justify-content:space-between;margin-top:.6rem}.chips{display:flex;gap:.45rem;flex-wrap:wrap;align-items:center}.chip{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--line);border-radius:999px;padding:.18rem .7rem;font-size:.82rem;color:var(--text-soft);background:transparent}.chip .type-dot{width:8px;height:8px;border-radius:50%;background:var(--type-color, var(--line))}.scale-chip{border-color:color-mix(in srgb,var(--brass) 55%,transparent);color:var(--brass)}.meta{color:var(--text-soft);font-size:.88rem;margin-top:.35rem}.like-btn{display:inline-flex;align-items:center;gap:.35rem;background:none;border:1px solid var(--line);border-radius:999px;padding:.32rem .85rem;font-size:.95rem;cursor:pointer;color:var(--text-soft);transition:border-color .15s,color .15s,background .15s}.like-btn:hover{border-color:var(--red);color:var(--red)}.like-btn.liked{color:#fff;background:var(--red);border-color:var(--red)}@keyframes heart-pop{0%{transform:scale(1)}40%{transform:scale(1.45)}to{transform:scale(1)}}.like-btn.pop .heart{display:inline-block;animation:heart-pop .35s ease}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton{border-radius:var(--radius-l);background:linear-gradient(100deg,var(--skeleton-a) 40%,var(--skeleton-b) 50%,var(--skeleton-a) 60%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}.skeleton-card{height:330px}.skeleton-hero{height:130px;margin-bottom:1.4rem}.empty-state{border:1px dashed var(--line);border-radius:var(--radius-l);background:var(--surface);padding:3rem 1.25rem;text-align:center;color:var(--text-soft)}.empty-state img{width:58px;height:58px;opacity:.85;margin-bottom:.6rem}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:flex-start;justify-content:center;padding:3rem 1rem;overflow-y:auto;z-index:50}.modal{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-l);box-shadow:var(--shadow-2);max-width:640px;width:100%;padding:1.75rem}.modal .photo{width:100%;max-height:320px;object-fit:contain;background:color-mix(in srgb,var(--line) 35%,var(--surface));border-radius:var(--radius-m);margin-bottom:1rem}.detail-rows{display:grid;grid-template-columns:max-content 1fr;gap:.35rem 1.25rem;margin:.85rem 0}.detail-rows dt{color:var(--text-soft)}.detail-rows dd{margin:0}.worth-plate{border:1px solid color-mix(in srgb,var(--brass) 55%,transparent);background:color-mix(in srgb,var(--brass) 9%,var(--surface));color:var(--brass);padding:.7rem 1rem;border-radius:var(--radius-m);margin:.85rem 0}.worth-plate strong{font-size:1.2rem;font-family:var(--font-display)}.value-range{border:1px solid var(--line);background:var(--surface-raised);border-radius:var(--radius-m);padding:.9rem 1rem;margin:.85rem 0}.value-range--quiet{color:var(--text-soft);font-size:.95rem}.value-range__head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.35rem}.value-range__label{font-size:.78rem;letter-spacing:.09em;text-transform:uppercase;color:var(--text-soft)}.value-chip{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;padding:.12rem .45rem;border-radius:999px;border:1px solid currentColor}.conf-high{color:var(--green)}.conf-medium{color:var(--brass)}.conf-low{color:var(--text-soft)}.conf-none{color:var(--text-soft);opacity:.8}.value-range__typical{font-family:var(--font-display);font-size:1.85rem;line-height:1.1;color:var(--text);display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}.value-range__band{font-family:var(--font-body);font-size:.9rem;color:var(--text-soft)}.value-track{position:relative;height:6px;border-radius:999px;background:color-mix(in srgb,var(--line) 80%,transparent);margin:.8rem 0 .3rem}.value-track__band{position:absolute;top:0;bottom:0;border-radius:999px;background:color-mix(in srgb,var(--brass) 55%,transparent)}.value-track__median{position:absolute;top:-3px;width:2px;height:12px;background:var(--text);transform:translate(-1px)}.value-track__ends{display:flex;justify-content:space-between;font-size:.75rem;color:var(--text-soft)}.value-range__none,.value-range__meta,.value-range__why{font-size:.85rem;color:var(--text-soft);margin:.4rem 0 0}.value-range__foot{display:flex;justify-content:space-between;align-items:center;gap:.6rem;margin-top:.6rem;font-size:.8rem;color:var(--text-soft)}.linkish{background:none;border:none;padding:0;color:var(--brass);cursor:pointer;font:inherit;text-decoration:underline}.comp-list{margin-top:.65rem;border-top:1px solid var(--line);padding-top:.5rem;max-height:260px;overflow-y:auto}.comp-row{display:grid;grid-template-columns:5.5rem 4.5rem 1fr;gap:.5rem;font-size:.82rem;padding:.28rem 0;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent)}.comp-row:last-child{border-bottom:none}.comp-row--excluded{opacity:.5;text-decoration:line-through}.comp-row--excluded em{text-decoration:none;font-style:normal;color:var(--red)}.comp-row__date{color:var(--text-soft);font-variant-numeric:tabular-nums}.comp-row__price{font-variant-numeric:tabular-nums;text-align:right}.comp-row__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.value-range__disclaimer{font-size:.75rem;color:var(--text-soft);opacity:.85;margin:.6rem 0 0}.collection-value{border:1px solid var(--line);background:var(--surface-raised);border-radius:var(--radius-m);padding:1rem 1.1rem;margin-bottom:1.4rem;max-width:640px}.collection-value__total{font-family:var(--font-display);font-size:2.1rem;line-height:1.1;color:var(--text)}.modal-actions{display:flex;gap:.55rem;flex-wrap:wrap;margin-top:1.1rem}.lightbox{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-l);box-shadow:var(--shadow-2);max-width:900px;width:100%;display:grid;grid-template-columns:1.35fr 1fr;overflow:hidden}.lightbox .lb-photo{background:#0a0d0b;display:flex;align-items:center;justify-content:center;min-height:320px}.lightbox .lb-photo img{width:100%;height:100%;max-height:560px;object-fit:contain}.lightbox .lb-side{padding:1.5rem;display:flex;flex-direction:column;gap:.7rem}.lightbox .lb-side .grow{flex:1}@media (max-width: 760px){.lightbox{grid-template-columns:1fr}}.share-ticket{border:1px solid color-mix(in srgb,var(--brass) 55%,transparent);border-radius:var(--radius-m);background:color-mix(in srgb,var(--brass) 8%,var(--surface));padding:1rem 1.2rem;margin:.85rem 0;font-size:1rem;white-space:pre-wrap;word-break:break-word;box-shadow:var(--shadow-1)}.subnav{display:flex;gap:.35rem;margin-bottom:1.4rem;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:.28rem;width:max-content;max-width:100%;overflow-x:auto}.subnav a{padding:.42rem 1.1rem;text-decoration:none;color:var(--text-soft);font-weight:500;border-radius:999px;white-space:nowrap;transition:background .18s,color .18s}.subnav a.active{color:#fff;background:var(--green)}@media (prefers-color-scheme: dark){.subnav a.active{color:#0e1410}}.page-head{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap;margin-bottom:1.1rem}.page-head .count{color:var(--text-soft)}.page-head .actions{margin-left:auto;display:flex;gap:.5rem;flex-wrap:wrap}.filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:.6rem;margin-bottom:1.4rem}@media (max-width: 800px){.filters{grid-template-columns:1fr 1fr}}.train-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.2rem}.train-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);overflow:hidden;display:flex;flex-direction:column;cursor:pointer;text-align:left;padding:0;box-shadow:var(--shadow-1);transition:transform .18s ease,box-shadow .18s ease}.train-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}.train-card img,.train-card .no-photo{width:100%;height:150px;object-fit:cover;background:color-mix(in srgb,var(--line) 40%,var(--surface));display:flex;align-items:center;justify-content:center;color:var(--text-soft)}.train-card .body{padding:.7rem .85rem .85rem}.train-card .desc{font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.profile-header{display:flex;align-items:center;gap:1.4rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);box-shadow:var(--shadow-1);padding:1.5rem;margin-bottom:1.6rem}.profile-id{flex:1;min-width:0}.profile-id h1{margin-bottom:.05rem}.profile-id .bio{margin:.45rem 0}.profile-stats{display:flex;gap:1.4rem;color:var(--text-soft);margin:.5rem 0 0;flex-wrap:wrap;font-size:.92rem}.profile-stats strong{font-family:var(--font-display);font-size:1.05rem;color:var(--text);display:block}@media (max-width: 560px){.profile-header{flex-direction:column;align-items:flex-start}}.data-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);overflow:hidden}.data-table th,.data-table td{text-align:left;padding:.6rem .85rem;border-bottom:1px solid var(--line)}.data-table th{font-family:var(--font-display);font-size:.95rem;background:color-mix(in srgb,var(--line) 45%,var(--surface))}.bar-row{display:grid;grid-template-columns:160px 1fr max-content;align-items:center;gap:.75rem;margin-bottom:.55rem}.bar-row .bar{height:16px;background:linear-gradient(90deg,var(--green),color-mix(in srgb,var(--green) 65%,var(--brass)));border-radius:999px}.privacy-copy{color:var(--text-soft);font-size:.9rem}.loading{color:var(--text-soft)}.share-hero{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);box-shadow:var(--shadow-1);padding:1.5rem;margin-bottom:1.5rem}.share-counts{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.75rem}.share-counts .chip{background:transparent}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
