.photo-window{margin:0;min-width:0}
.photo-track{display:flex;gap:12px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--line) transparent;touch-action:pan-x pan-y;scroll-padding-inline:0}
.photo-open{position:relative;display:block;flex:0 0 100%;min-width:0;scroll-snap-align:start;color:inherit;overflow:hidden;background:var(--soft)}
.photo-open img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;transition:opacity .5s ease,filter .75s ease}
.photo-pair .photo-open{flex-basis:calc((100% - 12px)/2)}
.photo-window figcaption{display:flex;gap:12px;justify-content:space-between;align-items:center;min-height:44px;padding-top:8px;font-size:.857143rem;line-height:1.7;color:var(--muted)}
.photo-controls{display:flex;align-items:center;flex:none;white-space:nowrap;font-family:var(--mono);font-size:.857143rem;gap:4px}
.photo-controls button,.record-controls button{width:44px;min-width:44px;height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-family:var(--ui);font-size:1.142857rem}
.photo-controls [data-photo-position],.record-controls [data-record-position]{text-align:center;min-width:36px}
.photo-open:hover img{opacity:.9}
.photo-open:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
.photo-controls button[aria-disabled=true],.record-controls button[aria-disabled=true]{color:var(--muted);opacity:.45;cursor:default}
.source-link{display:inline-flex;align-items:center;min-height:44px;gap:5px;color:var(--accent);font-size:.928571rem;line-height:1.6;text-decoration:none}
.source-link:hover{text-decoration:underline;text-underline-offset:3px}

/* A single continuous shelf, with full drawings sharing the same baseline. */
.drink-cabinet{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;min-width:0;align-items:start}
.drink-item{min-width:0;margin:0;position:relative}
.drink-item>summary{display:flex;flex-direction:column;align-items:center;text-align:center;cursor:pointer;list-style:none;min-width:0;padding:0 0 8px;position:relative}
.drink-item>summary::-webkit-details-marker{display:none}
.drink-item>summary:after{content:'';position:absolute;top:115px;left:-6px;right:-6px;height:1px;background:var(--line);z-index:-1}
/* The shared visible drawing bounds are y=157..563 in the 724px source.
   Crop only the transparent margin, keeping a common baseline for all six. */
.glass-art{position:relative;display:block;width:100px;height:116px;max-width:100%;overflow:hidden;flex:none}
.glass-art img{position:absolute;max-width:none!important;width:600px;height:200px;left:calc(var(--glass)*-100px);top:-41px;display:block}
.drink-name{display:block;font-size:.928571rem;line-height:1.5;min-height:2.9em;margin-top:12px;overflow-wrap:anywhere}
.drink-kind{display:flex;align-items:center;min-height:32px;font-size:.857143rem;line-height:1.4;color:var(--muted)}
.drink-item>summary .glass-art{transition:transform .18s ease}
.drink-item>summary:hover .glass-art,.drink-item>summary:focus-visible .glass-art{transform:translateY(-4px)}
.drink-item[open]{grid-column:span 3}
.drink-item[open]>.drink-recipe{padding:16px 20px;background:var(--soft);margin-top:8px;min-width:0}
.drink-recipe{line-height:1.8;font-size:1rem;overflow-wrap:anywhere;min-width:0}
.drink-reference{font-size:.928571rem;color:var(--muted);margin:0 0 16px}
.drink-ingredients{margin:0 0 24px}
.drink-ingredients>div{display:flex;align-items:start;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-block:9px}
.drink-ingredients dt{min-width:0}.drink-ingredients dd{margin:0;flex:none;font-variant-numeric:tabular-nums}
.drink-steps{padding-left:1.4em;margin:16px 0}.drink-steps li{padding-left:4px;margin-bottom:12px}
.drink-note{margin:0 0 16px}

