.tl{gap:var(--space-5);flex-direction:column;display:flex}.tl-intro{max-width:62ch;color:var(--text-secondary);margin:0;line-height:1.6}.tl-ended{padding:var(--space-3)var(--space-4);border:1px solid var(--color-accent-gold);border-radius:var(--radius-sm);color:var(--color-accent-gold);margin:0}.tl-origin{gap:var(--space-2);flex-direction:column;max-width:420px;display:flex}.tl-origin>span{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:600}.tl-origin input{background:var(--bg-primary);border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text-primary);font:inherit;padding:.75rem .9rem}.tl-origin input:focus{outline:2px solid var(--color-primary);outline-offset:2px;border-color:var(--color-primary)}.tl-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));margin:0;padding:0;list-style:none;display:grid}.tl-card{align-items:flex-start;gap:var(--space-4);height:100%;padding:var(--space-5);background:var(--bg-card);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:inherit;transition:border-color var(--transition-fast);text-decoration:none;display:flex}.tl-card:hover{border-color:var(--color-primary)}.tl-card:focus-visible{border-color:var(--color-primary)}.tl-icon{color:var(--color-primary);flex-shrink:0;font-size:1.9rem}.tl-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.tl-text strong{color:var(--text-primary);font-size:1.05rem}.tl-text span{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.5}.tl-text em{margin-top:var(--space-1);font-style:normal;font-family:var(--font-family-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-tertiary);font-size:.7rem}.tl-go{color:var(--text-tertiary);flex-shrink:0}.tl-card:hover .tl-go{color:var(--color-primary)}.tl-note{max-width:62ch;color:var(--text-tertiary);margin:0;font-size:.82rem;line-height:1.6}.fp{gap:var(--space-3);padding:var(--space-5);background:var(--bg-card);border:1px solid var(--glass-border);border-left:3px solid var(--color-primary);border-radius:var(--radius-md);flex-direction:column;display:flex}.fp h3{align-items:center;gap:var(--space-2);margin:0;font-size:1.5rem;line-height:1.1;display:flex}.fp h3 svg{color:var(--color-primary)}.fp-hint,.fp-sub{color:var(--text-secondary);margin:0;line-height:1.5}.fp-sub{font-family:var(--font-family-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-tertiary);font-size:.74rem}.fp-airport h4{align-items:baseline;gap:var(--space-2);margin:var(--space-2)0;flex-wrap:wrap;font-size:1.05rem;display:flex}.fp-airport h4 span{font-family:var(--font-family-mono);color:var(--text-tertiary);font-size:.8rem}.fp-airport h4 small{color:var(--text-tertiary);font-size:.8rem;font-weight:400}.fp-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.fp-list a{align-items:center;gap:var(--space-3);padding:var(--space-3)var(--space-4);background:var(--bg-primary);border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:inherit;grid-template-columns:5.5rem 1fr auto;text-decoration:none;display:grid}.fp-list a:hover{border-color:var(--color-primary)}.fp-list a:focus-visible{border-color:var(--color-primary)}.fp-price{font-family:var(--font-family-display);color:var(--color-primary);font-size:1.5rem;font-weight:400}.fp-dates{color:var(--text-primary)}.fp-meta{font-size:var(--font-size-sm);color:var(--text-secondary);grid-column:2}.fp-go{font-size:var(--font-size-sm);color:var(--text-secondary);grid-area:1/3/span 2;align-items:center;gap:4px;display:inline-flex}.fp-list a:hover .fp-go{color:var(--color-primary)}.fp-note{color:var(--text-tertiary);margin:0;font-size:.8rem;line-height:1.5}@media (max-width:560px){.fp-list a{grid-template-columns:1fr auto}.fp-dates,.fp-meta{grid-column:1}.fp-price{grid-area:1/2}.fp-go{grid-area:auto/1/auto/-1}}.fp-tag{margin-left:var(--space-2);border:1px solid var(--color-accent-gold);border-radius:var(--radius-full);color:var(--color-accent-gold);white-space:nowrap;padding:1px 8px;font-size:.7rem;font-style:normal}.fp-alt{padding-top:var(--space-3);border-top:1px dashed var(--glass-border)}
.festival-detail-container{max-width:1120px;padding-bottom:var(--space-12);margin:0 auto}.festival-detail-container.content-with-fixed-header{padding-top:0!important}.festival-detail-loading,.festival-detail-error{text-align:center;background:var(--bg-card);border:1px solid var(--glass-border);border-radius:var(--radius-lg);min-height:360px;padding:var(--space-8);margin:var(--space-8)0;flex-direction:column;justify-content:center;align-items:center;display:flex}.loading-spinner{border:3px solid rgba(var(--color-primary-rgb),.2);border-top-color:var(--color-primary);width:44px;height:44px;margin-bottom:var(--space-4);border-radius:50%;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.back-button{margin-top:var(--space-4);align-items:center;gap:var(--space-2);border:1px solid var(--color-primary);border-radius:var(--radius-sm);color:var(--color-primary);font:inherit;cursor:pointer;background:0 0;padding:.6rem 1.2rem;font-weight:600;display:inline-flex}.back-button:hover{background:var(--color-primary);color:#0c0b09}.ft{z-index:var(--z-sticky);gap:var(--space-1);margin:var(--space-6)0 var(--space-8);background:var(--bg-primary);border-bottom:1px solid var(--glass-border);scrollbar-width:none;display:flex;position:-webkit-sticky;position:sticky;top:72px;overflow-x:auto}.ft::-webkit-scrollbar{display:none}.ft-tab{padding:var(--space-4)var(--space-5);color:var(--text-tertiary);font-family:var(--font-family-mono);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;flex:none;font-size:.78rem;position:relative}.ft-tab:after{content:"";left:var(--space-5);right:var(--space-5);background:var(--color-primary);transform-origin:0;height:2px;transition:transform var(--transition-base)var(--ease-out-expo);position:absolute;bottom:-1px;transform:scaleX(0)}.ft-tab:hover,.ft-tab.is-active{color:var(--text-primary)}.ft-tab.is-active:after{transform:scaleX(1)}.festival-detail-content{min-height:240px}.detail-section{animation:fd-in var(--transition-base)var(--ease-out-expo)}@keyframes fd-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.section-main-title{margin:0 0 var(--space-6);font-family:var(--font-family-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-primary);border:none;padding:0;font-size:.78rem;font-weight:400;line-height:1.4}.section-main-title:before,.section-main-title:after{display:none}.festival-details-card{box-shadow:none;background:0 0;border:none;margin:0;padding:0}.section-title{margin:var(--space-6)0 var(--space-3);font-family:var(--font-family-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-primary);border:none;padding:0;font-size:.78rem;font-weight:400}.radio-cross-link{align-items:center;gap:var(--space-4);margin-top:var(--space-8);padding:var(--space-4)var(--space-5);background:var(--bg-card);border:1px solid var(--glass-border);border-left:3px solid var(--color-secondary);border-radius:var(--radius-md);display:flex}.radio-cross-link-icon{color:var(--color-secondary);flex-shrink:0;font-size:1.6rem}.radio-cross-link a{color:var(--text-primary);text-underline-offset:3px;text-decoration:underline}.radio-cross-link a:hover{color:var(--color-secondary)}@media (max-width:768px){.ft{top:var(--header-height-mobile);margin:var(--space-4)calc(-1*var(--space-4))var(--space-6);padding:0 var(--space-2)}.ft-tab{padding:var(--space-3)var(--space-4)}.ft-tab:after{left:var(--space-4);right:var(--space-4)}}@media (prefers-reduced-motion:reduce){.detail-section{animation:none}.ft-tab:after{transition:none}}
.rs{margin-top:var(--space-8);padding:var(--space-5);background:var(--bg-card);border:1px solid var(--glass-border);border-left:3px solid var(--color-secondary);border-radius:var(--radius-md)}.rs-head{align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}.rs-head>svg{color:var(--color-secondary);flex-shrink:0;font-size:1.8rem}.rs-head h3{margin:0;font-size:1.6rem;line-height:1.1}.rs-head p{margin:var(--space-1)0 0;font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.5}.rs-list{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));margin:0;padding:0;list-style:none;display:grid}.rs-card{align-items:center;gap:var(--space-3);height:100%;padding:var(--space-3);background:var(--bg-primary);border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:inherit;transition:border-color var(--transition-fast);text-decoration:none;display:flex}.rs-card:hover{border-color:var(--color-secondary)}.rs-card:focus-visible{border-color:var(--color-secondary)}.rs-logo{border-radius:var(--radius-sm);object-fit:cover;background:var(--bg-elevated);flex-shrink:0;width:48px;height:48px}.rs-logo-fallback{font-family:var(--font-family-display);color:var(--color-secondary);place-items:center;font-size:1.2rem;display:grid}.rs-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.rs-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.rs-meta{font-family:var(--font-family-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);font-size:.7rem}.rs-tags{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.rs-tags span{border:1px solid var(--glass-border);border-radius:var(--radius-full);color:var(--text-secondary);padding:1px 8px;font-size:.72rem}.rs-go{color:var(--text-tertiary);flex-shrink:0}.rs-card:hover .rs-go{color:var(--color-secondary)}.rs-more{align-items:center;gap:var(--space-1);margin-top:var(--space-4);color:var(--text-secondary);font-size:var(--font-size-sm);text-underline-offset:3px;display:inline-flex}.rs-more:hover{color:var(--text-primary)}
