:root{--paper:#f4f6f3;--grid:#cfdde8;--margin-line:#e3838c;--ink:#233c8f;--graphite:#2d2a28;--pencil:#6f6a64;--cocoa:#5b3522;--tape:#f6e8aac7;--highlighter:#fff07a;--hand:"Shantell Sans", "Comic Neue", cursive;--body:"Literata", Georgia, serif;--square:24px;--margin-x:76px}*{box-sizing:border-box}html{background-color:var(--paper);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-size:var(--square) var(--square);color:var(--graphite)}body{min-height:100vh;font-family:var(--body);margin:0;font-size:1.0625rem;line-height:1.75;position:relative}body:before{content:"";inset:0 auto 0 var(--margin-x);background:var(--margin-line);pointer-events:none;width:2px;position:absolute}.page{padding:calc(var(--square) * 2) var(--square) calc(var(--square) * 4) calc(var(--margin-x) + var(--square));max-width:980px}h1,h2,h3{font-family:var(--hand);color:var(--ink);margin:0 0 calc(var(--square) / 2);font-weight:600;line-height:1.2}h1{font-variation-settings:"INFM" 60, "BNCE" 30;font-size:clamp(2.2rem,5vw,3.4rem)}h2{font-size:1.75rem}h3{font-size:1.3rem}p{margin:0 0 var(--square);max-width:62ch}a{color:var(--ink);text-underline-offset:3px;text-decoration-thickness:1.5px}a:hover{text-decoration-style:wavy}:focus-visible{outline:3px dashed var(--ink);outline-offset:3px}.in-margin{width:calc(var(--margin-x) - 12px);font-family:var(--hand);color:var(--margin-line);text-align:right;font-size:.85rem;line-height:1.2;position:absolute;left:6px;transform:rotate(-4deg)}.hand{font-family:var(--hand)}.pencil{color:var(--pencil)}.taped{transform:rotate(var(--tilt,-1.5deg));background:#fff;border:1px solid #ddd8cf;padding:8px;display:inline-block;position:relative}.taped:before{content:"";background:var(--tape);width:96px;height:26px;transform:translateX(-50%) rotate(calc(var(--tilt,-1.5deg) * -2));border-left:2px dotted #0000000f;border-right:2px dotted #0000000f;position:absolute;top:-12px;left:50%}.taped>img{width:100%;height:auto;display:block}.highlight{background:linear-gradient(transparent 55%, var(--highlighter) 55%, var(--highlighter) 90%, transparent 90%)}button,.button{font-family:var(--hand);color:var(--ink);background:var(--paper);border:2px solid var(--ink);cursor:pointer;border-radius:3px 6px 4px 7px/6px 3px 7px 4px;padding:6px 16px;font-size:1.05rem;font-weight:600}button:hover,.button:hover{background:var(--highlighter)}button:disabled{opacity:.5;cursor:wait}@media (width<=640px){:root{--margin-x:30px}.page{padding-right:16px;padding-left:calc(var(--margin-x) + 14px)}.in-margin{text-align:left;width:auto;margin-bottom:4px;display:block;position:static;transform:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.cups{vertical-align:middle;align-items:flex-end;gap:3px;display:inline-flex}.cups img{object-fit:contain;display:block}.ticks{min-height:var(--square);grid-template-columns:7.5rem auto 1fr;align-items:center;gap:12px;display:grid}.ticks .name{color:var(--ink);font-weight:500}.ticks .boxes{gap:4px;display:inline-flex}.ticks .box{border:1.5px solid var(--ink);width:20px;height:20px;padding:1px;display:block}.ticks .box img{object-fit:contain;width:100%;height:100%;display:block}.ticks .hint{font-family:var(--hand);font-size:.9rem;font-style:italic}@media (width<=480px){.ticks{grid-template-columns:6.5rem auto}.ticks .hint{display:none}}.photo-placeholder{width:100%}.photo-placeholder>span,.photo-placeholder-box{aspect-ratio:4/3;color:#c000c0;text-align:center;background:#ffe6ff;border:2px dashed #f0f;place-items:center;padding:8px;font-size:1.05rem;font-weight:600;display:grid}.review{position:relative}.review>.review-date{top:10px;left:calc(-1 * var(--margin-x) - var(--square) + 6px)}.review-title{max-width:20ch}.review-where{color:var(--ink);margin-bottom:calc(var(--square) * 1.5);font-size:1.2rem}.review-photos{gap:calc(var(--square) * 1.5);margin:calc(var(--square) * 1.5) 0 calc(var(--square) * 2);flex-wrap:wrap;display:flex}.review-photos figure{width:min(360px,100%);margin:0}.review-scores{margin-bottom:calc(var(--square) * 2)}.review-overall{margin-bottom:var(--square);flex-wrap:wrap;align-items:center;gap:14px;display:flex}.review-overall-label{color:var(--ink);width:7.5rem;font-size:1.5rem;font-weight:600}.review-overall-num{color:var(--cocoa);font-size:1.3rem}.review-breakdown{gap:4px;display:grid}.review-toppings{margin-top:var(--square);color:var(--pencil)}.review-verdict{color:var(--graphite);max-width:40ch;margin-bottom:calc(var(--square) * 1.5);font-size:1.35rem}.review-notes{margin-bottom:calc(var(--square) * 1.5)}.review-maplink{font-size:1.1rem}@media (width<=640px){.review>.review-date{position:static}.review-overall-label{width:auto}}.review-modal{width:min(880px,100vw - 24px);max-width:none;max-height:calc(100dvh - 32px);color:var(--graphite);overscroll-behavior:contain;background-color:var(--paper);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-size:var(--square) var(--square);border:1px solid #cfc8bc;margin:auto;padding:0;overflow:auto}.review-modal::backdrop{background:#2d2a288c}.modal-page{min-height:100%;padding:calc(var(--square) * 2.5) calc(var(--square) * 1.5) calc(var(--square) * 2) calc(var(--margin-x) + var(--square));position:relative}.modal-page:before{content:"";inset:0 auto 0 var(--margin-x);background:var(--margin-line);width:2px;position:absolute}.modal-page:after{content:"";background:var(--tape);width:120px;height:26px;position:absolute;top:6px;left:50%;transform:translate(-50%)rotate(-2deg)}.modal-close{float:right;z-index:2;margin:calc(var(--square) * -1.5) calc(var(--square) * -.5) 0 var(--square);position:sticky;top:0}.modal-body .review-title{padding-right:90px}.modal-loading{font-family:var(--hand);color:var(--pencil)}@media (prefers-reduced-motion:no-preference){.review-modal[open]{animation:.22s ease-out lay-down}.review-modal[open]::backdrop{animation:.22s ease-out dim}}@keyframes lay-down{0%{opacity:0;transform:translateY(18px)rotate(-1.5deg)}to{opacity:1;transform:none}}@keyframes dim{0%{opacity:0}}html.modal-open{overflow:hidden}@media (width<=640px){.review-modal{border:none;width:100vw;height:100dvh;max-height:100dvh}.modal-page{padding-top:calc(var(--square) * 3)}}