.record-browser{min-width:0}
.record-track{display:flex;align-items:flex-end;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:8px;scrollbar-width:thin;scrollbar-color:var(--line) transparent;touch-action:pan-x pan-y;padding:20px 6px 16px;border-bottom:1px solid var(--line);min-height:190px;isolation:isolate}
.record-cover{display:block;position:relative;padding:0;flex:0 0 152px;min-width:152px;width:152px;height:152px;margin-right:-32px;border:0;background:transparent;scroll-snap-align:start;z-index:1;cursor:pointer}
.record-cover:last-child{margin-right:0}
.record-cover:before{content:'';position:absolute;inset:-12px 0 0}
.record-art{display:block;width:100%;height:100%;pointer-events:none;transform-origin:bottom center;transition:transform 200ms cubic-bezier(.2,.65,.3,1)}
.record-cover img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}
.record-cover.is-selected,.record-cover[aria-pressed=true]{z-index:4}
.record-cover.is-selected .record-art{transform:translateY(-8px);outline:1px solid var(--ink);outline-offset:3px}
.record-cover:focus-visible{z-index:5;outline:0}
.record-cover:focus-visible .record-art{outline:2px solid var(--accent);outline-offset:4px}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .record-cover.is-near:not(.is-selected) .record-art{transform:translateY(-3px)}
 .record-cover.is-hovered .record-art{transform:translateY(-10px)}
}
.record-information{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px 24px;padding-top:16px;min-height:118px}
.record-identification{min-width:0}.record-identification h3{font-size:1.142857rem;line-height:1.5;font-weight:500;margin:0;overflow-wrap:anywhere;min-height:1.5em}
.record-identification p{font-size:.928571rem;color:var(--muted);line-height:1.6;margin:5px 0 0}
.record-identification .source-link{font-size:.857143rem}
.record-controls{display:flex;align-items:center;gap:4px;white-space:nowrap;font-family:var(--mono);font-size:.857143rem}
.record-preview{padding:16px 0 0;border-top:1px solid var(--line)}
.record-preview>p{font-size:.928571rem;margin:0 0 12px;line-height:1.7}
.record-preview audio{display:block;width:100%;max-width:480px;height:44px}
.audio-status{color:var(--muted);margin-top:12px!important}
.record-no-script{font-size:.928571rem;line-height:1.8}

