/* cyrillic-ext */
@font-face {
font-family: 'Onest';
font-style: normal;
font-weight: 400 800;
font-display: swap;
src: url(assets/onest-0.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
font-family: 'Onest';
font-style: normal;
font-weight: 400 800;
font-display: swap;
src: url(assets/onest-1.woff2) format('woff2');
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* math */
@font-face {
font-family: 'Onest';
font-style: normal;
font-weight: 400 800;
font-display: swap;
src: url(assets/onest-2.woff2) format('woff2');
unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-209F, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
/* symbols */
@font-face {
font-family: 'Onest';
font-style: normal;
font-weight: 400 800;
font-display: swap;
src: url(assets/onest-3.woff2) format('woff2');
unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AE, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F8D0-1F8D8, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FAC6, U+1FAC8, U+1FACC-1FADD, U+1FADF-1FAEB, U+1FAEF-1FAFA, U+1FB00-1FBFF;
}
/* vietnamese */
@font-face {
font-family: 'Onest';
font-style: normal;
font-weight: 400 800;
font-display: swap;
src: url(assets/onest-4.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Onest';
font-style: normal;
font-weight: 400 800;
font-display: swap;
src: url(assets/onest-5.woff2) format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Onest';
font-style: normal;
font-weight: 400 800;
font-display: swap;
src: url(assets/onest-6.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root{
--paper:#fff;
--ink:#212529;
--muted:#767984;
--accent:#6554e8;
--green:#199767;
--red:#e3475b;
--soft:#f4f4f7;
--ease:cubic-bezier(.2,.8,.2,1);
font-family:Onest,sans-serif;
color:var(--ink);
background:var(--paper);
font-synthesis:none}
*{
box-sizing:border-box}
body{
margin:0}
button,input,textarea{
font:inherit}
button,a{
-webkit-tap-highlight-color:transparent}
button{
cursor:pointer;
color:inherit}
button:disabled{
opacity:.35;
cursor:default}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{
outline:3px solid #8e80f0;
outline-offset:4px}
a{
color:inherit;
text-decoration:none}
svg{
width:22px;
height:22px;
fill:none;
stroke:currentColor;
stroke-width:1.7;
stroke-linecap:round;
stroke-linejoin:round}
.svg-defs{
position:absolute;
height:0;
width:0;
overflow:hidden}
[hidden]{
display:none!important}
.app-shell{
height:100dvh;
min-height:580px;
max-width:820px;
margin:auto;
display:flex;
flex-direction:column}
.topbar{
height:60px;
flex:none;
display:flex;
align-items:center;
gap:16px;
padding:0 24px}
.city{
display:flex;
align-items:center;
font-weight:700;
font-size:24px;
letter-spacing:-.7px}
.prototype-label{
margin-left:auto;
font-size:12px;
color:var(--muted)}
.saved-top{
display:none}
.app-shell>main{
display:flex;
flex:1;
min-height:0}
.explore-layout{
display:flex;
flex:1;
min-height:0;
padding:0 20px}
.intro,.collection-aside{
display:none}
.swipe-zone{
display:flex;
flex-direction:column;
flex:1;
min-height:0;
width:100%;
max-width:460px;
margin:0 auto}
.mobile-filters{
display:flex;
align-items:center;
justify-content:space-between;
gap:4px;
padding:0 0 8px;
flex:none}
.chip{
padding:8px 13px;
border:0;
border-radius:11px;
background:transparent;
color:var(--muted);
font-size:13px;
font-weight:500;
white-space:nowrap;
min-height:36px}
.chip.selected{
background:#f0edff;
color:#5c49dc}
.plan-settings{
display:grid;
grid-template-columns:1fr 1fr 1fr;
gap:8px;
flex:none;
margin:0 0 4px}
.plan-settings button{
display:block;
position:relative;
padding:7px 22px 7px 11px;
min-height:43px;
min-width:0;
border:0;
border-radius:10px;
background:#f6f6f8;
text-align:left}
.plan-settings small{
display:block;
color:var(--muted);
font-size:10px;
line-height:13px}
.plan-settings strong{
display:block;
font-size:12px;
line-height:18px;
font-weight:500;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis}
.plan-settings button>span{
position:absolute;
right:9px;
bottom:10px;
color:#8c8f97}
.plan-settings .is-set{
background:#f0edff}
.plan-settings .is-set strong{
color:#5c49dc}
.selection-status{
flex:none;
margin:4px 4px 0;
color:var(--muted);
font-size:11px;
line-height:1.35}
.selection-status:empty,.feed-status,.swipe-hint,.mobile-demo{
display:none}
.deck{
flex:1;
position:relative;
min-height:240px;
margin:11px 3px 0;
isolation:isolate}
.plan-card{
position:absolute;
inset:0;
display:grid;
grid-template-rows:minmax(0,1fr) auto;
overflow:hidden;
border-radius:22px;
background:#fff;
box-shadow:0 6px 22px #20222c0e,0 1px 4px #20222c08;
transform-origin:50% 75%;
touch-action:pan-y}
.plan-card>img{
position:relative;
display:block;
grid-row:1;
width:100%;
height:100%;
min-height:0;
object-fit:cover;
user-select:none;
pointer-events:none}
.plan-card>img[hidden]{
display:none}
.plan-card.is-next{
z-index:-1;
transform:translateY(8px) scale(.985);
box-shadow:0 2px 4px #20222c0a}
.plan-card.is-third{
z-index:-2;
transform:translateY(13px) scale(.965)}
.card-top{
position:absolute;
z-index:1;
left:16px;
right:16px;
top:16px;
display:flex;
align-items:flex-start;
justify-content:space-between;
gap:12px;
pointer-events:none}
.card-time{
display:block;
max-width:80%;
padding:8px 11px;
border-radius:10px;
background:#fffffff2;
color:var(--ink);
font-size:12px;
font-weight:600;
line-height:1.25;
box-shadow:0 2px 6px #00000006}
.card-time small{
display:block;
font-size:10px;
font-weight:400;
margin-top:3px;
color:#747780}
.card-index{
flex:none;
font-size:11px;
line-height:16px;
font-weight:500;
padding:7px 9px;
background:#fffffff2;
border-radius:10px;
color:#656872}
.card-content{
position:relative;
grid-row:2;
background:white;
padding:16px 20px 18px;
z-index:1}
.card-eyebrow{
display:flex;
gap:10px;
justify-content:space-between;
align-items:center;
margin-bottom:9px;
min-height:16px}
.card-topic{
color:var(--accent);
font-size:12px;
font-weight:600}
.card-content h2{
font-size:27px;
line-height:1.12;
letter-spacing:-.75px;
font-weight:650;
margin:0 0 8px;
text-wrap:balance}
.extra-long-title .card-content h2{
font-size:23px;
line-height:1.15}
.card-place{
display:flex;
align-items:center;
gap:5px;
color:#70737d;
font-size:13px;
line-height:19px;
min-width:0}
.card-place svg{
width:14px;
height:14px;
flex:none}
.card-place span{
overflow:hidden;
white-space:nowrap;
text-overflow:ellipsis}
.card-content>p{
font-size:13px;
line-height:18px;
color:#757883;
margin:7px 0 0;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap}
.card-facts{
display:grid;
grid-template-columns:1.2fr 1fr;
gap:16px;
margin-top:13px;
padding-top:12px;
border-top:1px solid #f0f0f4}
.card-budget,.card-travel{
display:flex;
flex-direction:column;
gap:3px;
min-width:0}
.card-facts small{
font-size:11px;
color:#858893;
line-height:14px}
.card-facts strong{
font-size:14px;
font-weight:600;
line-height:18px;
letter-spacing:-.2px}
.card-facts em{
display:none}
.card-open{
position:absolute;
z-index:3;
inset:0;
display:block;
border:0;
background:transparent;
width:100%;
height:100%;
padding:0;
touch-action:pan-y}
.card-open:focus-visible{
outline-offset:-4px;
border-radius:22px}
.stamp{
position:absolute;
top:25%;
z-index:4;
padding:10px 16px;
font-size:24px;
line-height:1.2;
font-weight:700;
border-radius:10px;
opacity:0;
pointer-events:none;
max-width:85%;
transform:rotate(-9deg)}
.stamp.yes{
left:22px;
background:var(--green);
color:white}
.stamp.no{
right:22px;
transform:rotate(9deg);
background:var(--red);
color:white}
.card-verification{
font-size:10px;
line-height:1.3;
display:flex;
gap:5px;
align-items:center;
flex-wrap:wrap;
color:#878a94}
.card-verification small{
display:none}
.status-label{
display:inline-flex;
align-items:center;
gap:5px;
font-weight:400}
.status-label::before{
content:'';
width:5px;
height:5px;
background:#b4b6bf;
border-radius:50%;
flex:none}
.status-label.confirmed{
color:#137951}
.status-label.confirmed::before{
background:#199767}
.status-label.unavailable{
color:#ce3347}
.status-label.unavailable::before{
background:#e3475b}
.status-label.stale{
color:#8e713c}
.check-status{
font-weight:600;
font-size:16px;
line-height:1.4}
.check-status.confirmed{
color:#137951}
.check-status.unavailable{
color:#ce3347}
.actions{
flex:none;
height:94px;
display:grid;
grid-template-columns:40px 1fr 1fr 40px;
gap:12px;
align-items:start;
padding:0 7px;
margin-top:17px}
.action{
display:flex;
align-items:center;
justify-content:center;
padding:0;
border:0;
background:transparent;
position:relative;
transition:transform 100ms var(--ease),opacity 100ms var(--ease)}
.action:active{
transform:scale(.95)}
.action.skip,.action.save{
width:64px;
height:64px;
margin:0 auto;
border-radius:50%;
box-shadow:0 5px 12px #20222c0c;
color:white}
.action.skip{
background:var(--red)}
.action.save{
background:var(--green)}
.action.skip>svg{
width:28px;
height:28px;
stroke-width:2}
.action.save>svg{
width:29px;
height:29px;
fill:currentColor;
stroke-width:0}
.action.skip>span,.action.save>span{
position:absolute;
top:calc(100% + 8px);
left:50%;
transform:translateX(-50%);
width:145px;
font-size:12px;
line-height:16px;
color:#70737d;
font-weight:500;
white-space:nowrap}
.action.undo,.action.details{
width:36px;
height:36px;
margin-top:14px;
color:#989ba5;
background:#f4f4f7;
border-radius:50%}
.action.undo svg{
width:18px;
height:18px}
.action.details span{
font-size:17px;
font-weight:600}
.bottom-nav{
height:53px;
flex:none;
padding:0 16px max(3px,env(safe-area-inset-bottom));
display:flex;
align-items:center;
justify-content:center;
gap:32px;
background:#fff}
.bottom-nav button{
border:0;
background:none;
display:flex;
align-items:center;
gap:8px;
padding:8px;
font-size:13px;
font-weight:500;
color:#9699a3;
min-height:42px}
.bottom-nav button.active{
color:var(--accent)}
.bottom-nav svg{
width:19px;
height:19px}
.saved-count{
font-size:10px;
background:#eeebff;
color:#6554e8;
min-width:18px;
height:18px;
padding:0 5px;
border-radius:7px;
display:inline-grid;
place-items:center}
.deck-empty{
height:100%;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
text-align:center;
padding:24px;
background:#fafafe;
border-radius:22px}
.deck-empty>svg{
width:34px;
height:34px;
color:#8e80f0}
.deck-empty h2{
font-size:24px;
font-weight:600;
letter-spacing:-.5px;
margin:17px 0 8px}
.deck-empty p{
font-size:14px;
line-height:1.55;
color:var(--muted);
margin:0 0 20px}
.deck-empty button{
background:var(--accent);
color:#fff;
border:0;
min-height:44px;
padding:11px 18px;
border-radius:11px;
font-size:13px}
.deck-empty #restart{
margin-top:9px;
background:transparent;
color:var(--muted);
text-decoration:underline}
.empty-state{
text-align:center;
padding:50px 20px}
.empty-state>svg{
color:var(--accent)}
.empty-state p{
color:var(--muted);
line-height:1.6}
.empty-state button{
border:0;
background:var(--accent);
color:white;
border-radius:12px;
padding:13px 18px}
.saved-view{
width:100%;
overflow-y:auto;
padding:20px 24px 30px}
.saved-heading{
display:flex;
align-items:flex-start;
justify-content:space-between;
gap:16px}
.section-label{
font-size:12px;
color:var(--muted);
margin:0 0 9px}
.saved-heading h1{
font-size:30px;
line-height:1.15;
font-weight:650;
letter-spacing:-.8px;
margin:0}
.back-button{
display:flex;
align-items:center;
gap:8px;
border:0;
background:#f2efff;
color:#5e4be0;
padding:10px 14px;
border-radius:11px;
font-size:12px}
.back-button svg{
width:16px;
height:16px}
.storage-note{
font-size:12px;
line-height:1.5;
color:var(--muted);
margin:16px 0 22px}
.saved-grid{
display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));
gap:20px}
.saved-tile{
position:relative;
background:#fff;
box-shadow:0 5px 20px #20222c0a;
border-radius:20px;
overflow:hidden}
.tile-open{
display:block;
width:100%;
padding:0;
border:0;
text-align:left;
background:none}
.tile-open>img{
display:block;
height:210px;
width:100%;
object-fit:cover}
.tile-copy{
padding:16px 18px 14px}
.tile-copy>small{
font-size:11px;
color:var(--muted)}
.tile-copy .card-verification{
margin:7px 0 10px}
.tile-copy h2{
font-size:20px;
line-height:1.2;
font-weight:600;
letter-spacing:-.3px;
margin:0 0 8px}
.tile-copy p{
font-size:13px;
line-height:1.5;
color:var(--muted);
margin:0}
.tile-remove{
position:absolute;
right:12px;
top:12px;
border:0;
border-radius:50%;
background:#fffffff2;
width:32px;
height:32px;
display:grid;
place-items:center;
color:#777b84}
.tile-remove svg{
width:16px;
height:16px}
.tile-feedback{
display:block;
width:calc(100% - 36px);
margin:0 18px 8px;
min-height:40px;
padding:8px 0;
border:0;
border-top:1px solid #f0f0f4;
background:none;
text-align:left;
font-size:12px;
color:var(--muted)}
.tile-go{
display:flex;
align-items:center;
justify-content:space-between;
width:calc(100% - 36px);
margin:0 18px 18px;
border:0;
border-radius:12px;
background:#efecff;
color:#5e4be0;
min-height:46px;
padding:11px 16px;
font-size:14px;
font-weight:600}
.tile-go svg{
width:18px;
height:18px}
.saved-poster{
padding:30px;
min-height:210px;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:12px;
color:#fff}
.saved-poster svg{
height:70px;
width:70px;
fill:none}
.saved-poster span{
font-size:16px}
.export-feedback{
border:0;
background:none;
color:var(--accent);
font-size:12px;
text-decoration:underline;
padding:0;
min-height:40px;
margin-bottom:14px}
.toast{
position:fixed;
bottom:85px;
left:50%;
z-index:20;
transform:translate(-50%,10px);
opacity:0;
pointer-events:none;
background:#282b34;
color:white;
font-size:13px;
padding:12px 18px;
border-radius:12px;
max-width:calc(100vw - 40px);
width:max-content;
transition:opacity 150ms var(--ease),transform 150ms var(--ease)}
.toast.visible{
transform:translate(-50%,0);
opacity:1}
dialog{
border:0;
padding:0;
border-radius:24px;
width:calc(100% - 24px);
max-width:540px;
max-height:90dvh;
overflow:auto;
color:var(--ink);
background:#fff;
box-shadow:0 18px 70px #0000001a}
dialog::backdrop{
background:rgba(20,22,30,.38)}
.detail-hero{
height:240px;
position:relative}
.detail-hero>img{
width:100%;
height:100%;
object-fit:cover;
display:block}
.dialog-close{
position:absolute;
right:16px;
top:16px;
border:0;
width:36px;
height:36px;
border-radius:50%;
display:grid;
place-items:center;
background:#fffffff2}
.dialog-close svg{
width:18px;
height:18px}
.detail-poster{
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:12px;
height:100%;
color:white}
.detail-poster svg{
width:90px;
height:90px}
.detail-content{
padding:24px}
.detail-type{
font-size:12px;
font-weight:500;
color:var(--accent)}
.detail-content h2{
font-size:29px;
line-height:1.15;
font-weight:650;
letter-spacing:-.6px;
margin:10px 0 16px}
.detail-content h3{
font-size:17px;
font-weight:600;
margin:22px 0 10px}
.detail-content p{
font-size:14px;
line-height:1.6;
color:#646873}
.detail-facts{
display:flex;
flex-wrap:wrap;
gap:6px}
.detail-facts>span{
background:#f4f4f7;
padding:6px 9px;
border-radius:7px;
font-size:12px;
color:#686c76}
.detail-list,.steps{
font-size:14px;
line-height:1.55;
color:#656975;
padding-left:20px}
.detail-list li,.steps li{
margin-bottom:10px}
.steps strong{
display:block;
color:#363a44;
font-weight:600}
.plan-status{
background:#fff0ed;
border-radius:10px;
padding:12px;
color:#ba4b3e!important}
.plan-breakdown{
margin-top:22px;
padding-top:10px;
border-top:1px solid #eeeeF3}
.plan-breakdown ul{
list-style:none;
padding:0}
.plan-breakdown li{
display:flex;
justify-content:space-between;
gap:18px;
padding:12px 0;
border-bottom:1px solid #f0f0f4;
font-size:13px;
line-height:1.5}
.plan-breakdown li strong{
font-size:13px;
white-space:nowrap;
font-weight:500}
.plan-breakdown small{
font-size:12px;
color:var(--muted)}
.budget-subtotal{
display:flex;
justify-content:space-between;
gap:16px;
font-weight:600;
color:#363a44!important}
.detail-content .budget-note{
font-size:12px;
color:var(--muted)}
.live-check{
padding:16px;
background:#f5f4fa;
border-radius:14px;
margin:24px 0}
.live-check h3{
margin:0 0 12px}
.live-check ul{
font-size:13px;
line-height:1.6;
padding-left:17px;
color:#686c76}
.live-check small{
font-size:12px;
color:var(--muted)}
.recheck-plan{
background:white;
color:var(--accent);
border:0;
min-height:40px;
padding:9px 13px;
border-radius:9px;
font-size:12px}
.share-plan{
border:0;
background:none;
color:var(--accent);
min-height:40px;
padding:0;
font-size:13px}
.booking-link{
display:block;
background:var(--accent);
color:white!important;
min-height:48px;
text-align:center;
border-radius:12px;
padding:13px 16px;
font-size:14px;
font-weight:600}
.detail-source{
font-size:11px!important;
color:#9598a2!important}
.detail-source a{
text-decoration:underline}
.detail-actions{
position:sticky;
bottom:0;
display:flex;
gap:12px;
padding:16px 24px max(16px,env(safe-area-inset-bottom));
background:#fff;
border-top:1px solid #f1f1f5}
.detail-actions button,.detail-actions>a{
display:flex;
align-items:center;
justify-content:center;
gap:9px;
flex:1;
min-height:46px;
padding:10px 13px;
border:0;
border-radius:12px;
font-size:13px;
font-weight:500}
.detail-actions button{
background:#efecff;
color:var(--accent)}
.detail-actions>a{
background:#f4f4f7;
color:#656975}
.detail-actions svg{
height:18px;
width:18px}
.settings-dialog{
padding:24px;
max-width:440px;
max-height:88dvh}
.settings-heading{
display:flex;
align-items:flex-start;
justify-content:space-between;
gap:16px}
.settings-heading h2{
font-size:24px;
font-weight:650;
letter-spacing:-.5px;
line-height:1.2;
margin:0 0 22px;
max-width:310px}
.settings-close{
display:grid;
place-items:center;
flex:none;
height:34px;
width:34px;
border:0;
border-radius:50%;
background:#f4f4f7;
color:#838793}
.settings-close svg{
height:17px;
width:17px}
.settings-options{
display:flex;
flex-direction:column;
gap:7px}
.settings-options button{
display:flex;
justify-content:space-between;
align-items:center;
text-align:left;
min-height:48px;
border:0;
border-radius:12px;
background:#f4f4f7;
padding:12px 15px;
font-size:15px}
.settings-options button.selected{
background:#efecff;
color:#5c49dc;
font-weight:600}
.settings-explanation{
font-size:12px;
line-height:1.6;
color:var(--muted);
margin:20px 0}
.settings-footer{
display:flex;
justify-content:space-between;
align-items:center;
padding-top:12px;
border-top:1px solid #f0f0f4;
color:var(--muted);
font-size:12px}
.settings-reset{
border:0;
background:none;
font-size:12px;
text-decoration:underline;
min-height:36px;
color:var(--muted)}
.launch-plan-name{
font-size:17px;
font-weight:600;
line-height:1.4;
margin:0 0 20px}
.launch-check-note{
font-size:12px;
line-height:1.6;
color:var(--muted)}
.launch-facts{
margin:20px 0}
.launch-facts>div{
display:grid;
grid-template-columns:76px 1fr;
gap:12px;
padding:13px 0;
border-bottom:1px solid #f0f0f4;
font-size:13px;
line-height:1.5}
.launch-facts dt{
color:var(--muted)}
.launch-facts dd{
margin:0;
font-weight:500}
.launch-facts small{
display:block;
font-size:12px;
color:var(--muted);
font-weight:400;
margin-top:4px}
.launch-primary,.launch-map{
display:flex;
align-items:center;
justify-content:center;
gap:9px;
min-height:48px;
border-radius:12px;
margin-top:12px;
padding:12px;
font-size:14px;
font-weight:600}
.launch-primary{
background:var(--accent);
color:white}
.launch-map{
background:#f4f4f7;
color:#686c76}
.launch-primary svg,.launch-map svg{
width:18px;
height:18px}
.launch-retry{
border:0;
background:none;
text-decoration:underline;
min-height:40px;
font-size:12px;
color:var(--muted)}
.launch-blocked{
font-size:13px;
line-height:1.6;
color:#c33f50}
.review-ratings,.review-issues{
padding:0;
margin:0 0 22px;
border:0}
.review-ratings legend{
position:absolute;
width:1px;
height:1px;
overflow:hidden;
clip-path:inset(50%)}
.review-ratings label{
display:block;
margin:7px 0}
.review-ratings input{
position:absolute;
opacity:0}
.review-ratings span{
display:block;
padding:13px 15px;
background:#f4f4f7;
border-radius:12px;
font-size:15px}
.review-ratings input:checked+span{
background:#efecff;
color:var(--accent);
font-weight:600}
.review-ratings input:focus-visible+span{
outline:3px solid #8e80f0;
outline-offset:3px}
.review-issues legend,.review-comment{
font-size:14px;
font-weight:500;
margin-bottom:12px}
.review-issues small,.review-comment small{
font-size:11px;
font-weight:400;
color:var(--muted)}
.review-issues label{
display:flex;
align-items:center;
gap:10px;
min-height:37px;
font-size:13px}
.review-issues input{
width:17px;
height:17px;
accent-color:var(--accent)}
.review-comment{
display:block}
.feedback-dialog textarea{
width:100%;
min-height:80px;
max-height:160px;
resize:vertical;
padding:12px;
border:0;
border-radius:12px;
background:#f4f4f7;
font-size:13px;
line-height:1.5}
.review-storage{
font-size:12px;
line-height:1.6;
color:var(--muted)}
.review-submit{
width:100%;
min-height:48px;
background:var(--accent);
color:white;
border:0;
border-radius:12px;
font-size:14px;
font-weight:600}
.visit-later{
border:0;
background:none;
display:block;
margin:10px auto 0;
min-height:40px;
font-size:13px;
color:var(--muted)}
.swipe-intro{
position:absolute;
z-index:6;
top:20%;
left:50%;
transform:translateX(-50%);
width:235px;
padding:18px;
background:#fffffffa;
box-shadow:0 8px 25px #20222c18;
color:var(--ink);
border-radius:18px;
text-align:center;
pointer-events:none;
font-size:13px;
line-height:1.5}
.swipe-intro strong{
display:block;
font-size:17px;
margin:5px 0}
.swipe-intro-hand{
font-size:30px;
color:var(--accent);
display:block;
animation:teach-swipe 1.6s var(--ease) 2}
.swipe-intro button{
pointer-events:auto;
border:0;
border-radius:10px;
background:#efecff;
color:var(--accent);
padding:10px 18px;
margin:12px auto 0;
display:block;
min-height:40px;
font-size:13px;
font-weight:500}
@keyframes teach-swipe{
0%,100%{
transform:translateX(0)}
30%{
transform:translateX(-15px)}
70%{
transform:translateX(15px)}
}
@media(min-width:701px){
.app-shell{
max-width:640px;
height:min(100dvh,1000px)}
.topbar{
height:70px}
.deck{
min-height:380px}
.swipe-zone{
max-width:440px}
.bottom-nav{
height:58px}
.saved-grid{
gap:16px}
}
@media(max-width:700px){
dialog{
margin:auto auto 12px}
.saved-grid{
grid-template-columns:1fr;
gap:20px}
.saved-heading{
flex-direction:column;
gap:14px}
.saved-view{
padding:20px}
.settings-dialog{
padding:22px}
.detail-content{
padding:22px}
.detail-actions{
padding-left:22px;
padding-right:22px}
}
@media(max-width:370px){
.topbar{
padding:0 18px;
height:52px}
.city{
font-size:23px}
.prototype-label{
font-size:10px}
.explore-layout{
padding:0 14px}
.chip{
font-size:12px;
padding:7px 8px}
.plan-settings{
gap:5px}
.plan-settings button{
padding-left:8px;
padding-right:19px}
.plan-settings strong{
font-size:11px}
.plan-settings small{
font-size:9px}
.card-content{
padding:14px 17px 15px}
.card-content h2{
font-size:24px}
.extra-long-title .card-content h2{
font-size:21px}
.card-topic{
font-size:11px}
.card-verification{
font-size:9px}
.card-facts strong{
font-size:13px}
.card-facts small{
font-size:10px}
.actions{
gap:8px;
padding:0 4px}
.action.skip,.action.save{
width:60px;
height:60px}
.action.skip>span,.action.save>span{
font-size:11px;
width:125px}
.action.undo,.action.details{
height:32px;
width:32px}
.bottom-nav{
gap:18px}
.bottom-nav button{
font-size:12px}
.settings-heading h2{
font-size:23px}
}
@media(max-width:700px) and (max-height:700px){
.app-shell{
min-height:560px}
.topbar{
height:48px}
.mobile-filters{
padding-bottom:5px}
.chip{
min-height:32px;
padding-top:6px;
padding-bottom:6px}
.plan-settings button{
min-height:39px;
padding-top:5px;
padding-bottom:5px}
.deck{
margin-top:8px;
min-height:205px}
.card-content{
padding-top:12px;
padding-bottom:13px}
.card-eyebrow{
margin-bottom:7px}
.card-content h2{
font-size:23px;
margin-bottom:7px}
.extra-long-title .card-content h2{
font-size:20px}
.card-content>p{
display:none}
.card-facts{
margin-top:10px;
padding-top:10px}
.actions{
margin-top:15px;
height:84px}
.action.skip,.action.save{
width:58px;
height:58px}
.action.undo,.action.details{
margin-top:12px}
.action.skip>span,.action.save>span{
top:calc(100% + 7px);
font-size:11px}
.bottom-nav{
height:48px}
.card-time{
font-size:11px;
padding:7px 10px}
.card-top{
top:12px;
left:12px;
right:12px}
}
@media(prefers-reduced-motion:reduce){
.action:active{
transform:none;
opacity:.85}
.swipe-intro-hand{
animation:none}
.toast{
transition:opacity 120ms var(--ease);
transform:translate(-50%,0)}
}
.card-eyebrow{
min-height:32px}
.card-eyebrow .card-verification{
max-width:180px;
flex-direction:column;
align-items:flex-end;
gap:2px;
text-align:right}
.card-eyebrow .card-verification small{
display:block;
font-size:10px;
line-height:13px;
color:#92959e}
.actions{
grid-template-columns:44px 1fr 1fr 44px}
.action.undo,.action.details{
width:44px;
height:44px;
margin-top:10px;
background:transparent}
.action.undo::before,.action.details::before{
content:'';
position:absolute;
inset:6px;
border-radius:50%;
background:#f4f4f7;
z-index:-1}
@media(max-width:370px){
.card-eyebrow .card-verification{
max-width:155px}
.actions{
grid-template-columns:44px 1fr 1fr 44px}
.action.undo,.action.details{
width:44px;
height:44px;
margin-top:8px}
}
@media(min-width:701px){
.deck{
min-height:260px}
}
:root{
--muted:#6b6f7a}
.card-facts small,.card-verification,.card-eyebrow .card-verification small,.card-time small,.card-index{
color:#737782}
.card-verification{
font-size:11px}
.card-eyebrow .card-verification small{
font-size:10px}
.action{
isolation:isolate}
.settings-close,.dialog-close,.tile-remove{
width:44px;
height:44px}
.settings-close svg,.dialog-close svg,.tile-remove svg{
width:18px;
height:18px}
@media(max-width:370px){
.card-verification{
font-size:10px}
.card-facts small{
font-size:11px}
}
.card-content h2{
display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:3;
overflow:hidden}
.bottom-nav{
height:calc(53px + env(safe-area-inset-bottom))}
.toast{
bottom:calc(77px + env(safe-area-inset-bottom))}
@media(min-width:701px){
.bottom-nav{
height:calc(58px + env(safe-area-inset-bottom))}
}
@media(max-width:700px) and (max-height:700px){
.bottom-nav{
height:calc(48px + env(safe-area-inset-bottom))}
}

.review-extra { margin: 18px 0; }
.review-extra summary { display: flex; align-items: center; justify-content: space-between; min-height: 46px; padding: 12px 14px; border-radius: 12px; background: #f4f4f7; font-size: 14px; font-weight: 500; cursor: pointer; list-style: none; }
.review-extra summary::-webkit-details-marker { display: none; }
.review-extra summary small { font-size: 11px; font-weight: 400; color: #737782; }
.review-extra[open] summary { background: #efecff; color: #6554e8; margin-bottom: 18px; }

.discovery-controls { flex: none; }
@media (min-width: 701px) {
.app-shell { max-width: 900px; }
.topbar { padding: 0 28px; }
.topbar .prototype-label { display: none; }
.saved-top { display: flex; align-items: center; gap: 9px; margin-left: auto; border: 0; border-radius: 12px; background: #f3f1fc; color: #6554e8; min-height: 44px; padding: 11px 15px; font-size: 13px; font-weight: 500; }
.saved-top svg { width: 18px; height: 18px; }
.explore-layout { padding: 0 28px 12px; }
.swipe-zone { display: grid; grid-template-columns: 170px minmax(0, 460px); grid-template-rows: minmax(0, 1fr) 108px; column-gap: 32px; justify-content: center; max-width: 760px; }
.discovery-controls { grid-column: 1; grid-row: 1 / 3; align-self: start; padding-top: 8px; }
.mobile-filters { flex-direction: column; align-items: stretch; gap: 8px; padding-bottom: 0; }
.mobile-filters .chip { text-align: left; min-height: 44px; font-size: 14px; }
.plan-settings { display: flex; flex-direction: column; gap: 10px; margin-top: 20px; }
.plan-settings button { min-height: 51px; }
.plan-settings strong { font-size: 13px; }
.plan-settings small { font-size: 11px; line-height: 16px; }
.selection-status { font-size: 12px; margin-top: 18px; }
.deck { grid-column: 2; grid-row: 1; margin: 0 3px; min-height: 240px; }
.actions { grid-column: 2; grid-row: 2; height: 94px; margin-top: 14px; }
.bottom-nav { display: none; }
}
.plan-card { grid-template-columns: minmax(0, 1fr); }
.card-content { min-width: 0; width: 100%; }
.card-eyebrow { min-width: 0; min-height: 38px; }
.card-topic { min-width: 0; flex-shrink: 0; max-width: 55%; }
.card-eyebrow .card-verification { min-width: 0; max-width: 48%; }
.card-content > p { min-width: 0; width: 100%; }
.card-place > span { min-width: 0; }

/* Color postcards: a single physical surface, an inset photo, a lively stack. */
@font-face{font-family:Unbounded;src:url('assets/unbounded-0.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:Unbounded;src:url('assets/unbounded-1.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:Unbounded;src:url('assets/unbounded-2.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}
.plan-card{background:var(--card-bg);border-radius:24px 24px 34px 24px;box-shadow:0 8px 20px #20222c14;transform-origin:50% 78%}
.plan-card>img{width:calc(100% - 34px);height:calc(100% - 34px);margin:18px 17px 16px;border:5px solid white;border-radius:13px;transform:rotate(-1.5deg);transform-origin:center;box-shadow:0 4px 8px #20222c12}
.plan-card.is-next{transform:translate(-5px,10px) rotate(-3deg) scale(.985)}.plan-card.is-third{transform:translate(7px,18px) rotate(3deg) scale(.965)}
.card-top{left:32px;right:30px;top:32px}.card-time,.card-index{border-radius:7px;box-shadow:none;background:#fff}
.card-content{background:transparent;color:var(--card-ink);padding:10px 22px 20px}
.card-content h2{font-family:Unbounded,Onest,sans-serif;font-size:25px;line-height:1.17;font-weight:600;letter-spacing:-.8px;margin-bottom:11px}.long-title .card-content h2{font-size:23px}.extra-long-title .card-content h2{font-size:20px}
.card-topic,.card-place,.card-content>p,.card-verification,.card-eyebrow .card-verification small,.card-facts small,.card-facts strong{color:var(--card-ink)}.card-topic{font-weight:600}.card-place{font-size:12px}.card-content>p{font-size:12px}.card-eyebrow{min-height:32px;margin-bottom:10px}.card-eyebrow .card-verification small{font-size:10px}
.card-content .status-label::before{background:currentColor}.card-content .status-label.confirmed{background:#e4faec;color:#13653d;border-radius:6px;padding:3px 6px}.card-content .status-label.unavailable{background:#ffe8e8;color:#a82335;border-radius:6px;padding:3px 6px}
.card-facts{border-top-color:#ffffff44;border-top-color:color-mix(in srgb,var(--card-ink) 22%,transparent);padding-top:14px;margin-top:15px}.card-facts small{font-size:11px}.card-facts strong{font-size:17px;line-height:22px;font-weight:650}.card-travel strong{font-size:14px;font-weight:500}
.action.skip,.action.save{border-radius:21px;box-shadow:0 5px 0 #20222c10,0 6px 12px #20222c08}.action.skip{background:#e3475b}.action.save{background:#199767}.action.skip>span,.action.save>span{font-weight:600;font-size:13px}.action.skip:active,.action.save:active{transform:translateY(2px) scale(.97)}
.city{font-family:Unbounded,Onest,sans-serif;font-weight:700;font-size:23px;letter-spacing:-1px}.chip.selected{background:#6751e8;color:white}.bottom-nav button.active{font-weight:600}
@media(max-width:370px){.city{font-size:21px}.card-content{padding:8px 18px 16px}.card-content h2{font-size:22px;line-height:1.18}.long-title .card-content h2{font-size:21px}.extra-long-title .card-content h2{font-size:18px}.card-facts strong{font-size:15px}.card-travel strong{font-size:12px}.action.skip>span,.action.save>span{font-size:11px}.card-top{left:28px;right:26px;top:28px}}
@media(max-width:700px) and (max-height:700px){.card-content{padding-top:6px;padding-bottom:14px}.card-content h2{font-size:21px;margin-bottom:8px}.long-title .card-content h2{font-size:20px}.extra-long-title .card-content h2{font-size:18px}.card-eyebrow{min-height:28px;margin-bottom:8px}.card-facts{margin-top:11px;padding-top:11px}.plan-card>img{margin-top:16px;margin-bottom:14px;height:calc(100% - 30px)}.card-top{top:27px}}
@media(prefers-reduced-motion:reduce){.action.skip:active,.action.save:active{transform:none;opacity:.85}}
.saved-tile{background:var(--card-bg,#fff);color:var(--card-ink,#212529);border-radius:22px 22px 30px 22px}.tile-open>img{margin:13px 13px 0;width:calc(100% - 26px);height:200px;border:4px solid #fff;border-radius:12px;transform:rotate(-1deg)}.tile-copy>small,.tile-copy p,.saved-tile .card-verification,.tile-feedback{color:var(--card-ink,#212529)}.saved-tile .card-verification small{display:block;color:var(--card-ink);font-size:10px}.tile-feedback{border-top-color:#ffffff55}.tile-go{background:white;color:#433174}.tile-copy h2{font-family:Unbounded,Onest,sans-serif;font-size:18px;font-weight:600;line-height:1.2}.saved-tile .status-label.confirmed{background:#e4faec;color:#13653d;border-radius:6px;padding:3px 6px}.saved-tile .status-label.unavailable{background:#ffe8e8;color:#a82335;border-radius:6px;padding:3px 6px}

/* User-selected reference: pastel poster surfaces and dominant type. */
.plan-card{border-radius:24px 24px 5px 5px;box-shadow:0 9px 18px -14px #20222c40}.plan-card>img{width:100%;height:100%;margin:0;border:0;border-radius:0;transform:none;box-shadow:none}.plan-card::before{content:'';position:absolute;z-index:1;right:-130px;top:-165px;width:300px;height:300px;border:40px solid var(--card-ink);opacity:.085;border-radius:50%;pointer-events:none}.card-top{left:16px;right:16px;top:16px}.card-index{background:#24232b;color:white;border-radius:9px;padding:9px 11px}.card-time{padding:10px 12px;border-radius:9px}.card-content{padding:15px 20px 19px}.card-eyebrow{min-height:22px;margin-bottom:8px}.card-place{font-size:12px;font-weight:600;line-height:18px;margin-bottom:9px}.card-place svg{display:none}.card-content h2{font-size:31px;line-height:1.04;letter-spacing:-1.5px;font-weight:700;margin-bottom:11px;text-wrap:balance}.long-title .card-content h2{font-size:27px;letter-spacing:-1px}.extra-long-title .card-content h2{font-size:23px;letter-spacing:-.6px}.card-content>p{font-size:13px;line-height:1.4;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:0}.card-facts{margin-top:14px;padding-top:12px}.card-facts strong{font-size:15px}.card-travel strong{font-size:13px}.card-content .status-label{font-size:10px}.card-content .status-label::before{opacity:.5}.saved-tile{border-radius:20px 20px 5px 5px}.tile-open>img{margin:0;width:100%;border:0;border-radius:0;transform:none}
@media(max-width:370px){.card-content h2{font-size:27px;letter-spacing:-1.2px}.long-title .card-content h2{font-size:24px}.extra-long-title .card-content h2{font-size:21px}.card-content{padding-left:17px;padding-right:17px}.card-facts strong{font-size:14px}.card-travel strong{font-size:12px}}
@media(max-width:700px) and (max-height:700px){.card-content{padding:10px 17px 13px}.card-content h2{font-size:26px}.long-title .card-content h2{font-size:23px}.extra-long-title .card-content h2{font-size:20px}.card-place{font-size:11px;margin-bottom:7px}.card-content>p{display:none}.card-eyebrow{min-height:20px;margin-bottom:6px}.card-top{left:12px;right:12px;top:12px}}
.choice-scene{position:fixed;inset:0;z-index:8;opacity:0;pointer-events:none;transition:opacity 140ms cubic-bezier(.2,.8,.2,1)}.choice-fill{position:absolute;inset:0;z-index:3;opacity:0;pointer-events:none;transition:opacity 100ms cubic-bezier(.2,.8,.2,1)}.plan-card .stamp{top:50%;left:50%;right:auto;transform:translate(-50%,-50%) rotate(-8deg);background:transparent!important;color:white!important;padding:0;border:0;font-size:clamp(28px,7vw,43px);line-height:1.15;font-weight:700;text-align:center;width:85%;max-width:85%;text-shadow:none}.plan-card .stamp.no{transform:translate(-50%,-50%) rotate(8deg)}
@media(prefers-reduced-motion:reduce){.choice-scene,.choice-fill{transition:opacity 100ms ease-out}.plan-card .stamp,.plan-card .stamp.no{transform:translate(-50%,-50%)}}

.plan-card .stamp{font-size:clamp(32px,9vw,46px)}

.choice-fill.is-reacting,.choice-scene.is-reacting{transition:none}

.card-top{align-items:flex-start;gap:10px}.card-time{font-size:11px;padding:6px 9px;border-radius:7px;line-height:1.25;max-width:calc(100% - 62px)}.card-index{font-size:10px;padding:6px 8px;border-radius:7px;margin-left:auto;line-height:1.25}.card-duration{display:flex;align-items:center;gap:5px;font-size:11px;line-height:16px;margin:0 0 9px;color:var(--card-ink)}.card-duration svg{width:13px;height:13px}.card-duration>span{margin-left:7px;font-size:10px}.card-place{margin-bottom:4px}

/* Compact decision controls: keep the card as the main surface. */
.actions{height:68px;margin-top:11px;gap:10px;grid-template-columns:44px 1fr 1fr 44px}.action.skip,.action.save{width:48px;height:48px;border-radius:16px;box-shadow:0 3px 0 #20222c0b}.action.skip>svg{width:23px;height:23px}.action.save>svg{width:24px;height:24px}.action.skip>span,.action.save>span{top:calc(100% + 5px);font-size:11px;line-height:14px;font-weight:500}.action.undo,.action.details{margin-top:2px}.bottom-nav{height:calc(47px + env(safe-area-inset-bottom))}
@media(max-width:370px){.actions{height:64px;margin-top:10px;gap:7px}.action.skip,.action.save{width:46px;height:46px;border-radius:15px}.action.skip>span,.action.save>span{font-size:10px}}
@media(max-width:700px) and (max-height:700px){.actions{height:64px;margin-top:10px}.action.skip,.action.save{width:46px;height:46px}.bottom-nav{height:calc(44px + env(safe-area-inset-bottom))}}
@media(min-width:701px){.swipe-zone{grid-template-rows:minmax(0,1fr) 80px}.actions{height:68px;margin-top:12px}}

/* Restore the user-selected desktop composition. */
@media(min-width:1100px){
.app-shell{max-width:1440px;height:100dvh;min-height:720px}.topbar{height:86px;padding:0 56px}.topbar .prototype-label{display:block;margin-left:auto;margin-right:12px}.saved-top{margin-left:0;background:transparent;color:#24232b;padding-right:0}.explore-layout{display:grid;grid-template-columns:minmax(240px,1fr) minmax(360px,450px) minmax(190px,.8fr);gap:48px;align-items:center;padding:12px 56px 22px}.intro{display:block;align-self:center;max-width:290px}.intro .section-label{display:none}.intro h1{font-family:Unbounded,Onest,sans-serif;font-size:clamp(46px,4.6vw,65px);font-weight:700;line-height:1.07;letter-spacing:-2.8px;margin:0}.intro-copy{font-size:16px;line-height:1.55;color:#73717e;margin:25px 0 36px;max-width:260px}.desktop-filters h2{font-size:14px;font-weight:650;margin:0 0 12px}.format-filters{display:flex;flex-wrap:wrap;gap:4px 14px}.format-filters .chip{padding:8px 0;min-height:36px;border-radius:0;background:none;color:#92909b;text-align:left}.format-filters .chip.selected{color:#24232b;box-shadow:0 3px #24232b}.desktop-note{display:flex;align-items:center;gap:12px;margin-top:42px;font-size:12px;line-height:1.5;color:#8a8796}.tiny-dot{width:7px;height:7px;border-radius:50%;background:#ff7059;flex:none}.swipe-zone{display:flex;flex-direction:column;width:100%;max-width:450px;height:100%;max-height:850px;min-height:0;align-self:center;margin:0}.discovery-controls{padding:0;flex:none}.discovery-controls .mobile-filters{display:none}.plan-settings{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;margin:0 0 6px}.plan-settings button{min-height:42px;padding:6px 20px 6px 9px}.plan-settings small{font-size:10px;line-height:13px}.plan-settings strong{font-size:11px;line-height:17px}.selection-status{font-size:10px;margin:4px 2px}.deck{flex:1;min-height:340px;margin:9px 4px 0}.actions{flex:none;height:68px;margin-top:15px}.collection-aside{display:block;max-width:250px}.aside-heart{display:none}.collection-aside h2{font-family:Unbounded,Onest,sans-serif;font-size:24px;line-height:1.18;letter-spacing:-1px;font-weight:700;margin:0 0 20px}.collection-aside>p{color:#8a8796;font-size:15px;line-height:1.6;margin:0 0 24px}.text-link{display:flex;align-items:center;gap:12px;background:none;border:0;padding:0;font-size:14px;font-weight:650;min-height:44px}.text-link svg{width:18px;height:18px}.saved-preview{display:flex;align-items:center;padding:30px 0 0 6px;min-height:150px}.preview-photo{width:66px;height:92px;object-fit:cover;border:3px solid white;border-radius:10px;box-shadow:0 4px 10px #20222c12;margin-right:-10px;transform:rotate(-7deg)}.preview-photo:nth-child(2){transform:rotate(6deg);margin-top:8px}.preview-photo:nth-child(3){transform:rotate(-3deg);margin-top:3px}
}
@media(min-width:1100px){.feed-status{display:block;flex:none;text-align:center;font-size:11px;line-height:16px;color:#92909b;margin:5px 0 5px}}

/* Card-only art direction. Surrounding layout remains the selected version. */
.plan-card{border-radius:23px 23px 6px 6px;box-shadow:0 12px 24px -17px #20222c55}.plan-card>img{grid-row:1;width:100%;height:100%;object-fit:cover;transform:scale(1.025);transform-origin:50% 40%}.card-content{position:relative;padding:19px 23px 21px;clip-path:polygon(0 13px,100% 0,100% 100%,0 100%);margin-top:-14px;padding-top:26px;background:var(--card-bg)}.card-content h2{font-size:34px;font-weight:700;line-height:1.03;letter-spacing:-1.65px;margin-bottom:12px}.long-title .card-content h2{font-size:29px;letter-spacing:-1.2px}.extra-long-title .card-content h2{font-size:24px;letter-spacing:-.65px}.card-eyebrow{margin-bottom:9px}.card-topic{display:inline-flex;align-items:center;padding:4px 8px;border-radius:4px;background:var(--card-ink);color:var(--card-bg);font-size:10px;line-height:13px;font-weight:600}.card-place{font-size:12px;margin-bottom:10px}.card-content>p{font-size:13px;line-height:1.45;max-height:38px}.card-facts{margin-top:15px;padding-top:14px;gap:18px}.card-facts strong{font-size:17px;font-weight:650;letter-spacing:-.3px}.card-travel strong{font-size:13px;font-weight:500}.card-index{font-weight:600;min-width:34px;text-align:center}.plan-card.is-next{transform:translate(-8px,11px) rotate(-3deg) scale(.985)}.plan-card.is-third{transform:translate(8px,17px) rotate(3deg) scale(.965)}
@media(max-width:370px){.card-content{padding:24px 18px 17px}.card-content h2{font-size:29px;letter-spacing:-1.3px}.long-title .card-content h2{font-size:25px}.extra-long-title .card-content h2{font-size:22px}.card-facts strong{font-size:15px}.card-travel strong{font-size:12px}}
@media(max-width:700px) and (max-height:700px){.card-content{padding:22px 17px 14px;margin-top:-12px}.card-content h2{font-size:27px}.long-title .card-content h2{font-size:24px}.extra-long-title .card-content h2{font-size:20px}.card-content>p{display:none}.card-eyebrow{margin-bottom:7px}.card-place{margin-bottom:7px}.card-facts{margin-top:11px;padding-top:11px}}
@media(prefers-reduced-motion:reduce){.plan-card>img{transform:none}}

/* Photo vignette: clear centre, soft edges; stays inside the photo area. */
.card-photo{position:relative;grid-row:1;grid-column:1;min-width:0;min-height:0;overflow:hidden;pointer-events:none}
.card-photo>img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.025);transform-origin:50% 40%;user-select:none}
.photo-vignette::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 42%,transparent 35%,rgba(10,14,20,.08) 65%,rgba(10,14,20,.38) 100%),linear-gradient(to bottom,rgba(10,14,20,.09),transparent 30%,transparent 65%,rgba(10,14,20,.22));}
.tile-photo{position:relative;height:200px;overflow:hidden}
.tile-photo>img{display:block;width:100%;height:100%;object-fit:cover}
.detail-hero.photo-vignette{overflow:hidden}
.detail-hero .dialog-close{z-index:1}
@media(prefers-reduced-motion:reduce){.card-photo>img{transform:none}}

/* More detail is revealed on demand; swipe cards retain their compact shape. */
.plan-editorial h3{margin:23px 0 8px}.plan-editorial p,.plan-description{font-size:15px;line-height:1.65;overflow-wrap:anywhere}
.plan-solo,.plan-pending{border-top:1px solid #24232b18;padding:16px 0;margin-top:18px}
.plan-solo summary,.plan-pending summary{font-size:14px;font-weight:600;cursor:pointer;min-height:30px;line-height:30px}
.plan-solo p{margin:8px 0 0}.plan-period-note{padding:13px 16px;background:#f5f3fa;border-radius:12px;color:#625a76}

/* Quiet card face, one image and one information block. */
.plan-card{border-radius:20px 20px 7px 7px;box-shadow:none;transform-origin:50% 80%;backface-visibility:hidden}
.plan-card::before{display:none}.plan-card.is-next{transform:translate3d(0,8px,0) scale(.985)}
.card-photo>img{transform:none}
.card-content{clip-path:none;margin-top:0;padding:18px 20px 21px;background:var(--card-bg)}
.card-place{font-size:12px;font-weight:500;line-height:17px;margin:0 0 8px;opacity:.72}
.card-content h2{font-size:28px;line-height:1.12;letter-spacing:-1.15px;margin:0 0 15px;text-wrap:pretty}
.long-title .card-content h2{font-size:25px;letter-spacing:-.8px}.extra-long-title .card-content h2{font-size:21px;letter-spacing:-.45px}
.card-essential{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;font-size:12px;line-height:18px;font-weight:500}
.card-essential>span+span{margin-left:auto}.card-top{top:16px;left:17px;right:17px}
.card-time{background:#ffffffec;color:#24232b;box-shadow:none;padding:6px 9px;font-size:11px;font-weight:500;border-radius:5px}
.action.skip,.action.save{box-shadow:none;border-radius:50%;width:48px;height:48px}.action.skip:active,.action.save:active{transform:scale(.95)}
@media(max-width:370px){.card-content{padding:16px 17px 18px}.card-content h2{font-size:24px}.long-title .card-content h2{font-size:22px}.extra-long-title .card-content h2{font-size:19px}.card-essential{font-size:11px;gap:8px}}
@media(max-width:700px) and (max-height:700px){.card-content{padding:14px 17px 16px;margin-top:0}.card-content h2{font-size:25px;margin-bottom:11px}.long-title .card-content h2{font-size:22px}.extra-long-title .card-content h2{font-size:19px}}

/* Editorial poster: photographic scene, loud type, one short punchline. */
.plan-card{border-radius:17px 17px 5px 5px}.plan-card.is-next{transform:translate3d(0,9px,0) rotate(-1.5deg) scale(.985)}
.card-photo{overflow:hidden}.card-hook{position:absolute;z-index:1;left:17px;right:28px;bottom:23px;transform:rotate(-3deg);color:var(--card-ink);font-size:18px;font-weight:750;line-height:1.42;letter-spacing:-.5px;max-width:90%;pointer-events:none}
.card-hook span{background:var(--card-bg);padding:3px 7px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.card-content{padding:17px 20px 19px}.card-place{font-size:10px;font-weight:650;letter-spacing:1px;text-transform:uppercase;opacity:.8;margin-bottom:10px}
.card-content h2{font-size:34px;font-weight:800;line-height:1.03;letter-spacing:-1.4px;text-transform:uppercase;margin-bottom:17px;text-wrap:balance}
.long-title .card-content h2{font-size:29px;letter-spacing:-1px}.extra-long-title .card-content h2{font-size:23px;letter-spacing:-.7px}
.card-essential{border-top:2px solid var(--card-ink);padding-top:10px;font-size:12px;font-weight:650;line-height:17px}
@media(max-width:370px){.card-content{padding:15px 17px 16px}.card-content h2{font-size:29px}.long-title .card-content h2{font-size:25px}.extra-long-title .card-content h2{font-size:21px}.card-hook{font-size:16px;left:14px;bottom:20px}.card-essential{font-size:11px}}
@media(max-width:700px) and (max-height:700px){.card-content h2{font-size:28px;margin-bottom:12px}.long-title .card-content h2{font-size:25px}.extra-long-title .card-content h2{font-size:21px}.card-hook{font-size:16px}.card-place{margin-bottom:8px}}

/* Tactile poster motion: one response per action. */
.card-photo>img{transition:transform 160ms cubic-bezier(.2,0,0,1)}
.plan-card:not(.is-next):active .card-photo>img{transform:scale(1.018)}
.plan-card .stamp{border:4px solid #fff;padding:17px 10px;width:82%;max-width:82%;font-family:Unbounded,Onest,sans-serif;font-size:clamp(30px,9vw,49px);letter-spacing:-1.6px;line-height:1.08;text-transform:uppercase;box-sizing:border-box}
.plan-card .stamp.yes{transform:translate(-50%,-50%) rotate(-9deg)}
.plan-card .stamp.no{transform:translate(-50%,-50%) rotate(9deg)}
#plan-dialog{border-radius:18px 18px 7px 7px;box-shadow:none}
#plan-dialog .detail-type{color:#24232b;background:var(--plan-accent,#d8fa43);padding:5px 8px;border-radius:0;font-weight:700}
#plan-dialog .detail-content>h2{font-family:Unbounded,Onest,sans-serif;font-weight:700;font-size:28px;line-height:1.12;letter-spacing:-1px}
#plan-dialog .dialog-close{background:#24232b;color:white;border:0;box-shadow:none}
::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}
::view-transition-group(plan-photo){animation-duration:300ms;animation-timing-function:cubic-bezier(.22,1,.36,1)}
::view-transition-old(plan-photo),::view-transition-new(plan-photo){height:100%;object-fit:cover;mix-blend-mode:normal;animation-duration:300ms}
@media(max-width:370px){#plan-dialog .detail-content>h2{font-size:24px}.plan-card .stamp{letter-spacing:-1px;font-size:30px}}
@media(prefers-reduced-motion:reduce){.card-photo>img{transition:none}.plan-card:not(.is-next):active .card-photo>img{transform:none}.plan-card .stamp.yes,.plan-card .stamp.no{transform:translate(-50%,-50%)}::view-transition-group(plan-photo){animation:none}}

#plan-dialog{overscroll-behavior-y:contain}#plan-dialog .detail-hero{touch-action:none;cursor:grab}#plan-dialog .detail-hero:active{cursor:grabbing}#plan-dialog .detail-hero::before{content:"";position:absolute;z-index:2;top:10px;left:50%;width:34px;height:4px;margin-left:-17px;background:#fff;border-radius:2px;pointer-events:none;box-shadow:0 1px 3px #0003}#plan-dialog::backdrop{background:rgba(20,22,30,calc(.38 - var(--pull-progress,0) * .28))}

#plan-dialog .detail-hero>img{user-select:none;-webkit-user-drag:none}

/* Filters share the poster's black ink and acid highlight. */
.mobile-filters{gap:4px;padding-bottom:7px;border-bottom:1px solid #24232b20;margin-bottom:9px}
.mobile-filters .chip{border-radius:4px;background:transparent;color:#24232b;padding:8px 10px;min-height:40px;font-size:12px;font-weight:650;transition:background-color 120ms ease,color 120ms ease,transform 120ms ease;box-shadow:none}
.mobile-filters .chip.selected{background:#24232b;color:#d8fa43;box-shadow:none}
.mobile-filters .chip:active{transform:scale(.96)}
.plan-settings{gap:7px}
.plan-settings button{background:#fff;border:1px solid #24232b35;border-radius:4px;min-height:46px;padding:7px 20px 7px 9px;transition:transform 120ms ease,background-color 120ms ease}
.plan-settings small{font-size:9px;letter-spacing:.8px;text-transform:uppercase;font-weight:650;line-height:12px;color:#77767d}
.plan-settings strong{color:#24232b;font-size:11px;font-weight:650;line-height:18px}
.plan-settings button>span{color:#24232b;right:8px;bottom:10px;font-weight:700}
.plan-settings .is-set{background:#d8fa43;border-color:#d8fa43}.plan-settings .is-set strong{color:#24232b}.plan-settings .is-set small{color:#4b542c}
.plan-settings button:active{transform:translateY(1px)}
#settings-dialog{border-radius:16px 16px 5px 5px;background:#fff;padding:23px;box-shadow:none}
#settings-dialog .settings-heading h2{font-family:Unbounded,Onest,sans-serif;font-size:23px;font-weight:700;letter-spacing:-.8px;text-transform:uppercase;line-height:1.18}
#settings-dialog .settings-close{background:#24232b;color:#fff}
#settings-dialog .settings-options{gap:0;border-top:2px solid #24232b}
#settings-dialog .settings-options button{background:#fff;border-radius:0;border-bottom:1px solid #24232b25;min-height:51px;padding:12px 13px;font-weight:500;transition:background-color 120ms ease}
#settings-dialog .settings-options button.selected{background:#d8fa43;color:#24232b;font-weight:700}
#settings-dialog .settings-options button.selected>span{display:grid;place-items:center;width:24px;height:24px;background:#24232b;color:#d8fa43;border-radius:50%;font-size:13px}
#settings-dialog .settings-footer{border-top:2px solid #24232b;color:#24232b}
#settings-dialog .settings-reset{color:#24232b;font-weight:650;text-underline-offset:3px}
@media(min-width:1100px){.format-filters .chip.selected{color:#24232b;box-shadow:0 3px #24232b;background:#d8fa43}.format-filters .chip{padding:8px 5px}.plan-settings button{min-height:46px}}
@media(max-width:370px){.mobile-filters .chip{padding:8px 7px;font-size:11px}.plan-settings{gap:5px}.plan-settings button{padding-left:7px}.plan-settings strong{font-size:10px}.plan-settings small{font-size:8px;letter-spacing:.6px}#settings-dialog{padding:19px}#settings-dialog .settings-heading h2{font-size:20px}}
@media(prefers-reduced-motion:reduce){.mobile-filters .chip,.plan-settings button,#settings-dialog .settings-options button{transition:none}}
