@import"https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;0,6..72,600;1,6..72,400&family=Outfit:wght@300;400;500;600;700&display=swap";.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}:root{--roam-forest: #1a3a2f;--roam-forest-light: #2d5246;--roam-forest-dark: #142d24;--roam-terracotta: #c45c3e;--roam-terracotta-light: #e07a5f;--roam-terracotta-dark: #a84832;--roam-sage: #87a28e;--roam-sage-light: #a8c4ae;--roam-gold: #d4a855;--roam-gold-light: #e8c677;--roam-rust: #d97652;--roam-rust-dark: #b85a3a;--roam-coral: #f4a895;--roam-emerald: #6ee7b7;--roam-red: #ef4444;--roam-green: #22c55e;--roam-cream: #faf8f5;--roam-paper: #f7f3ed;--roam-parchment: #ede7dc;--roam-parchment-dark: #d8d0c4;--roam-stone: #d8d0c4;--roam-ink: #2a2520;--roam-ink-light: #4a443d;--roam-ink-muted: #8a847c;--roam-text: var(--roam-ink);--roam-text-muted: var(--roam-ink-muted);--color-background: var(--roam-cream);--color-surface: var(--roam-paper);--color-surface-elevated: #ffffff;--color-text-primary: var(--roam-ink);--color-text-secondary: var(--roam-ink-light);--color-text-muted: var(--roam-ink-muted);--color-text-tertiary: var(--roam-ink-muted);--color-accent: var(--roam-terracotta);--color-accent-secondary: var(--roam-forest);--color-success: var(--roam-sage);--color-warning: var(--roam-gold);--color-error: var(--roam-red);--color-primary: var(--roam-terracotta-light);--color-border: var(--roam-parchment);--color-text: var(--roam-ink);--font-display: "Newsreader", Georgia, serif;--font-body: "Outfit", system-ui, sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--text-3xl: 2.25rem;--text-4xl: 3rem;--text-hero: 4rem;--stable-vh: 100dvh;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--radius-xl: 24px;--radius-2xl: 32px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(44, 40, 36, .04);--shadow-md: 0 4px 12px rgba(44, 40, 36, .08);--shadow-lg: 0 8px 24px rgba(44, 40, 36, .12);--shadow-xl: 0 16px 48px rgba(44, 40, 36, .16);--shadow-card: 0 2px 8px rgba(44, 40, 36, .06), 0 8px 32px rgba(44, 40, 36, .1);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-out-back: cubic-bezier(.34, 1.56, .64, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .4s;--z-base: 0;--z-dropdown: 100;--z-sticky: 200;--z-modal: 300;--z-toast: 400;color-scheme:light}[data-theme=dark]{--roam-cream: #0d1b16;--roam-paper: #142822;--roam-parchment: #1f3a30;--roam-parchment-dark: #2a4a3e;--roam-stone: #2a4a3e;--roam-ink: #f4ecdc;--roam-ink-light: #d0c5b0;--roam-ink-muted: #8a8275;--roam-forest: #6ea58a;--roam-forest-light: #8fbfa3;--roam-forest-dark: #4a7c63;--color-background: var(--roam-cream);--color-surface: var(--roam-paper);--color-surface-elevated: var(--roam-parchment);--color-text-primary: var(--roam-ink);--color-text-secondary: var(--roam-ink-light);--color-text-muted: var(--roam-ink-muted);--color-text-tertiary: var(--roam-ink-muted);--color-border: var(--roam-parchment-dark);--color-text: var(--roam-ink);--roam-text: var(--roam-ink);--roam-text-muted: var(--roam-ink-muted);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .35);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .4);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .5);--shadow-card: 0 2px 8px rgba(0, 0, 0, .3), 0 8px 32px rgba(0, 0, 0, .45);color-scheme:dark}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;text-size-adjust:100%;-webkit-text-size-adjust:100%}body{font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;color:var(--color-text-primary);background-color:var(--color-background);min-height:100vh;min-height:var(--stable-vh, 100dvh);overflow-x:hidden;overscroll-behavior:none}body:before{content:"";position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");opacity:.03;pointer-events:none;z-index:9999}#root{min-height:100vh;min-height:var(--stable-vh, 100dvh);display:flex;flex-direction:column}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--roam-forest);outline-offset:2px}button:focus-visible{outline:2px solid var(--roam-forest);outline-offset:2px}.skip-link{position:absolute;top:-40px;left:0;background:var(--roam-forest);color:#fff;padding:var(--space-sm) var(--space-md);z-index:9999;font-size:var(--text-sm);font-weight:500;border-radius:0 0 var(--radius-md) 0;transition:top .2s ease}.skip-link:focus{top:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}::selection{background:var(--roam-sage);color:#fff}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:500;line-height:1.2;color:var(--color-text-primary);letter-spacing:-.01em}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}p{max-width:65ch}.text-display{font-family:var(--font-display);font-size:var(--text-hero);font-weight:400;line-height:.95;letter-spacing:-.03em}.text-label{font-family:var(--font-body);font-size:var(--text-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.container{width:100%;max-width:1200px;margin-inline:auto;padding-inline:var(--space-lg)}.container-narrow{max-width:640px}.stack{display:flex;flex-direction:column;gap:var(--space-md)}.stack-sm{gap:var(--space-sm)}.stack-lg{gap:var(--space-lg)}.stack-xl{gap:var(--space-xl)}.cluster{display:flex;flex-wrap:wrap;gap:var(--space-md);align-items:center}.cluster-sm{gap:var(--space-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;line-height:1;text-decoration:none;border:none;border-radius:var(--radius-full);cursor:pointer;transition:all var(--duration-normal) var(--ease-out-expo);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.btn:active{transform:scale(.97)}.btn:focus-visible{outline:2px solid var(--roam-forest);outline-offset:2px}.btn-primary{background:var(--roam-forest);color:var(--roam-cream);box-shadow:var(--shadow-md),inset 0 1px #ffffff1a}.btn-primary:hover{background:var(--roam-forest-light);box-shadow:var(--shadow-lg),inset 0 1px #ffffff1a;transform:translateY(-1px)}.btn-accent{background:var(--roam-terracotta);color:#fff;box-shadow:var(--shadow-md)}.btn-accent:hover{background:var(--roam-terracotta-light);box-shadow:var(--shadow-lg);transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--color-text-primary);border:1.5px solid var(--roam-stone)}.btn-ghost:hover{background:var(--roam-paper);border-color:var(--roam-ink-muted)}.btn-icon{width:48px;height:48px;padding:0;border-radius:var(--radius-full)}.btn-lg{padding:var(--space-lg) var(--space-2xl);font-size:var(--text-base)}.btn-huge{padding:var(--space-xl) var(--space-3xl);font-size:var(--text-lg);font-weight:600}.card{background:var(--color-surface-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}.card-body{padding:var(--space-lg)}.nav-bar{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;align-items:center;padding:var(--space-sm) var(--space-md);padding-bottom:max(var(--space-sm),env(safe-area-inset-bottom));background:var(--color-surface-elevated);border-top:1px solid var(--roam-parchment);box-shadow:0 -4px 20px #2c282414;z-index:var(--z-sticky)}.location-banner{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);padding-top:max(var(--space-sm),env(safe-area-inset-top));background:linear-gradient(135deg,#fef3c7,#fde68a);border-bottom:1px solid rgba(212,168,85,.3);font-size:var(--text-sm);color:var(--roam-forest);z-index:var(--z-toast);box-shadow:0 2px 8px #d4a85533}[data-theme=dark] .location-banner{background:linear-gradient(135deg,#4a3d10,#3a2f08);border-bottom-color:color-mix(in srgb,var(--roam-gold) 35%,transparent);color:var(--roam-gold);box-shadow:0 2px 8px #00000059}[data-theme=dark] .location-banner-close{color:var(--roam-gold)}body.has-location-banner main{padding-top:64px}.location-banner svg{flex-shrink:0;opacity:.7}.location-banner span{flex:1;font-weight:500}.location-banner-btn{padding:var(--space-xs) var(--space-sm);background:var(--roam-forest);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:600;cursor:pointer;transition:all .2s ease}.location-banner-btn:hover{background:var(--roam-forest-light)}.location-banner-close{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--roam-forest);font-size:18px;cursor:pointer;opacity:.6;transition:opacity .2s}.location-banner-close:hover{opacity:1}.nav-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);color:var(--color-text-muted);text-decoration:none;font-size:var(--text-xs);font-weight:500;transition:color var(--duration-fast);-webkit-tap-highlight-color:transparent}.nav-item:hover,.nav-item.active{color:var(--roam-forest)}.nav-item svg{width:24px;height:24px;transition:transform var(--duration-normal) var(--ease-out-back)}.nav-item.active svg{transform:scale(1.15)}.badge{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);font-size:var(--text-xs);font-weight:500;border-radius:var(--radius-full);background:var(--roam-parchment);color:var(--color-text-secondary)}.badge-success{background:#87a28e33;color:var(--roam-forest)}.badge-warning{background:#d4a85533;color:#8b6914}.chip{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);font-weight:500;border-radius:var(--radius-full);background:var(--roam-paper);border:1.5px solid var(--roam-parchment);color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-fast);-webkit-user-select:none;user-select:none}.chip:hover{background:var(--roam-parchment);border-color:var(--roam-stone)}.chip.selected{background:var(--roam-forest);border-color:var(--roam-forest);color:#fff}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md)}.stat-card{display:flex;flex-direction:column;align-items:center;padding:var(--space-lg);background:var(--color-surface-elevated);border-radius:var(--radius-lg);text-align:center;box-shadow:var(--shadow-sm)}.stat-value{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:500;color:var(--roam-forest);line-height:1}.stat-label{font-size:var(--text-xs);font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-top:var(--space-xs)}.streak-badge{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:linear-gradient(135deg,var(--roam-terracotta) 0%,var(--roam-gold) 100%);border-radius:var(--radius-full);color:#fff;font-weight:600;font-size:var(--text-sm);box-shadow:var(--shadow-md)}@media(hover:none)and (pointer:coarse){button:hover,a:hover,[role=button]:hover,.wishlist-card:hover,.profile-upgrade-card:hover,.wishlist-adventure-view:hover{transform:none!important;box-shadow:inherit}}.page{flex:1;padding-bottom:calc(80px + env(safe-area-inset-bottom))}.page-header{padding:var(--space-xl) var(--space-lg) var(--space-md)}.page-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:500}.page-content{padding:var(--space-md) var(--space-lg)}.card-actions{display:flex;justify-content:center;align-items:center;gap:var(--space-xl);padding:var(--space-xl)}.card-action-btn{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--radius-full);border:2px solid;background:var(--color-surface-elevated);cursor:pointer;transition:all var(--duration-fast) var(--ease-out-expo);box-shadow:var(--shadow-md)}.card-action-btn:active{transform:scale(.9)}.card-action-btn.nope{border-color:var(--roam-terracotta);color:var(--roam-terracotta)}.card-action-btn.nope:hover{background:var(--roam-terracotta);color:#fff}.card-action-btn.like{border-color:var(--roam-sage);color:var(--roam-sage)}.card-action-btn.like:hover{background:var(--roam-sage);color:#fff}.card-action-btn.go{width:72px;height:72px;border-color:var(--roam-gold);color:var(--roam-gold)}.card-action-btn.go:hover{background:var(--roam-gold);color:#fff}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-3xl);text-align:center}.empty-state-icon{width:80px;height:80px;margin-bottom:var(--space-lg);color:var(--roam-stone)}.empty-state-title{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-text-primary);margin-bottom:var(--space-sm)}.empty-state-text{font-size:var(--text-sm);color:var(--color-text-muted);max-width:280px}.loading-spinner{width:32px;height:32px;border:3px solid var(--roam-parchment);border-top-color:var(--roam-forest);border-radius:var(--radius-full);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:640px){.stats-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:480px){:root{--space-lg: 1.25rem;--space-xl: 1.5rem;--space-2xl: 2.25rem;--space-3xl: 3rem}.container{padding-inline:var(--space-md)}.page{padding-bottom:calc(64px + env(safe-area-inset-bottom))}.page-header{padding:var(--space-lg) var(--space-md) var(--space-sm)}.page-content{padding:var(--space-sm) var(--space-md)}.nav-bar{padding:var(--space-xs) var(--space-sm)}.nav-item{padding:var(--space-xs) var(--space-sm);font-size:.65rem}.nav-item svg{width:20px;height:20px}.card-actions{gap:var(--space-md);padding:var(--space-lg)}.card-action-btn{width:48px;height:48px}.card-action-btn.go{width:64px;height:64px}.empty-state{padding:var(--space-2xl) var(--space-lg)}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.nav-bar{top:0;bottom:auto;border-top:none;border-bottom:1px solid var(--roam-parchment);box-shadow:0 4px 20px #2c282414}.page{padding-top:80px;padding-bottom:var(--space-xl)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.animate-fade-in{animation:fade-in var(--duration-normal) var(--ease-out-expo)}.animate-slide-up{animation:slide-up var(--duration-slow) var(--ease-out-expo)}.animate-scale-in{animation:scale-in var(--duration-normal) var(--ease-out-back)}.stagger-children>*{animation:slide-up var(--duration-slow) var(--ease-out-expo) both}.stagger-children>*:nth-child(1){animation-delay:0ms}.stagger-children>*:nth-child(2){animation-delay:50ms}.stagger-children>*:nth-child(3){animation-delay:.1s}.stagger-children>*:nth-child(4){animation-delay:.15s}.stagger-children>*:nth-child(5){animation-delay:.2s}.stagger-children>*:nth-child(6){animation-delay:.25s}@media(pointer:coarse)and (hover:none){button:not(:disabled):not(:has(*)):active,[role=button]:not([aria-disabled=true]):active,a[href]:active{transform:scale(.97);transition:transform 80ms cubic-bezier(.4,0,.2,1)}}.onboarding-overlay{position:fixed;inset:0;background:linear-gradient(165deg,var(--roam-cream) 0%,var(--roam-paper) 50%,var(--roam-parchment) 100%);z-index:2000;display:flex;align-items:flex-start;justify-content:center;padding:var(--space-lg);padding-top:max(var(--space-xl),env(safe-area-inset-top,20px));padding-bottom:max(var(--space-xl),env(safe-area-inset-bottom,20px));overflow-y:auto;-webkit-overflow-scrolling:touch}.onboarding-container{width:100%;max-width:400px;min-height:min(500px,80vh);display:flex;flex-direction:column;align-items:center;text-align:center;padding-bottom:var(--space-lg)}.onboarding-progress{display:flex;gap:var(--space-sm);margin-bottom:var(--space-2xl)}.onboarding-dot{width:8px;height:8px;border-radius:var(--radius-full);background:var(--roam-parchment);transition:all .3s ease}.onboarding-dot.active{width:24px;background:var(--roam-forest)}.onboarding-dot.completed{background:var(--roam-sage)}.onboarding-slide{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;width:100%;padding-top:var(--space-lg)}.onboarding-icon{font-size:72px;margin-bottom:var(--space-xl);filter:drop-shadow(0 4px 12px rgba(26,58,47,.1))}.onboarding-title{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:500;color:var(--roam-forest);margin:0 0 var(--space-xs) 0;line-height:1.2}.onboarding-subtitle{font-size:var(--text-lg);font-weight:500;color:var(--color-text-secondary);margin:0 0 var(--space-md) 0}.onboarding-description{font-size:var(--text-base);color:var(--color-text-secondary);line-height:1.6;max-width:320px;margin:0}.onboarding-hero-mark{display:flex;justify-content:center;margin-bottom:var(--space-lg);filter:drop-shadow(0 8px 24px rgba(26,58,47,.18))}.onboarding-hero-mark svg{width:120px;height:120px}@media(max-width:767px){.onboarding-hero-mark svg{width:96px;height:96px}.onboarding-hero-mark{margin-bottom:var(--space-md)}}.onboarding-actions{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);margin-top:var(--space-xl);width:100%;max-width:320px}.onboarding-cta{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);width:100%;padding:var(--space-md) var(--space-xl);background:var(--roam-forest, #1a3a2f);border:2px solid var(--roam-forest, #1a3a2f);border-radius:var(--radius-full);color:#fdfcf8;font-family:var(--font-body, "Outfit", sans-serif);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 4px 14px #1a3a2f33}.onboarding-cta:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 18px #1a3a2f47}.onboarding-cta:active{transform:translateY(0)}.onboarding-signin-link{background:none;border:none;color:var(--roam-stone, #6b6b6b);font-family:var(--font-body, "Outfit", sans-serif);font-size:var(--text-sm);cursor:pointer;padding:var(--space-sm)}.onboarding-signin-link strong{color:var(--roam-forest, #1a3a2f);font-weight:600}.onboarding-signin-link:hover strong{text-decoration:underline}.onboarding-gestures{display:flex;justify-content:center;gap:var(--space-xl);margin-top:var(--space-xl);padding:var(--space-lg);background:#1a3a2f0d;border-radius:var(--radius-lg)}.gesture-hint{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.gesture-arrow{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-surface-elevated);border-radius:var(--radius-full);font-size:var(--text-xl);color:var(--roam-forest);box-shadow:var(--shadow-sm)}.gesture-hint span:last-child{font-size:var(--text-xs);font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.onboarding-location-btn{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-xl);padding:var(--space-md) var(--space-xl);background:#1a3a2f14;border:2px solid var(--roam-parchment);border-radius:var(--radius-full);color:var(--roam-forest);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all .2s}.onboarding-location-btn:hover{background:#1a3a2f1f;border-color:var(--roam-stone)}.onboarding-location-success{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-xl);padding:var(--space-md) var(--space-xl);background:#22c55e1a;border-radius:var(--radius-full);color:#16a34a;font-size:var(--text-sm);font-weight:500}.onboarding-interests{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-sm);margin-top:var(--space-lg);width:100%;max-width:360px}.interest-chip{display:flex;align-items:center;gap:var(--space-xs);padding:10px 16px;background:var(--color-surface-elevated);border:2px solid var(--roam-parchment);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:500;color:var(--color-text-primary);cursor:pointer;transition:all .2s;flex-shrink:0}.interest-chip:hover{border-color:var(--roam-stone);background:var(--roam-paper)}.interest-chip.selected{border-color:var(--chip-color, var(--roam-forest));background:color-mix(in srgb,var(--chip-color, var(--roam-forest)) 10%,white)}.interest-icon{font-size:var(--text-base)}.interest-check{display:flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--chip-color, var(--roam-forest));border-radius:var(--radius-full);color:#fff}.interest-check svg{width:12px;height:12px}.onboarding-skip-hint{margin-top:var(--space-lg);font-size:var(--text-sm);color:var(--color-text-muted);font-style:italic}.onboarding-signin-options{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);margin-top:var(--space-xl);width:100%;max-width:280px}.onboarding-google-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);width:100%;padding:var(--space-md) var(--space-xl);background:var(--color-surface-elevated);border:2px solid var(--roam-parchment);border-radius:var(--radius-full);color:var(--color-text-primary);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all .2s;box-shadow:var(--shadow-sm)}.onboarding-google-btn:hover:not(:disabled){border-color:var(--roam-stone);box-shadow:var(--shadow-md)}.onboarding-google-btn:disabled{opacity:.7;cursor:not-allowed}.onboarding-apple-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);width:100%;padding:var(--space-md) var(--space-xl);background:#000;border:2px solid #000;border-radius:var(--radius-full);color:#fff;font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:opacity .2s;box-shadow:var(--shadow-sm);margin-bottom:var(--space-sm)}.onboarding-apple-btn:hover:not(:disabled){opacity:.85}.onboarding-apple-btn:disabled{opacity:.5;cursor:not-allowed}.onboarding-loading-spinner{width:20px;height:20px;border:2px solid var(--roam-parchment);border-top-color:var(--roam-forest);border-radius:50%;animation:onboarding-spin .8s linear infinite}@keyframes onboarding-spin{to{transform:rotate(360deg)}}.onboarding-signin-error{margin:0;padding:var(--space-sm) var(--space-md);background:#ef44441a;border-radius:var(--radius-md);color:#dc2626;font-size:var(--text-sm);text-align:center}.onboarding-nav{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:var(--space-2xl);gap:var(--space-md)}.onboarding-back{padding:var(--space-md) var(--space-lg);background:transparent;border:none;color:var(--color-text-muted);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:color .2s}.onboarding-back:hover{color:var(--color-text-primary)}.onboarding-next,.onboarding-complete{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);background:var(--roam-forest);border:none;border-radius:var(--radius-full);color:#fff;font-size:var(--text-sm);font-weight:500;cursor:pointer;box-shadow:var(--shadow-md);transition:all .2s;margin-left:auto}.onboarding-next:hover,.onboarding-complete:hover{background:var(--roam-forest-light);box-shadow:var(--shadow-lg)}.onboarding-complete{background:linear-gradient(135deg,var(--roam-gold-light),var(--roam-gold))}.onboarding-complete:hover{background:linear-gradient(135deg,var(--roam-gold),var(--roam-gold-light))}.onboarding-skip{margin-top:var(--space-lg);padding:var(--space-sm);background:transparent;border:none;color:var(--color-text-muted);font-size:var(--text-xs);cursor:pointer;text-decoration:underline;text-underline-offset:2px;transition:color .2s}.onboarding-skip:hover{color:var(--color-text-secondary)}@media(max-width:380px){.onboarding-icon{font-size:48px;margin-bottom:var(--space-md)}.onboarding-title{font-size:var(--text-xl)}.onboarding-subtitle{font-size:var(--text-base);margin-bottom:var(--space-sm)}.onboarding-description{font-size:var(--text-sm)}.onboarding-gestures{gap:var(--space-md);padding:var(--space-md);margin-top:var(--space-md)}.gesture-arrow{width:36px;height:36px;font-size:var(--text-lg)}.interest-chip{padding:8px 12px;font-size:var(--text-xs)}.onboarding-progress{margin-bottom:var(--space-lg)}.onboarding-nav{margin-top:var(--space-lg)}}@media(max-height:600px){.onboarding-icon{font-size:40px;margin-bottom:var(--space-sm)}.onboarding-title{font-size:var(--text-lg)}.onboarding-subtitle{font-size:var(--text-sm)}.onboarding-progress{margin-bottom:var(--space-md)}.onboarding-interests{margin-top:var(--space-md)}.onboarding-skip-hint{margin-top:var(--space-sm)}.onboarding-nav{margin-top:var(--space-md)}}.error-boundary{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:var(--space-xl);background:var(--color-surface);z-index:var(--z-modal)}.error-boundary-content{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:400px;padding:var(--space-2xl);background:var(--color-surface-elevated);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}.error-boundary-icon{display:flex;align-items:center;justify-content:center;width:80px;height:80px;margin-bottom:var(--space-lg);background:linear-gradient(135deg,#fee2e2,#fecaca);border-radius:50%;color:#dc2626}.error-boundary-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;color:var(--color-text-primary);margin-bottom:var(--space-sm)}.error-boundary-message{font-size:var(--text-base);color:var(--color-text-secondary);line-height:1.6;margin-bottom:var(--space-xl)}.error-boundary-details{width:100%;margin-bottom:var(--space-xl);text-align:left}.error-boundary-details summary{font-size:var(--text-sm);color:var(--color-text-muted);cursor:pointer;padding:var(--space-sm);border-radius:var(--radius-md);transition:background .2s}.error-boundary-details summary:hover{background:var(--roam-parchment)}.error-boundary-details pre{font-family:SF Mono,Monaco,Consolas,monospace;font-size:var(--text-xs);color:var(--color-text-muted);background:var(--roam-parchment);padding:var(--space-md);border-radius:var(--radius-md);overflow-x:auto;white-space:pre-wrap;word-break:break-word;margin-top:var(--space-sm);max-height:200px;overflow-y:auto}.error-boundary-actions{display:flex;gap:var(--space-md);width:100%}.error-boundary-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);font-size:var(--text-sm);font-weight:500;border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s var(--ease-out-expo)}.error-boundary-btn.primary{background:var(--roam-forest);color:#fff;box-shadow:var(--shadow-md)}.error-boundary-btn.primary:hover{background:var(--roam-forest-light);transform:translateY(-1px);box-shadow:var(--shadow-lg)}.error-boundary-btn.primary:active{transform:scale(.98)}.error-boundary-btn.secondary{background:var(--roam-parchment);color:var(--color-text-primary)}.error-boundary-btn.secondary:hover{background:var(--roam-stone);color:#fff}.error-boundary-btn.secondary:active{transform:scale(.98)}@media(max-width:480px){.error-boundary{padding:var(--space-md)}.error-boundary-content{padding:var(--space-xl)}.error-boundary-actions{flex-direction:column}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.loading-state-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-xl)}.loading-spinner-icon{color:var(--roam-forest)}.loading-state-small .loading-spinner-icon{width:24px;height:24px}.loading-state-medium .loading-spinner-icon{width:40px;height:40px}.loading-state-large .loading-spinner-icon{width:56px;height:56px}.loading-message{font-size:var(--text-sm);color:var(--color-text-muted);text-align:center}.loading-state-skeleton{display:flex;flex-direction:column;gap:var(--space-sm)}.skeleton-line{height:16px;background:linear-gradient(90deg,color-mix(in srgb,var(--color-text-primary) 8%,transparent),color-mix(in srgb,var(--color-text-primary) 16%,transparent),color-mix(in srgb,var(--color-text-primary) 8%,transparent));background-size:200% 100%;border-radius:var(--radius-md);animation:skeleton-shimmer 1.5s ease-in-out infinite}.skeleton-card{border-radius:var(--radius-xl);overflow:hidden;background:var(--color-surface-elevated);box-shadow:var(--shadow-md)}.skeleton-image{height:200px;background:linear-gradient(90deg,color-mix(in srgb,var(--color-text-primary) 8%,transparent),color-mix(in srgb,var(--color-text-primary) 16%,transparent),color-mix(in srgb,var(--color-text-primary) 8%,transparent));background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}.skeleton-content{padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-sm)}.loading-state-skeleton-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-md);padding:var(--space-md) 0}.skeleton-mini-card{width:100%;height:220px;background:linear-gradient(135deg,color-mix(in srgb,var(--color-text-primary) 8%,transparent),color-mix(in srgb,var(--color-text-primary) 16%,transparent),color-mix(in srgb,var(--color-text-primary) 8%,transparent));background-size:200% 200%;border-radius:var(--radius-xl);animation:skeleton-shimmer 1.5s ease-in-out infinite}@keyframes skeleton-shimmer{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.loading-state-card-stack{display:flex;flex-direction:column;align-items:center;gap:var(--space-lg);padding:var(--space-2xl)}.card-stack-loader-icon{width:56px;height:56px;color:var(--roam-forest);margin-bottom:var(--space-sm)}.card-stack-loader-cards{position:relative;width:260px;height:340px}.loader-card{position:absolute;width:100%;height:100%;border-radius:var(--radius-xl);background:linear-gradient(135deg,var(--roam-parchment) 0%,rgba(255,255,255,.8) 50%,var(--roam-parchment) 100%);background-size:200% 200%;animation:skeleton-shimmer 1.5s ease-in-out infinite;box-shadow:var(--shadow-lg);border:1px solid rgba(235,227,213,.6)}.loader-card:first-child:before{content:"";position:absolute;bottom:0;left:0;right:0;height:40%;background:linear-gradient(to top,rgba(255,255,255,.95) 0%,rgba(255,255,255,.7) 60%,transparent 100%);border-radius:0 0 var(--radius-xl) var(--radius-xl)}.loader-card:first-child:after{content:"";position:absolute;bottom:24px;left:20px;right:20px;height:16px;background:var(--roam-parchment);border-radius:var(--radius-md);animation:pulse-skeleton 1.5s ease-in-out infinite}@keyframes pulse-skeleton{0%,to{opacity:.4}50%{opacity:.7}}.card-stack-loader-text{font-size:var(--text-sm);color:var(--color-text-muted);text-align:center;min-height:20px}.loading-inline{display:inline-flex;align-items:center;gap:4px}.loading-inline-small .loading-dot{width:4px;height:4px}.loading-inline-medium .loading-dot{width:6px;height:6px}.loading-dot{width:6px;height:6px;background:currentColor;border-radius:50%;animation:loading-bounce 1.4s ease-in-out infinite both}.loading-dot:nth-child(1){animation-delay:-.32s}.loading-dot:nth-child(2){animation-delay:-.16s}.loading-dot:nth-child(3){animation-delay:0s}@keyframes loading-bounce{0%,80%,to{transform:scale(.6);opacity:.5}40%{transform:scale(1);opacity:1}}.loading-state-fullpage{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-lg);background:var(--color-surface);z-index:var(--z-modal)}.fullpage-loader-icon{width:64px;height:64px;color:var(--roam-forest)}.fullpage-loader-text{font-family:var(--font-display);font-size:var(--text-lg);color:var(--color-text-secondary)}@media(max-width:480px){.card-stack-loader-cards{width:220px;height:290px}.skeleton-mini-card{width:160px;height:150px}}@media(max-height:700px){.loading-state-card-stack{padding:var(--space-xl);gap:var(--space-md)}.card-stack-loader-icon{width:40px;height:40px}.card-stack-loader-cards{width:200px;height:260px}}.auth-modal-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:var(--space-lg);z-index:var(--z-modal)}.auth-modal{position:relative;background:var(--color-surface);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);width:100%;max-width:420px;max-height:calc(100dvh - var(--space-2xl) * 2);overflow-y:auto;padding:var(--space-2xl)}.auth-modal-close{position:absolute;top:var(--space-lg);right:var(--space-lg);width:44px;height:44px;border-radius:50%;background:var(--color-surface-elevated);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);transition:all .2s ease}.auth-modal-close:hover{background:var(--roam-parchment);color:var(--color-text)}.auth-modal-header{text-align:center;margin-bottom:var(--space-xl)}.auth-modal-header h2{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-text);margin:0 0 var(--space-xs)}.auth-modal-header p{font-size:var(--text-sm);color:var(--color-text-muted);margin:0}.auth-google-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);background:var(--color-surface-elevated);border:1px solid var(--roam-parchment-dark);border-radius:var(--radius-lg);font-size:var(--text-base);font-weight:500;color:var(--color-text);cursor:pointer;transition:all .2s ease}.auth-google-btn:hover:not(:disabled){background:var(--roam-parchment);border-color:var(--roam-parchment-dark)}.auth-google-btn:disabled{opacity:.6;cursor:not-allowed}.auth-apple-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);background:#000;border:1px solid #000;border-radius:var(--radius-lg);font-size:var(--text-base);font-weight:500;color:#fff;cursor:pointer;transition:opacity .2s ease;margin-bottom:var(--space-sm)}.auth-apple-btn:hover:not(:disabled){opacity:.85}.auth-apple-btn:disabled{opacity:.5;cursor:not-allowed}.auth-divider{display:flex;align-items:center;gap:var(--space-md);margin:var(--space-xl) 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--roam-parchment-dark)}.auth-divider span{font-size:var(--text-sm);color:var(--color-text-muted)}.auth-form{display:flex;flex-direction:column;gap:var(--space-lg)}.auth-field{display:flex;flex-direction:column;gap:var(--space-xs)}.auth-field label{font-size:var(--text-sm);font-weight:500;color:var(--color-text)}.auth-input-wrapper{position:relative;display:flex;align-items:center}.auth-input-wrapper>svg{position:absolute;left:var(--space-md);color:var(--color-text-muted);pointer-events:none}.auth-input-wrapper input{width:100%;padding:var(--space-md);padding-left:calc(var(--space-md) * 2 + 20px);border:1px solid var(--roam-parchment-dark);border-radius:var(--radius-lg);font-size:var(--text-base);background:var(--color-surface);color:var(--color-text);transition:all .2s ease}.auth-field>input{width:100%;padding:var(--space-md);border:1px solid var(--roam-parchment-dark);border-radius:var(--radius-lg);font-size:var(--text-base);background:var(--color-surface);color:var(--color-text);transition:all .2s ease}.auth-input-wrapper input:focus,.auth-field>input:focus{outline:none;border-color:var(--roam-forest);box-shadow:0 0 0 3px #2d5a271a}.auth-password-toggle{position:absolute;right:var(--space-sm);padding:var(--space-sm);background:none;border:none;cursor:pointer;color:var(--color-text-muted);transition:color .2s ease}.auth-password-toggle:hover{color:var(--color-text)}.auth-password-hint{font-size:var(--text-xs);color:var(--color-text-muted);margin:0}.auth-remember{display:flex;align-items:center}.auth-remember label{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-sm);color:var(--color-text-muted);cursor:pointer}.auth-remember input[type=checkbox]{width:22px;height:22px;accent-color:var(--roam-forest);cursor:pointer}.auth-error{padding:var(--space-md);background:#dc35451a;border:1px solid rgba(220,53,69,.3);border-radius:var(--radius-md);color:#dc3545;font-size:var(--text-sm);text-align:center}.auth-submit-btn{width:100%;padding:var(--space-md) var(--space-lg);background:var(--roam-forest);border:none;border-radius:var(--radius-lg);font-size:var(--text-base);font-weight:600;color:#fff;cursor:pointer;transition:all .2s ease;min-height:48px;display:flex;align-items:center;justify-content:center}.auth-submit-btn:hover:not(:disabled){background:var(--roam-forest-dark);transform:translateY(-1px)}.auth-submit-btn:disabled{opacity:.7;cursor:not-allowed}.auth-loading{display:flex;gap:4px}.auth-loading-dot{width:8px;height:8px;background:var(--color-surface-elevated);border-radius:50%;animation:auth-loading-bounce 1.4s ease-in-out infinite both}.auth-loading-dot:nth-child(1){animation-delay:-.32s}.auth-loading-dot:nth-child(2){animation-delay:-.16s}.auth-loading-dot:nth-child(3){animation-delay:0s}@keyframes auth-loading-bounce{0%,80%,to{transform:scale(.6);opacity:.5}40%{transform:scale(1);opacity:1}}.auth-switch{text-align:center;margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--roam-parchment)}.auth-switch p{font-size:var(--text-sm);color:var(--color-text-muted);margin:0}.auth-switch button{background:none;border:none;color:var(--roam-forest);font-weight:600;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}.auth-switch button:hover{color:var(--roam-forest-dark)}@media(max-width:480px){.auth-modal-overlay{padding:var(--space-md);align-items:flex-end}.auth-modal{max-height:90dvh;border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;padding:var(--space-xl);padding-bottom:calc(var(--space-xl) + env(safe-area-inset-bottom))}.auth-modal-header h2{font-size:var(--text-xl)}}@media(max-height:600px){.auth-modal{padding:var(--space-lg)}.auth-modal-header{margin-bottom:var(--space-md)}.auth-divider{margin:var(--space-md) 0}.auth-form{gap:var(--space-md)}.auth-switch{margin-top:var(--space-md);padding-top:var(--space-md)}}.resignin-banner{position:sticky;top:env(safe-area-inset-top,0);z-index:60;display:flex;align-items:stretch;gap:0;margin:8px 12px 0;background:var(--color-surface-elevated, #ffffff);border:1px solid color-mix(in srgb,var(--roam-gold) 30%,transparent);border-left:4px solid var(--roam-gold);border-radius:12px;box-shadow:0 1px 2px #0000000a,0 4px 12px #0000000f;overflow:hidden}.resignin-banner-body{display:flex;align-items:center;gap:12px;flex:1;padding:10px 12px;background:transparent;border:0;cursor:pointer;text-align:left;font-family:inherit;color:var(--color-text-primary, var(--roam-ink))}.resignin-banner-body:hover{background:color-mix(in srgb,var(--roam-gold) 6%,transparent)}.resignin-banner-icon{flex:0 0 auto;width:32px;height:32px;border-radius:50%;background:color-mix(in srgb,var(--roam-gold) 18%,transparent);color:var(--roam-gold);display:inline-flex;align-items:center;justify-content:center}.resignin-banner-text{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.resignin-banner-title{font-size:14px;font-weight:600;line-height:1.2;color:var(--color-text-primary, var(--roam-ink))}.resignin-banner-sub{font-size:12px;line-height:1.3;color:var(--color-text-secondary, var(--roam-ink-light));text-wrap:balance}.resignin-banner-cta{flex:0 0 auto;font-size:13px;font-weight:600;color:var(--roam-gold);padding:6px 10px;border-radius:8px;background:color-mix(in srgb,var(--roam-gold) 12%,transparent);white-space:nowrap}.resignin-banner-dismiss{flex:0 0 auto;width:36px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;border-left:1px solid color-mix(in srgb,var(--roam-gold) 18%,transparent);color:var(--color-text-muted, var(--roam-ink-muted));cursor:pointer}.resignin-banner-dismiss:hover{color:var(--color-text-primary, var(--roam-ink));background:color-mix(in srgb,var(--roam-ink) 5%,transparent)}@media(prefers-color-scheme:dark){.resignin-banner{background:var(--color-surface-elevated, #1f1b16);border-color:color-mix(in srgb,var(--roam-gold) 35%,transparent)}}[data-theme=dark] .resignin-banner{background:var(--color-surface-elevated, #1f1b16);border-color:color-mix(in srgb,var(--roam-gold) 35%,transparent)}@media(prefers-reduced-motion:reduce){.resignin-banner{transition:none}}.success-modal-backdrop{position:fixed;inset:0;z-index:2000;background:#1a3a2fbf;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;padding:var(--space-lg)}.success-modal{position:relative;width:100%;max-width:380px;background:var(--roam-cream);border-radius:var(--radius-xl);padding:var(--space-2xl) var(--space-xl);text-align:center;box-shadow:0 25px 80px #1a3a2f59,0 10px 30px #1a3a2f33,inset 0 1px #fff9;overflow:hidden}.success-modal:before{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");opacity:.04;pointer-events:none;border-radius:inherit}.success-modal:after{content:"";position:absolute;top:0;right:0;width:100px;height:100px;background:linear-gradient(135deg,transparent 50%,rgba(212,168,85,.08) 50%);pointer-events:none}.success-icon{font-size:72px;line-height:1;margin-bottom:var(--space-lg);display:block;position:relative;z-index:1}.success-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:500;color:var(--roam-forest);margin:0 0 var(--space-xs) 0;letter-spacing:-.01em;position:relative;z-index:1}.success-subtitle{font-size:var(--text-base);color:var(--roam-ink-muted);margin:0 0 var(--space-xl) 0;font-style:italic;position:relative;z-index:1}.success-features{list-style:none;padding:var(--space-md);margin:0 0 var(--space-xl) 0;text-align:left;background:#1a3a2f08;border-radius:var(--radius-lg);border:1px solid rgba(26,58,47,.06);position:relative;z-index:1}.success-features li{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0;font-size:var(--text-sm);color:var(--roam-ink)}.success-features li:not(:last-child){border-bottom:1px dashed var(--roam-parchment)}.success-feature-check{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:linear-gradient(135deg,var(--roam-forest) 0%,var(--roam-forest-light) 100%);color:#fff;font-size:12px;font-weight:700;border-radius:50%;flex-shrink:0;box-shadow:0 2px 6px #1a3a2f33}.success-btn{display:block;width:100%;padding:var(--space-md) var(--space-xl);background:linear-gradient(135deg,var(--roam-forest) 0%,var(--roam-forest-light) 100%);border:none;border-radius:var(--radius-full);font-family:var(--font-display);font-size:var(--text-base);font-weight:500;letter-spacing:.02em;color:#fff;cursor:pointer;transition:all .25s ease;box-shadow:0 4px 16px #1a3a2f40;position:relative;z-index:1}.success-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px #1a3a2f59}.success-confetti{position:fixed;top:50%;left:50%;pointer-events:none;z-index:2001}.confetti-particle{position:absolute;width:10px;height:10px;border-radius:2px}.confetti-particle:nth-child(odd){border-radius:50%;width:8px;height:8px}.confetti-particle:nth-child(3n){border-radius:0;transform:rotate(45deg)}@media(max-width:400px){.success-modal{padding:var(--space-xl) var(--space-lg);margin:var(--space-md)}.success-icon{font-size:56px}.success-title{font-size:var(--text-xl)}.success-subtitle{font-size:var(--text-sm)}}.install-banner{position:fixed;bottom:calc(var(--nav-height, 60px) + env(safe-area-inset-bottom,0px) + 12px);left:12px;right:12px;background:var(--roam-forest, #1a3a2f);border-radius:16px;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 4px 20px #00000026;z-index:1000}.install-banner-content{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.install-banner-icon{flex-shrink:0;width:40px;height:40px;border-radius:10px;overflow:hidden;background:var(--color-surface-elevated)}.install-banner-icon img{width:100%;height:100%;object-fit:cover}.install-banner-text{display:flex;flex-direction:column;gap:2px;color:#fff;min-width:0}.install-banner-text strong{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.install-banner-text span{font-size:12px;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.install-banner-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.install-banner-dismiss{padding:8px 12px;background:transparent;color:#ffffffb3;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:color .2s}.install-banner-dismiss:hover{color:#fff}.install-banner-install{padding:8px 16px;background:var(--roam-gold, #d4a855);color:var(--roam-forest, #1a3a2f);border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:transform .2s,background .2s}.install-banner-install:hover{transform:scale(1.02)}.install-banner-install:active{transform:scale(.98)}@media(max-width:320px){.install-banner-text span,.install-banner-dismiss{display:none}}.notification-floating-container{position:fixed;bottom:85px;right:16px;z-index:var(--z-dropdown, 100)}@media(min-width:1024px){.notification-floating-container{bottom:24px;right:24px}}.notification-bell-btn{position:relative;display:flex;align-items:center;justify-content:center;width:52px;height:52px;padding:0;background:var(--color-surface-elevated);background-image:radial-gradient(ellipse at 30% 30%,color-mix(in srgb,var(--color-surface) 60%,transparent) 0%,transparent 50%);border:2px solid var(--roam-gold);border-radius:50%;color:var(--color-text-primary);cursor:pointer;box-shadow:0 2px 4px #0000002e,0 4px 12px #00000038;transition:all .2s ease}.notification-bell-btn:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000038,0 8px 20px #00000047}.notification-bell-btn:active{transform:translateY(0)}.notification-bell-btn.has-unread{animation:bell-pulse 2s ease-in-out infinite}@keyframes bell-pulse{0%,to{box-shadow:0 2px 4px #0000002e,0 4px 12px #00000038,0 0 #d4a85500}50%{box-shadow:0 2px 4px #0000002e,0 4px 12px #00000038,0 0 0 8px #d4a8552e}}.notification-bell-btn svg{width:24px;height:24px;stroke-width:1.75}.notification-badge{position:absolute;top:-2px;right:-2px;min-width:20px;height:20px;padding:0 6px;background:var(--roam-terracotta, #c45c3e);border:2px solid var(--roam-cream, #faf8f5);border-radius:10px;font-size:11px;font-weight:700;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #c45c3e4d}.notification-backdrop{position:fixed;inset:0;z-index:1000;background:#1a3a2f99;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;touch-action:none;overscroll-behavior:contain;will-change:opacity;transform:translateZ(0)}.notification-panel{background:var(--color-surface);border:1px solid var(--color-border);overflow:hidden;display:flex;flex-direction:column}.notification-panel.desktop{position:absolute;bottom:calc(100% + 12px);right:0;width:360px;max-height:480px;border-radius:16px;box-shadow:0 4px 6px #2a25200d,0 12px 24px #2a25201a,0 24px 48px #2a25201a;z-index:calc(var(--z-dropdown, 100) + 1)}.notification-panel.mobile{position:relative;width:100%;max-width:500px;max-height:70vh;max-height:70dvh;border-radius:24px 24px 0 0;border-bottom:none;box-shadow:0 -8px 40px #1a3a2f40,0 -2px 10px #1a3a2f1a;padding-bottom:env(safe-area-inset-bottom,0);will-change:transform;transform:translateZ(0);overscroll-behavior:contain}.notification-drag-handle{display:flex;justify-content:center;padding:12px 0 8px;cursor:grab;touch-action:none;flex-shrink:0}.notification-drag-handle:active{cursor:grabbing}.notification-drag-pill{width:48px;height:6px;background:var(--roam-parchment-dark, #d8d0c4);border-radius:3px}.notification-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border);background:transparent;flex-shrink:0}.notification-panel-title{display:flex;align-items:center;gap:8px}.notification-panel-title svg{color:var(--roam-gold, #d4a855)}.notification-panel-title h3{margin:0;font-family:var(--font-display, "Newsreader", Georgia, serif);font-size:18px;font-weight:500;font-style:italic;color:var(--roam-forest, #1a3a2f);letter-spacing:.01em}.notification-mark-all{padding:6px 12px;background:transparent;border:none;font-family:var(--font-body, "Outfit", sans-serif);font-size:12px;font-weight:500;color:var(--roam-ink-muted, #8a847c);cursor:pointer;transition:color .2s ease}.notification-mark-all:hover{color:var(--roam-forest, #1a3a2f)}.notification-panel-content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.notification-panel-content::-webkit-scrollbar{width:6px}.notification-panel-content::-webkit-scrollbar-track{background:transparent}.notification-panel-content::-webkit-scrollbar-thumb{background:var(--roam-stone, #d8d0c4);border-radius:3px}.notification-panel-content::-webkit-scrollbar-thumb:hover{background:var(--roam-ink-muted, #8a847c)}.notification-item{display:flex;align-items:flex-start;gap:14px;padding:16px 20px;background:transparent;border-bottom:1px solid var(--roam-parchment, #ede7dc);border-left:4px solid transparent;text-decoration:none;color:inherit;transition:all .15s ease}.notification-item:last-child{border-bottom:none}.notification-item:hover{background:color-mix(in srgb,var(--color-text-primary) 5%,transparent)}.notification-item.unread{border-left-color:var(--roam-gold);background:color-mix(in srgb,var(--roam-gold) 8%,transparent)}.notification-item.unread:hover{background:color-mix(in srgb,var(--roam-gold) 14%,transparent)}.notification-item-left{position:relative;flex-shrink:0}.notification-item-avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;border:2px solid var(--color-border)}.notification-item-type-icon{position:absolute;bottom:-4px;right:-4px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:50%;color:var(--color-text-primary)}.notification-item-body{flex:1;min-width:0}.notification-item-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.notification-item-time{font-size:12px;font-weight:500;color:var(--roam-ink-muted, #8a847c)}.notification-item-message{margin:0 0 6px;font-size:14px;line-height:1.45;color:var(--roam-ink, #2a2520)}.notification-item-action{font-size:12px;font-weight:500;color:var(--roam-forest, #1a3a2f);opacity:.7;transition:opacity .15s ease}.notification-item:hover .notification-item-action{opacity:1}@media(max-width:768px){.notification-item-action{opacity:1}}.notification-loading{padding:0}.notification-skeleton{display:flex;align-items:flex-start;gap:14px;padding:16px 20px;border-bottom:1px solid var(--roam-parchment, #ede7dc)}.notification-skeleton-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(90deg,var(--roam-parchment, #ede7dc) 0%,var(--roam-stone, #d8d0c4) 50%,var(--roam-parchment, #ede7dc) 100%);background-size:200% 100%;animation:shimmer 1.5s infinite}.notification-skeleton-content{flex:1;display:flex;flex-direction:column;gap:8px}.notification-skeleton-line{height:14px;background:linear-gradient(90deg,var(--roam-parchment, #ede7dc) 0%,var(--roam-stone, #d8d0c4) 50%,var(--roam-parchment, #ede7dc) 100%);background-size:200% 100%;border-radius:4px;animation:shimmer 1.5s infinite}.notification-skeleton-line.short{width:60%;height:12px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.notification-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.envelope-illustration{margin-bottom:16px;opacity:.5}.notification-empty-title{margin:0 0 6px;font-family:var(--font-display, "Newsreader", Georgia, serif);font-size:16px;font-weight:500;color:var(--roam-ink, #2a2520)}.notification-empty-subtitle{margin:0;font-size:13px;line-height:1.5;color:var(--roam-ink-muted, #8a847c);max-width:240px}.notification-load-more{display:block;width:100%;padding:14px 20px;background:transparent;border:none;border-top:1px solid var(--color-border);font-family:var(--font-body, "Outfit", sans-serif);font-size:13px;font-weight:500;color:var(--color-text-primary);cursor:pointer;transition:background .15s ease}.notification-load-more:hover:not(:disabled){background:color-mix(in srgb,var(--color-text-primary) 5%,transparent)}.notification-load-more:disabled{opacity:.6;cursor:not-allowed}@media(prefers-reduced-motion:reduce){.notification-bell-btn.has-unread{animation:none}.notification-skeleton-avatar,.notification-skeleton-line{animation:none;background:var(--roam-parchment, #ede7dc)}}.display-name-nudge{background:linear-gradient(180deg,var(--color-surface-elevated) 0%,color-mix(in srgb,var(--color-surface-elevated) 92%,var(--color-text-primary) 8%) 100%);border-bottom:1px solid color-mix(in srgb,var(--color-text-primary) 10%,transparent);padding:12px 16px;position:relative;z-index:5}.display-name-nudge-inner{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:10px}.display-name-nudge-text{display:flex;flex-direction:column;gap:2px;color:var(--color-text-primary);font-size:.9rem}.display-name-nudge-text strong{font-family:Fraunces,serif;font-weight:600;font-size:1rem}.display-name-nudge-text span{color:var(--color-text-secondary);font-size:.85rem}.display-name-nudge-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.display-name-nudge-input{flex:1;min-width:160px;padding:8px 12px;border:1px solid color-mix(in srgb,var(--color-text-primary) 22%,transparent);border-radius:8px;font:inherit;background:var(--color-surface);color:var(--color-text-primary)}.display-name-nudge-input:focus{outline:none;border-color:var(--color-text-primary)}.display-name-nudge-save,.display-name-nudge-skip{padding:8px 14px;border-radius:8px;font-size:.9rem;cursor:pointer;border:1px solid color-mix(in srgb,var(--color-text-primary) 22%,transparent)}.display-name-nudge-save{background:var(--color-text-primary);color:var(--color-surface);border-color:var(--color-text-primary)}.display-name-nudge-save:disabled{opacity:.5;cursor:not-allowed}.display-name-nudge-skip{background:transparent;color:var(--color-text-secondary)}.display-name-nudge-skip:hover{color:var(--color-text-primary)}.display-name-nudge-error{margin:0;color:#b22d2d;font-size:.8rem}.offline-indicator{position:fixed;top:env(safe-area-inset-top,12px);left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;font-size:.85rem;font-weight:500;background:var(--roam-forest);color:#f5f0e6;box-shadow:0 2px 12px #1a3a2f4d;z-index:1000;pointer-events:none}.offline-indicator.no-pack{background:#6b6b6b}.offline-indicator-dot{width:8px;height:8px;border-radius:50%;background:currentColor;animation:offline-pulse 2s ease-in-out infinite}@keyframes offline-pulse{0%,to{opacity:.5}50%{opacity:1}}.toast-container{position:fixed;bottom:calc(80px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:var(--space-sm);pointer-events:none;width:100%;max-width:400px;padding:0 var(--space-md)}.toast{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);background:var(--roam-cream);box-shadow:0 4px 12px #1a3a2f26,0 8px 24px #1a3a2f1a;pointer-events:auto;border:1px solid rgba(26,58,47,.1)}.toast-success{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-color:#22c55e33}.toast-success .toast-icon{color:#16a34a;background:#22c55e26}.toast-error{background:linear-gradient(135deg,#fef2f2,#fee2e2);border-color:#ef444433}.toast-error .toast-icon{color:#dc2626;background:#ef444426}.toast-info{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-color:#3b82f633}.toast-info .toast-icon{color:#2563eb;background:#3b82f626}.toast-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-full);flex-shrink:0}.toast-message{flex:1;font-size:var(--text-sm);font-weight:500;color:var(--roam-forest);line-height:1.4}.toast-action{padding:var(--space-xs) var(--space-md);border:none;background:var(--roam-forest);color:#fff;border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:600;cursor:pointer;transition:all .2s ease;flex-shrink:0;white-space:nowrap}.toast-action:hover{background:var(--roam-forest-dark, #143028)}.toast-action:active{transform:scale(.95)}.toast-close{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;background:transparent;border-radius:var(--radius-full);cursor:pointer;color:var(--roam-text-muted);transition:all .2s ease;flex-shrink:0;margin:calc(-1 * var(--space-sm)) calc(-1 * var(--space-sm)) calc(-1 * var(--space-sm)) 0}.toast-close:hover{background:#1a3a2f14;color:var(--roam-forest)}.toast-close:active{transform:scale(.9)}.toast-close:focus-visible{outline:2px solid var(--roam-forest);outline-offset:2px}@media(max-width:480px){.toast-container{max-width:100%;padding:0 var(--space-sm)}.toast{padding:var(--space-sm) var(--space-md)}.toast-icon{width:28px;height:28px}.toast-message{font-size:var(--text-xs)}}