.impression-reader{border:1px solid var(--line);background:var(--paper);min-width:0;overflow-anchor:none}
.impression-chrome{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;color:var(--muted);font:400 .857143rem/1.5 var(--mono);border-bottom:1px solid var(--line)}
.impression-kind{font-family:var(--ui)}
.impression-conversation{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,30%);align-items:stretch}
.impression-inbox{display:grid;grid-template-columns:168px minmax(0,1fr);min-width:0;align-items:stretch}
.impression-people{padding-block:12px;border-right:1px solid var(--line);background:var(--bg);min-width:0}
.impression-person{display:flex;align-items:center;gap:10px;padding:16px 12px;min-height:80px;text-decoration:none;color:var(--muted);border-left:2px solid transparent;font-size:.928571rem;line-height:1.5}
.impression-person:hover{color:var(--ink)}
.impression-person[aria-selected=true]{color:var(--ink);border-left-color:var(--accent);background:var(--soft)}
.voice-avatar{width:32px;height:32px;border-radius:50%;background:var(--paper);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font:500 1rem/1 var(--ui);flex:none;color:var(--ink)}
.voice-astra{color:var(--accent)}.voice-glm{color:#a35536}html[data-theme=dark] .voice-glm{color:#e2aa8d}
.voice-person{display:block;min-width:0}.voice-person>span{display:block;font-weight:500}.voice-person small{display:block;font:400 .857143rem/1.6 var(--mono);margin-top:6px;color:var(--muted)}
.impression-documents,.impression-document{min-width:0}
.impression-document+.impression-document{border-top:1px solid var(--line)}
.impression-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line);flex:none}
.impression-heading h3{font-size:1rem;line-height:1.6;font-weight:500;margin:0}.impression-heading p{margin:4px 0 0;font-size:.928571rem;color:var(--muted)}
.impression-heading time{font:400 .857143rem/1.6 var(--mono);color:var(--muted);white-space:nowrap}
.impression-text{padding:20px;min-width:0;background:var(--soft)}
.impression-message{background:var(--paper);border:1px solid var(--line);border-radius:0 10px 10px 10px;padding:20px;max-width:68ch}
.impression-message>p{font-size:1rem;line-height:1.95;margin:0 0 20px;text-wrap:pretty;overflow-wrap:break-word}
html[lang=en] .impression-message>p{line-height:1.9}
.impression-message footer{display:flex;gap:8px 16px;align-items:baseline;justify-content:space-between;font-size:.857143rem;color:var(--muted);line-height:1.8;margin-top:24px;flex-wrap:wrap}
.impression-reader.is-enhanced .impression-document{height:580px;display:flex;flex-direction:column}
.impression-reader.is-enhanced .impression-text{flex:1;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-gutter:stable}
.impression-reader.is-enhanced .impression-document+.impression-document{border-top:0}
.impression-contribute{min-width:0;padding:20px;border-left:1px solid var(--line);display:flex;flex-direction:column}
.impression-contribute>h3{font-size:1rem;font-weight:500;margin:0 0 20px}
.impression-contribute form{display:flex;flex-direction:column;flex:1;min-height:0}
.impression-contribute label{display:block;font-size:.928571rem;color:var(--muted);margin-bottom:8px}
.impression-contribute #impression-draft{display:block;resize:vertical;min-height:180px;max-height:440px;flex:1;width:100%;border:1px solid var(--line);padding:12px;background:var(--bg);line-height:1.85}
.impression-contribute p{font-size:.857143rem;line-height:1.8;color:var(--muted);margin:12px 0}
.impression-contribute button[type=submit]{align-self:flex-start;font-size:.928571rem;border-color:var(--accent);color:var(--accent)}
.contribution-fallback{padding-block:12px;display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;font-size:.928571rem}
.contribution-fallback a{display:inline-flex;align-items:center;min-height:44px}
.contribution-fallback p{margin:0}
.contribution-author{border:0;padding:0;margin:0 0 16px;min-width:0}.contribution-author legend{font-size:.928571rem;font-weight:500;margin:0 0 12px}.contribution-author input[type=text]{display:block;width:100%;min-height:44px;border:1px solid var(--line);background:var(--bg);padding:8px 12px;margin-bottom:8px}.contribution-author .contribution-anonymous{display:flex;align-items:center;gap:8px;min-height:44px;margin:0;font-size:.928571rem;color:var(--ink);cursor:pointer}.contribution-anonymous input{width:18px;height:18px;flex:none;accent-color:var(--accent)}.contribution-export{width:100%;min-height:100px;border:1px solid var(--line);background:var(--bg);padding:8px;font-size:1rem}
@media(min-width:701px) and (max-width:1100px){
 .impression-conversation{grid-template-columns:minmax(0,1fr) minmax(250px,34%)}
 .impression-inbox{display:block}
 .impression-people{grid-column:1/-1;display:flex;padding:4px;border-right:0;border-bottom:1px solid var(--line)}
 .impression-person{min-height:72px;flex:1;max-width:260px;border-left:0;border-bottom:2px solid transparent}
 .impression-person[aria-selected=true]{border-bottom-color:var(--accent)}
 .impression-heading{flex-wrap:wrap;gap:4px 12px}
 .impression-text{padding:16px}.impression-message{padding:16px}.impression-contribute{padding:16px}
}

