*{box-sizing:border-box;margin:0;padding:0}html,body{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar{display:none}body::-webkit-scrollbar{display:none}body{color:#000;background-color:teal;min-height:100vh;padding:8px;font-family:MS Sans Serif,Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:11px}#app{max-width:700px;margin:0 auto}.home-container{background:silver;border:3px outset #dfdfdf;padding:4px}.home-header{text-align:center;background:navy;border:2px inset #404040;margin-bottom:4px;padding:12px}.home-title{color:#ff0;text-shadow:2px 2px #000;margin-bottom:4px;font-size:20px;font-weight:700}.title-star{color:#f0f;animation:2s linear infinite spin;display:inline-block}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.home-subtitle{color:#0ff;font-size:11px;font-style:italic}.home-footer{color:#0f0;background:#000;border:2px inset #404040;margin-top:4px;padding:6px;font-family:Courier New,monospace;font-size:11px}.github-corner{color:#000;z-index:100;transition:color .2s;position:fixed;bottom:20px;left:20px}.github-corner:hover{color:#fff}.goat-corner{z-index:100;pointer-events:none;position:fixed;bottom:0;right:0}.goat-corner img{transform-origin:100% 100%;width:200px;height:auto;display:block;transform:scale(1.25)}.filter-box{background:silver;border:2px groove gray;flex-wrap:wrap;gap:12px;margin-bottom:4px;padding:8px;display:flex}.filter-row{align-items:center;gap:6px;display:flex}.filter-row label{color:navy;font-size:11px;font-weight:700}.filter-row select{cursor:pointer;background:#fff;border:2px inset gray;padding:2px 4px;font-family:MS Sans Serif,Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:11px}.filter-row select:focus{outline:1px dotted #000}.cafe-list{background:#fff;border:2px inset gray;padding:8px}.list-header{color:#fff;letter-spacing:1px;background:maroon;margin:-8px -8px 8px;padding:4px 8px;font-size:12px;font-weight:700}.cafe-item{color:#000;background:#fff;border-bottom:1px dotted silver;gap:12px;padding:6px 8px;text-decoration:none;display:flex}.cafe-item:hover{color:#fff;background:navy}.cafe-item:hover .cafe-location{color:#ff0}.cafe-item:hover .cafe-rating{color:#0f0}.cafe-item .cafe-name{flex:1}.cafe-item .cafe-rating{color:maroon;font-family:Courier New,monospace;font-weight:700}.cafe-item .cafe-location{color:navy;font-size:10px}.main-table{background:silver;border:3px outset #dfdfdf;width:100%}.sidebar{vertical-align:top;background:silver;border-right:2px groove gray;width:120px;padding:6px}.nav-box{text-align:center;background:navy;border:2px inset #404040;margin-bottom:8px;padding:6px}.nav-title{color:#ff0;letter-spacing:1px;margin-bottom:6px;font-size:10px;font-weight:700}.nav-link{color:#0ff;padding:2px;font-size:11px;text-decoration:none;display:block}.nav-link:hover{color:navy;background:#ff0}.nav-divider{color:gray;margin:4px 0;font-size:8px}.nav-info{color:#0f0;font-family:Courier New,monospace;font-size:9px}.construction-box{text-align:center;background:#ff0;border:2px solid #000;justify-content:center;align-items:center;gap:4px;margin-bottom:8px;padding:6px;font-size:9px;font-weight:700;display:flex}.construction-text{color:red;font-size:14px}.guestbook-box{text-align:center;cursor:pointer;background:#fff;border:2px inset gray;padding:6px;font-size:9px}.guestbook-box:hover{background:#ffc}.pixel-coffee{background:#8b4513;border:1px solid #000;width:16px;height:16px;margin:0 auto 4px;position:relative}.pixel-coffee:after{content:"";border:1px solid #000;border-left:none;border-radius:0 3px 3px 0;width:5px;height:10px;position:absolute;top:3px;right:-6px}.main-content{vertical-align:top;background:#fff;border:2px inset gray;padding:12px}.page-title{text-align:center;margin-bottom:12px}.page-title h1{color:maroon;text-shadow:1px 1px silver;margin:4px 0;font-size:18px}.title-decoration{color:#f0f;letter-spacing:2px;font-size:10px}.info-table{background:#ffc;border:2px groove gray;margin-bottom:12px;padding:8px}.info-row{margin-bottom:4px;font-size:11px;display:flex}.info-row:last-child{margin-bottom:0}.info-label{color:navy;width:70px;font-weight:700}.info-value{flex:1}.cafe-name-value{color:maroon;font-weight:700}.rating-bar{color:maroon;letter-spacing:1px;font-family:Courier New,monospace}.divider{text-align:center;color:gray;letter-spacing:1px;margin:8px 0;font-size:10px}.review-section{background:#f0f0f0;border:1px solid gray;padding:8px}.review-header{color:#fff;background:linear-gradient(90deg,navy,#0000cd);margin:-8px -8px 8px;padding:3px 8px;font-size:11px;font-weight:700}.review-content{font-size:11px;line-height:1.5}.review-content p{margin-bottom:8px}.review-content h1,.review-content h2,.review-content h3{color:navy;border-bottom:1px dashed gray;margin:12px 0 6px;padding-bottom:2px}.review-content h1{font-size:16px}.review-content h2{font-size:14px}.review-content h3{font-size:12px}.review-content img{background:#fff;border:2px solid #000;max-width:100%;margin:8px auto;padding:2px;display:block}.review-content ul,.review-content ol{margin:8px 0 8px 20px}.review-content li{margin-bottom:4px}.review-content blockquote{background:#ffc;border-left:3px solid maroon;margin:8px 0;padding:6px 10px;font-style:italic}.review-content code{color:#0f0;background:#000;padding:1px 4px;font-family:Courier New,monospace;font-size:10px}.review-content pre{color:#0f0;background:#000;border:2px inset #404040;margin:8px 0;padding:8px;font-family:Courier New,monospace;font-size:10px;overflow-x:auto}.review-content pre code{padding:0}.review-content a{color:#00f}.review-content a:visited{color:purple}.review-content a:hover{background:#ff0}.review-content hr{border:none;border-top:2px dashed gray;margin:12px 0}.review-content strong{color:maroon}.review-content em{color:green}.footer-text{color:#0f0;text-align:center;background:#000;margin-top:8px;padding:4px;font-size:10px}.footer-text marquee{font-family:Courier New,monospace}.bottom-bar{background:silver;border:2px outset #dfdfdf;justify-content:center;gap:8px;margin-top:4px;padding:4px 8px;font-size:9px;display:flex}.error-page{text-align:center;background:silver;border:3px outset #dfdfdf;padding:20px}.error-page h1{color:red;margin-bottom:12px;font-size:24px}.error-page p{margin-bottom:12px}.error-page a{color:#00f}.blink{animation:1s step-end infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}
