/*
Theme Name: Nuno Journal
Author: Nuno Batista
Description: Um diário editorial de fotografia e viagens.
Version: 1.1.4
*/
:root{--paper:#f4f1e9;--ink:#282a25;--muted:#76776c;--line:#d5d5c9;--accent:#a44d35;--serif:'DM Serif Display',Georgia,'Times New Roman',serif;--sans:Manrope,Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.6}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}img{display:block;max-width:100%}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.03;letter-spacing:-.045em}em{font-weight:400;color:var(--accent)}.wrap{width:calc(100% - 128px);max-width:1440px;margin-left:auto;margin-right:auto}.site-header{min-height:117px;margin:0 64px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:30px}.wordmark{font-family:var(--serif);font-size:32px;line-height:1;letter-spacing:-1.8px;white-space:nowrap}.wordmark span{display:block;font:9px var(--sans);letter-spacing:2.4px;text-transform:uppercase;margin-top:13px}.site-header nav{display:flex;gap:33px;align-items:center;font-size:12px}.site-header nav a{position:relative;padding:14px 0}.site-header nav a[aria-current=page]:after{content:'';position:absolute;bottom:4px;left:0;width:17px;height:2px;background:var(--accent)}.menu-toggle{display:none}.eyebrow{text-transform:uppercase;font-size:10px;letter-spacing:2px;line-height:1.5;font-weight:500}.home-intro{padding:64px 0 45px}.home-intro>.eyebrow{display:flex;justify-content:space-between;align-items:center}.tiny-star{font-size:29px;color:var(--accent)}h1{font-size:clamp(65px,7.8vw,125px)}.home-intro h1{margin-top:27px}.intro-bottom{display:flex;justify-content:space-between;align-items:flex-end;margin-top:28px}.intro-bottom p,.teaser-inner p{font-size:13px;line-height:1.7;color:var(--muted)}.text-link{display:inline-flex;gap:35px;align-items:center;font-size:11px;border-bottom:1px solid var(--ink);padding:12px 0;line-height:1.4}.text-link span{font-size:20px;line-height:1}.cover{position:relative;height:clamp(300px,43vw,660px);overflow:hidden;background:#d8d9cd}.cover>img{height:100%;width:100%;object-fit:cover}.cover figcaption{position:absolute;bottom:12px;right:16px;font-size:9px;padding:4px 8px;color:#fff;background:#0006;max-width:90%}.cover-placeholder{height:100%;background:linear-gradient(160deg,#bfc9bb 0%,#d9dbc9 43%,#7d8a76 43.2%,#657661 53%,#293d32 100%);display:flex;justify-content:center;flex-direction:column;align-items:center;color:#fff;position:relative}.cover-placeholder>span{font-size:10px;letter-spacing:4px}.cover-placeholder>p{font:italic clamp(26px,4vw,58px) var(--serif);margin-top:18px;text-align:center}.cover-placeholder>i{font-size:120px;font-style:normal;position:absolute;bottom:15px;opacity:.4}.section{padding:94px 0 100px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:44px}h2{font-size:clamp(36px,4vw,60px)}.section-heading h2{margin-top:20px}.section-heading>.text-link{margin-bottom:4px}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 22px}.photo-item{margin:0}.photo-open{display:block;border:0;padding:0;background:transparent;width:100%;text-align:left;overflow:hidden}.photo-open img{height:340px;width:100%;object-fit:cover;transition:transform .6s}.photo-open:hover img{transform:scale(1.035)}.photo-item:nth-child(3n+2) .photo-open img{height:420px}.photo-caption{padding-top:13px;display:flex;justify-content:space-between;gap:12px;align-items:baseline}.photo-caption strong{font-size:12px;font-weight:400}.photo-caption span{font-size:9px;color:var(--muted);text-align:right}.empty-state{padding:45px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-column:1/-1;display:flex;gap:25px;align-items:center}.empty-state .empty-symbol{font:44px var(--serif);color:var(--accent)}.empty-state h3{font-size:27px;letter-spacing:-.02em;margin-bottom:9px}.empty-state p{font-size:12px;color:var(--muted)}.travel-teaser{background:#e4e5da;padding:75px 0 83px}.teaser-inner{display:grid;grid-template-columns:1fr 2.7fr 1.3fr;gap:35px;align-items:start}.teaser-inner h2{font-size:clamp(40px,4.5vw,70px)}.teaser-inner>div{align-self:end}.teaser-inner .text-link{margin-top:22px}.about-strip{padding:95px 0;display:grid;grid-template-columns:1fr 2.7fr 1.3fr;gap:35px;align-items:start}.about-strip p{font:36px/1.2 var(--serif);letter-spacing:-1px;max-width:620px}.about-strip .text-link{align-self:end;justify-self:end}.site-footer{border-top:1px solid var(--line);padding:47px 0 20px}.footer-top{display:flex;align-items:center;justify-content:space-between;padding-bottom:55px}.footer-top p{font:24px/1.25 var(--serif);letter-spacing:-.6px;margin-left:auto;margin-right:15%}.back-top{height:42px;width:42px;border:1px solid var(--line);display:grid;place-items:center;font-size:20px;border-radius:50%}.footer-bottom{border-top:1px solid var(--line);display:flex;justify-content:space-between;padding-top:18px;font-size:9px;color:var(--muted)}.page-intro{padding:65px 0 58px}.page-intro h1{margin:26px 0 25px}.page-intro>p{font-size:13px;color:var(--muted)}.gallery-section{padding-bottom:100px}.gallery-toolbar{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;margin-bottom:35px;padding-top:20px;gap:20px}.filters{display:flex;flex-wrap:wrap;gap:9px}.filter-button{background:none;border:1px solid transparent;font-size:10px;padding:8px 17px;border-radius:30px}.filter-button[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:var(--paper)}.small-meta{font-size:10px;color:var(--muted)}.travel-section{padding-bottom:100px}.map-heading{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:20px 0}.travel-section #travel-map{height:480px;z-index:1;background:#dce1d7}.map-unavailable{height:100%;display:flex;justify-content:center;align-items:center;flex-direction:column;color:var(--muted);background:repeating-linear-gradient(0deg,transparent,transparent 59px,#bcc7b555 60px),repeating-linear-gradient(90deg,transparent,transparent 79px,#bcc7b555 80px)}.map-unavailable strong{font:40px var(--serif);font-weight:400;color:var(--ink)}.map-unavailable p{font-size:12px;margin-top:10px}.trip-list{margin-top:35px}.trip-item{display:grid;grid-template-columns:70px 1fr 1fr auto;gap:25px;border-bottom:1px solid var(--line);padding:28px 0;align-items:baseline}.trip-item>.trip-number{font:20px var(--serif);color:var(--accent)}.trip-item h3{font-size:29px}.trip-item p{font-size:12px;color:var(--muted)}.trip-item button{border:0;background:none;font-size:11px}.trip-item small{font-size:10px;color:var(--muted)}.about-body{display:grid;grid-template-columns:1fr 1.1fr;gap:12%;padding-bottom:110px;align-items:center}.about-mark{background:#dfe2d7;height:475px;display:flex;flex-direction:column;align-items:center;justify-content:center;font:italic 150px var(--serif);letter-spacing:-15px;color:#687762}.about-mark span{font:10px/1.8 var(--sans);letter-spacing:3px;text-align:center;text-transform:uppercase;margin-top:10px}.about-body h2{margin:24px 0 28px}.prose{font-size:14px;color:var(--muted);max-width:450px}.prose p+p{margin-top:17px}.about-body .text-link{margin-top:28px}.calendar-layout{display:grid;grid-template-columns:2.2fr 1fr;gap:70px;margin-bottom:110px}.calendar-controls{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;border-top:1px solid var(--line);padding-top:24px}.calendar-controls h2{font-size:27px;letter-spacing:-.7px;text-transform:capitalize}.calendar-controls>div{display:flex;align-items:center;gap:8px}.icon-button{border:1px solid var(--line);width:36px;height:36px;border-radius:50%;background:transparent;font-size:18px}.quiet-button{border:0;background:none;font-size:11px}.weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr)}.weekdays{font-size:9px;letter-spacing:1px;color:var(--muted);padding-bottom:15px;text-align:center}.calendar-day{aspect-ratio:1.12;border:0;border-top:1px solid var(--line);background:none;position:relative;font-size:12px}.calendar-day:hover{background:#e6e6dc}.calendar-day.outside{color:#b0b0a5}.calendar-day.is-today{font-weight:bold;color:var(--accent)}.calendar-day.selected{background:var(--ink);color:var(--paper)}.calendar-day.has-events:after{content:'';position:absolute;bottom:15%;left:calc(50% - 2px);height:4px;width:4px;border-radius:50%;background:var(--accent)}.calendar-day.selected:after{background:var(--paper)}.day-agenda{border-top:1px solid var(--line);padding-top:24px}.day-agenda h3{font-size:30px;margin:23px 0 30px;line-height:1.2}.agenda-empty{font-size:12px;color:var(--muted);padding-top:19px;border-top:1px solid var(--line)}.event-item{padding:20px 0;border-top:1px solid var(--line)}.event-item h4{font:23px var(--serif);margin:0 0 12px}.event-item p,.event-item time{font-size:12px;color:var(--muted)}.event-item time{display:block;color:var(--accent);margin-bottom:6px}.skip-link{position:fixed;top:-80px;left:20px;z-index:9999;background:var(--ink);color:#fff;padding:12px}.skip-link:focus{top:10px}#lightbox{position:fixed;border:0;padding:70px 80px 50px;background:#171b17;color:var(--paper);width:100vw;max-width:none;height:100dvh;max-height:none;overflow:hidden}#lightbox::backdrop{background:#171b17}#lightbox[open]{display:flex;align-items:center;justify-content:center}#lightbox figure{max-width:1100px;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center}#lightbox img{max-height:calc(100dvh - 180px);max-width:100%;object-fit:contain;margin:auto}#lightbox figcaption{display:flex;justify-content:space-between;gap:20px;font-size:12px;padding-top:20px}#lightbox-location{color:#a8b1a2;font-size:10px}.lightbox-close{position:absolute;top:20px;right:24px}.lightbox-prev{position:absolute;left:20px;top:50%}.lightbox-next{position:absolute;right:20px;top:50%}#lightbox .icon-button{border-color:#586052;color:var(--paper)}#lightbox-counter{position:absolute;top:27px;left:30px;font-size:11px;color:#a8b1a2}.leaflet-container{font-family:var(--sans)!important}.leaflet-popup-content h3{font:22px var(--serif);margin-bottom:5px}.leaflet-popup-content p{font-size:11px}
@media(min-width:1700px){.site-header{max-width:1440px;margin:auto}.home-intro{padding-top:75px}}@media(max-width:1000px){.wrap{width:calc(100% - 72px)}.site-header{margin:0 36px}.site-header nav{gap:19px}.teaser-inner,.about-strip{grid-template-columns:1fr 2fr}.teaser-inner>div,.about-strip>.text-link{grid-column:2;justify-self:start}.photo-open img{height:250px}.photo-item:nth-child(3n+2) .photo-open img{height:320px}.calendar-layout{gap:30px;grid-template-columns:2fr 1fr}.trip-item{grid-template-columns:40px 1fr 1fr}.trip-item>button{grid-column:2}.about-body{gap:7%}.about-mark{height:400px}.footer-top p{margin-right:8%}}
@media(max-width:700px){.wrap{width:calc(100% - 40px)}.site-header{min-height:92px;margin:0 20px;position:relative}.wordmark{font-size:27px}.wordmark span{font-size:8px;letter-spacing:1.8px;margin-top:10px}.menu-toggle{display:flex;gap:20px;align-items:center;background:none;border:0;padding:10px 0;font-size:11px}.menu-toggle span{font-size:22px}.site-header nav{display:none;position:absolute;top:91px;left:-20px;right:-20px;background:var(--paper);padding:20px;z-index:10;border-bottom:1px solid var(--line);flex-direction:column;gap:0;align-items:stretch}.site-header nav.is-open{display:flex}.site-header nav a{padding:10px 0}.site-header nav a[aria-current=page]:after{bottom:7px}.home-intro{padding:32px 0}.eyebrow{font-size:8px;letter-spacing:1.5px}.tiny-star{font-size:22px}.home-intro h1{font-size:clamp(52px,11.2vw,77px);margin-top:28px;letter-spacing:-3px}.intro-bottom{margin-top:25px;align-items:start;gap:20px;flex-direction:column}.intro-bottom p{font-size:12px}.text-link{font-size:10px;gap:25px}.intro-bottom .text-link{align-self:flex-end;margin-top:-8px}.cover{height:380px}.cover-placeholder>p{max-width:250px;line-height:1.15}.cover-placeholder>span{font-size:8px;letter-spacing:2px}.section{padding:55px 0}.section-heading{gap:24px;align-items:start;margin-bottom:28px}.section-heading h2{font-size:35px;margin-top:15px}.section-heading>.text-link{max-width:105px;gap:10px;align-self:flex-end}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:27px 13px}.photo-open img,.photo-item:nth-child(3n+2) .photo-open img{height:220px}.photo-caption{display:block;padding-top:9px}.photo-caption strong{font-size:11px}.photo-caption span{display:block;text-align:left;font-size:9px;margin-top:3px}.home-grid .photo-item:last-child:nth-child(odd){display:none}.empty-state{padding:30px 0;gap:17px}.empty-state h3{font-size:23px}.empty-state p{font-size:11px}.travel-teaser{padding:45px 0}.teaser-inner,.about-strip{grid-template-columns:1fr;gap:25px}.teaser-inner h2{font-size:45px}.teaser-inner>div,.about-strip>.text-link{grid-column:auto}.teaser-inner p{font-size:12px}.teaser-inner .text-link{margin-top:15px}.about-strip{padding:50px 0}.about-strip p{font-size:31px}.site-footer{padding-top:30px}.footer-top{gap:24px;flex-wrap:wrap;padding-bottom:30px}.footer-top p{margin:0;order:3;width:100%;font-size:21px}.back-top{margin-left:auto}.footer-bottom{font-size:8px;flex-wrap:wrap;gap:12px}.footer-bottom>span:nth-child(2){display:none}.footer-bottom>a{margin-left:auto}.page-intro{padding:40px 0}.page-intro h1{font-size:66px;margin:23px 0}.page-intro>p{font-size:12px}.gallery-toolbar{align-items:start;flex-direction:column;gap:15px;padding-top:15px}.filters{gap:3px}.filter-button{font-size:9px;padding:7px 11px}.gallery-section,.travel-section{padding-bottom:55px}.travel-section #travel-map{height:370px}.trip-item{grid-template-columns:25px 1fr;gap:15px}.trip-item>p{grid-column:2}.trip-item h3{font-size:25px}.about-body{grid-template-columns:1fr;gap:35px;padding-bottom:65px}.about-mark{height:310px;font-size:120px}.about-body h2{font-size:38px}.calendar-layout{grid-template-columns:1fr;margin-bottom:60px;gap:35px}.calendar-controls h2{font-size:25px}.calendar-day{aspect-ratio:1.1}.day-agenda h3{font-size:28px;margin:17px 0 20px}#lightbox{padding:65px 42px 50px}.lightbox-prev{left:5px}.lightbox-next{right:5px}#lightbox .icon-button{width:30px;height:30px}.lightbox-close{right:15px}#lightbox figcaption{display:block}#lightbox-location{display:block;margin-top:4px}#lightbox img{max-height:calc(100dvh - 200px)}.map-unavailable strong{font-size:31px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}


.cover.has-frame{background:#e3dfd4;border:9px solid #3f4138;box-shadow:0 12px 24px #282a251a;overflow:hidden}.has-frame>img{object-fit:contain}.frame-stage{position:absolute;inset:0;background:#181b17}.frame-stage img{position:absolute;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity 900ms ease}.frame-stage img.is-active{opacity:1}.frame-controls{position:absolute;z-index:2;bottom:16px;left:18px;right:18px;display:flex;align-items:center;gap:6px;color:#fff}.frame-caption{margin-right:auto;font-size:11px;background:#181b17a6;padding:7px 11px;border-radius:3px;max-width:65%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.frame-controls button{background:#181b17bd;color:#fff;border:1px solid #ffffff4d;border-radius:50%;width:38px;height:38px;font-size:17px}.frame-controls button:hover{background:#a44d35}.frame-controls button:disabled{opacity:.4}@media(max-width:600px){.cover.has-frame{border-width:5px}.frame-controls{bottom:10px;left:10px;right:10px}.frame-caption{font-size:9px;max-width:50%}.frame-controls button{width:33px;height:33px}}@media(prefers-reduced-motion:reduce){.frame-stage img{transition:none}}

/* Fixed mean aperture ratio; nine-slice oak preserves corners and rail thickness. */
.cover.has-frame{--photo-ratio:1.5;--frame-side:clamp(44px,10vw,124px);--frame-top:calc(var(--frame-side)*191/248);--frame-bottom:calc(var(--frame-side)*200/248);width:min(calc(100% - 128px),calc(72svh*var(--photo-ratio) + var(--frame-side)*2));max-width:1100px;height:auto;aspect-ratio:auto;border-style:solid;border-width:var(--frame-top) var(--frame-side) var(--frame-bottom);border-image:url('assets/oak-picture-frame-transparent.png') 191 248 200 248 stretch;background:transparent;box-shadow:none;overflow:visible;margin-bottom:58px}
.cover.has-frame .frame-stage{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:var(--photo-ratio);background:transparent;overflow:hidden}
.cover.has-frame .frame-stage img{inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.cover.has-frame .frame-controls{bottom:calc(-1*var(--frame-bottom) - 45px);left:calc(-1*var(--frame-side) + 16px);right:calc(-1*var(--frame-side) + 16px);color:var(--ink)}
.cover.has-frame .frame-caption{background:none;color:var(--muted);padding-left:0;min-width:0;flex:1;max-width:none}
.cover.has-frame .frame-controls button{flex-shrink:0}
.cover.has-frame .frame-controls button{background:transparent;color:var(--ink);border-color:var(--line)}
.cover.has-frame .frame-controls button:hover{background:var(--ink);color:var(--paper)}
@media(max-width:600px){.cover.has-frame{--frame-side:clamp(34px,11vw,60px);width:min(calc(100% - 40px),calc(65svh*var(--photo-ratio) + var(--frame-side)*2));margin-bottom:54px}.cover.has-frame .frame-controls{bottom:calc(-1*var(--frame-bottom) - 43px);left:calc(-1*var(--frame-side) + 8px);right:calc(-1*var(--frame-side) + 8px)}}