.footprint-map-wrap{position:relative;min-width:0}
.footprint-map{width:100%;height:420px;background:var(--soft);border:1px solid var(--line)}
.map-status{position:absolute;left:68px;right:12px;bottom:12px;z-index:500;padding:8px 12px;background:var(--paper);font-size:.857143rem;line-height:1.7;color:var(--muted);margin:0}
.map-retry,.place-note-close{font-size:.928571rem;line-height:1.7;min-height:44px;color:var(--accent)}
.map-retry{position:absolute;right:12px;top:76px;z-index:500;max-width:calc(100% - 80px);background:var(--paper)}
.place-note-close{margin-bottom:16px}
.map-overview{position:absolute;right:12px;top:12px;min-height:44px;background:var(--paper);padding:8px 12px;border:1px solid var(--line);z-index:500}
.footprint-list{margin-top:16px}
.footprint-list>summary{display:flex;align-items:center;justify-content:space-between;min-height:44px;font-size:.928571rem;cursor:pointer;list-style:none;border-bottom:1px solid var(--line)}
.footprint-list>summary::-webkit-details-marker{display:none}
.footprint-list[open]>summary>span{transform:rotate(45deg)}
.footprint-list nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:24px;row-gap:0;padding-top:8px}
.footprint-list nav a{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-height:44px;padding-block:9px;text-decoration:none;color:var(--ink);font-size:.928571rem;line-height:1.7}
.place-level{color:var(--muted);font-size:.857143rem;white-space:nowrap}
.footprint-list nav a:hover,.footprint-list nav a[aria-current=true]{color:var(--accent)}
.place-notes{margin-top:16px}
.place-note{border-top:1px solid var(--line);min-width:0}
.place-note>summary{display:flex;align-items:baseline;gap:16px;list-style:none;min-height:44px;padding-block:10px;cursor:pointer;font-size:1rem;line-height:1.7}
.place-note>summary::-webkit-details-marker{display:none}
.place-note>summary:after{content:'+';margin-left:auto;color:var(--muted)}
.place-note[open]>summary:after{content:'−'}
.place-note>summary small{font-size:.857143rem;color:var(--muted)}
.place-note-content{padding:8px 0 24px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.place-note-content section{min-width:0}
.place-note-content h3{font-size:1rem;font-weight:500;line-height:1.6;margin:0 0 8px}
.place-note-content p{margin:0;line-height:1.8;max-width:38em}.place-note-content time{font-family:var(--mono);font-size:.857143rem;line-height:1.7;color:var(--muted);display:block;margin-top:8px}
.footprint .leaflet-control-attribution{font-size:10px;line-height:1.5}.footprint .leaflet-control-zoom a{width:44px;height:44px;line-height:44px}
.footprint .map-place-marker{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;background:transparent;cursor:pointer}
.map-marker-dot{display:block;width:11px;height:11px;flex:none;border:2px solid #f7f7f5;border-radius:50%;background:#3151c5}
.map-place-marker:focus-visible{outline:2px solid var(--accent);outline-offset:-3px;border-radius:50%}

/* Enlarged objects retain their own natural dimensions inside root-owned dialogs. */
.photo-dialog-figure{margin:0}.photo-dialog-figure img{display:block;max-width:100%;width:auto;height:auto;max-height:72vh;object-fit:contain;margin-inline:auto}
.photo-dialog-figure figcaption{font-size:.928571rem;color:var(--muted);line-height:1.8;margin-top:12px}
.drink-detail{display:grid;grid-template-columns:160px minmax(0,1fr);gap:24px;align-items:start}
.drink-figure{margin:0;align-self:start;position:sticky;top:0}
.drink-figure>.glass-art{width:140px;height:164px;margin-inline:auto}
.drink-figure>.glass-art img{width:840px;height:280px;left:calc(var(--glass)*-140px);top:-58px}
.drink-detail>.drink-recipe{min-width:0}

@media(max-width:1023px){.drink-cabinet{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 12px}.drink-item[open]{grid-column:span 3}.record-cover{flex-basis:140px;width:140px;min-width:140px;height:140px;margin-right:-28px}.record-track{min-height:178px}.footprint-list nav{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){
 .photo-pair .photo-open{flex-basis:86%}.photo-window figcaption{align-items:start;font-size:.923077rem;gap:8px}.photo-controls{font-size:.846154rem;gap:0}.photo-controls button{width:44px;min-width:44px}
 .source-link{font-size:.923077rem}.drink-cabinet{gap:16px 8px}.glass-art{width:86px;height:100px}.glass-art img{width:516px;height:172px;left:calc(var(--glass)*-86px);top:-35px}.drink-item>summary:after{top:99px;left:-4px;right:-4px}.drink-name{font-size:.923077rem;min-height:3em;margin-top:10px}.drink-kind{font-size:.846154rem}
 .drink-item[open]>.drink-recipe{padding:16px}.drink-ingredients>div{gap:16px}.drink-ingredients dd{white-space:nowrap}.drink-reference{font-size:.923077rem}
 .record-cover{width:124px;min-width:124px;flex-basis:124px;height:124px;margin-right:-18px}.record-track{padding-top:18px;min-height:160px;padding-bottom:16px}.record-information{gap:8px 12px;min-height:124px}.record-identification h3{font-size:1.153846rem;min-height:3em}.record-identification p{font-size:.923077rem;min-height:3.2em}.record-controls{gap:0;font-size:.846154rem}
 .record-preview>p{font-size:.923077rem}.record-preview audio{height:44px}
 .impression-chrome{padding:10px 12px;font-size:.846154rem;gap:4px 12px;flex-wrap:wrap}.impression-kind{font-size:.846154rem}
 .impression-conversation,.impression-inbox{display:block}
 .impression-people{position:sticky;top:0;z-index:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:4px;border-right:0;border-bottom:1px solid var(--line)}
 .impression-person{display:grid;grid-template-columns:30px minmax(0,1fr);gap:4px 8px;align-content:center;padding:8px;min-height:76px;font-size:.923077rem;border-left:0;border-bottom:2px solid transparent}.impression-person[aria-selected=true]{border-bottom-color:var(--accent)}
 .voice-avatar{width:30px;height:30px;grid-column:1;grid-row:1}.voice-person{display:contents}.voice-person>span{grid-column:2;grid-row:1}.voice-person small{grid-column:1/-1;font-size:.923077rem;margin-top:0}
 .impression-heading{padding:16px;gap:4px 12px;flex-wrap:wrap}.impression-heading h3{font-size:1rem}.impression-heading time{font-size:.923077rem}
 .impression-reader.is-enhanced .impression-document{height:auto}.impression-reader.is-enhanced .impression-text{overflow:visible;padding:12px}
 .impression-message{padding:16px;max-width:none}.impression-message>p{margin-bottom:20px}.impression-message footer{font-size:.923077rem;gap:8px;margin-top:24px}
 .impression-contribute{border-left:0;border-top:1px solid var(--line);padding:20px 16px}.impression-contribute>h3{margin-bottom:16px}.impression-contribute p{font-size:.923077rem}.impression-contribute #impression-draft{min-height:180px}
 .footprint-map{height:300px}.map-status{font-size:.846154rem}.footprint-list nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.footprint-list nav a{font-size:.923077rem;flex-wrap:wrap;justify-content:flex-start;gap:0 8px}.place-level{font-size:.846154rem}.place-note-content{grid-template-columns:1fr;gap:20px}.place-note>summary small{font-size:.846154rem}
 .drink-detail{display:flex;flex-direction:column;gap:16px;align-items:stretch}.drink-figure{position:relative;top:auto;align-self:center}.drink-figure>.glass-art{width:116px;height:136px;margin-inline:auto}.drink-figure>.glass-art img{width:696px;height:232px;left:calc(var(--glass)*-116px);top:-48px}.drink-detail>.drink-recipe{width:100%}
}
@media(prefers-reduced-motion:reduce){.photo-open img,.drink-item>summary .glass-art,.record-art{transition:none}}
@media print{.photo-controls,.record-controls,.record-preview audio,.record-preview .source-link,.footprint-map-wrap,.map-overview{display:none!important}.photo-track{overflow:visible;display:flex;flex-wrap:wrap}.photo-open,.photo-pair .photo-open{flex-basis:calc(50% - 6px)}.record-track{overflow:visible;flex-wrap:wrap;gap:8px;min-height:0}.record-cover{margin:0;transform:none!important;width:74px;height:74px;min-width:74px;flex-basis:74px;outline:none!important}.drink-cabinet{grid-template-columns:repeat(3,minmax(0,1fr))}.drink-item{break-inside:avoid}.impression-reader{border:0;max-width:none}.impression-chrome,.impression-people,.impression-contribute{display:none}.impression-conversation,.impression-inbox{display:block}.impression-reader.is-enhanced .impression-document{display:block!important;height:auto!important}.impression-reader.is-enhanced .impression-text{overflow:visible;padding-inline:0}.impression-heading{padding-inline:0}.impression-text{background:none}.impression-message{border:0;background:none;padding:0;max-width:none}.record-art{transform:none!important;outline:none!important}.footprint-list nav{grid-template-columns:repeat(4,minmax(0,1fr))}.place-note-content{grid-template-columns:1fr 1fr}.place-note{break-inside:avoid}}
