:root{--color-bg-page:#10172A;--color-bg:#172038;--color-surface:#1F2A47;--color-surface-raised:#273457;--color-surface-sunken:#1B2440;--color-image-placeholder:#2A3658;--color-text:#F3ECDD;--color-text-muted:#B9B2A3;--color-text-soft:#DDD5C5;--color-text-subtle:#9C9686;--color-gold:#D6B064;--color-gold-bright:#E6C165;--color-vermilion:#E8846A;--color-on-gold:#172038;--color-border:#33406A;--color-border-strong:#4A5788;--color-divider:#2C3860;--scrim-photo-bottom:linear-gradient(180deg,rgba(16,23,42,0) 35%,rgba(16,23,42,0.92));--scrim-hero:linear-gradient(180deg,rgba(23,32,56,0.55),rgba(23,32,56,0.05) 30%,rgba(23,32,56,0.35) 60%,#172038);--credit-bg:rgba(0,0,0,0.65);--goal-love:#F08AA0;--goal-love-text:#F6B3C1;--goal-career:#84B4E8;--goal-career-text:#A9CBF0;--goal-money:#E6C165;--goal-money-text:#EED38E;--goal-business:#F0A06A;--goal-business-text:#F5BE98;--goal-health:#8FD1A8;--goal-health-text:#B3E0C4;--goal-study:#B7A6F0;--goal-study-text:#CFC3F5;--goal-family:#E0A686;--goal-family-text:#EDC2A9;--goal-protection:#A9B8C6;--goal-protection-text:#C7D2DC;--font-display:"Kanit","Noto Sans Thai",sans-serif;--font-body:"Kanit","Noto Sans Thai",sans-serif;--leading-body:1.6;--leading-display:1.45;--fs:1.12;--text-xs:calc(13px * var(--fs));--text-sm:calc(16px * var(--fs));--text-base:calc(18px * var(--fs));--text-md:calc(19px * var(--fs));--text-lg:calc(21px * var(--fs));--text-xl:calc(23px * var(--fs));--text-2xl:calc(26px * var(--fs));--text-3xl:calc(32px * var(--fs));--text-hero:calc(36px * var(--fs));--radius-sm:6px;--radius-md:14px;--radius-lg:20px;--radius-xl:22px;--radius-pill:999px;--space-gutter:16px;--tap-min:44px;--shadow-phone:0 24px 60px rgba(0,0,0,0.35)}@font-face{font-family:Kanit;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/kanit-thai-400-normal.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Kanit;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/kanit-latin-ext-400-normal.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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Kanit;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/kanit-latin-400-normal.woff2) format("woff2");unicode-range:u+00??,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}@font-face{font-family:Kanit;font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/kanit-thai-500-normal.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Kanit;font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/kanit-latin-ext-500-normal.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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Kanit;font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/kanit-latin-500-normal.woff2) format("woff2");unicode-range:u+00??,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}@font-face{font-family:Kanit;font-style:normal;font-display:swap;font-weight:600;src:url(/fonts/kanit-thai-600-normal.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Kanit;font-style:normal;font-display:swap;font-weight:600;src:url(/fonts/kanit-latin-ext-600-normal.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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Kanit;font-style:normal;font-display:swap;font-weight:600;src:url(/fonts/kanit-latin-600-normal.woff2) format("woff2");unicode-range:u+00??,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}@font-face{font-family:Kanit;font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/kanit-thai-700-normal.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Kanit;font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/kanit-latin-ext-700-normal.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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Kanit;font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/kanit-latin-700-normal.woff2) format("woff2");unicode-range:u+00??,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}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--color-bg-page);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-body)}a{color:var(--color-gold)}a:hover{color:#EBCB86}img{max-width:100%;display:block}button{font:inherit;color:inherit}h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:var(--leading-display);margin:0}p,ul{margin:0}ul{list-style:none;padding:0}:focus-visible{outline:2px solid var(--color-gold-bright);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.app{min-height:100dvh;background:var(--color-bg);max-width:1200px;margin:0 auto;padding-bottom:40px}.container{padding-left:var(--space-gutter);padding-right:var(--space-gutter)}.icon-btn{width:var(--tap-min);height:var(--tap-min);flex:none;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-pill);background:transparent;color:var(--color-text);cursor:pointer;text-decoration:none}.icon-btn--glass{background:rgba(23,32,56,.5)}.icon-btn--gold{background:var(--color-gold);color:var(--color-on-gold)}.icon-btn--gold:hover{color:var(--color-on-gold);background:var(--color-gold-bright)}.icon-btn--outline{border:1px solid var(--color-border-strong);color:var(--color-gold)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap-min);padding:0 20px;border-radius:var(--radius-pill);font-size:var(--text-md);font-weight:600;text-decoration:none;cursor:pointer}.btn--gold{background:var(--color-gold);color:var(--color-on-gold);border:none}.btn--outline{background:transparent;color:var(--color-text);border:1px solid var(--color-border-strong)}.btn--outline:hover{color:var(--color-text);border-color:var(--color-gold)}.pill{display:inline-block;font-size:var(--text-sm);font-weight:600;border-radius:var(--radius-pill);padding:1px 10px;line-height:1.6}.pill--gold{background:var(--color-gold-bright);color:var(--color-on-gold)}.pill--vermilion{background:var(--color-vermilion);color:var(--color-on-gold)}.chip-row{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.chip-row--wrap{flex-wrap:wrap;overflow:visible}.chip{flex:none;display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px 0 10px;border-radius:var(--radius-pill);border:1px solid var(--color-border-strong);font-size:var(--text-base);text-decoration:none;background:transparent}.site-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 8px 20px}.site-header--overlay{position:absolute;top:0;left:0;right:0;z-index:2}.site-header__brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--font-display);font-weight:600;font-size:var(--text-xl)}.site-header__brand,.site-header__brand:hover{color:var(--color-text)}.site-header:not(.site-header--overlay){position:-webkit-sticky;position:sticky;top:0;z-index:20;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.page-header{display:flex;flex-direction:column;gap:2px;padding:12px var(--space-gutter) 4px}.place__body>.crumbs{margin-bottom:10px}.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:var(--text-sm)}.crumbs,.crumbs a{color:var(--color-text-soft)}.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--color-gold-bright)}.page-header__title{flex:1 1;font-size:var(--text-2xl);font-family:var(--font-display);font-weight:600;line-height:var(--leading-display);margin:0}.menu-backdrop{position:fixed;inset:0;z-index:50;background:rgba(8,12,24,.6);display:flex;justify-content:flex-end}.menu-sheet{width:min(360px,88vw);height:100%;overflow-y:auto;background:var(--color-bg);border-left:1px solid var(--color-divider);padding:12px 16px 32px}.menu-sheet__head{display:flex;align-items:center;justify-content:space-between;padding-left:4px}.menu-sheet__title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600}.menu-sheet__list{margin:8px 0 20px}.menu-sheet__link{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 8px;border-bottom:1px solid var(--color-divider);color:var(--color-text);text-decoration:none;font-size:var(--text-md)}.menu-sheet__link svg,.menu-sheet__num{color:var(--color-gold)}.menu-sheet__num{width:20px;text-align:center;font-family:var(--font-display);font-size:var(--text-lg)}.menu-sheet__label{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:10px}.hero{position:relative;min-height:340px;display:flex;align-items:flex-end;overflow:hidden}.hero__img{width:100%;height:100%;object-fit:cover;object-position:62% 30%}.hero__art,.hero__img{position:absolute;inset:0}.hero__art{background:radial-gradient(circle at 78% 28%,rgba(230,193,101,.3) 0,rgba(230,193,101,0) 34%),radial-gradient(circle at 18% 58%,rgba(232,132,106,.22) 0,rgba(232,132,106,0) 30%),radial-gradient(circle at 55% 72%,rgba(214,176,100,.14) 0,rgba(214,176,100,0) 40%),radial-gradient(1px 1px at 20% 20%,#F3ECDD 50%,transparent 51%),radial-gradient(1px 1px at 64% 14%,#F3ECDD 50%,transparent 51%),radial-gradient(1.5px 1.5px at 88% 52%,#E6C165 50%,transparent 51%),radial-gradient(1px 1px at 38% 36%,#DDD5C5 50%,transparent 51%),linear-gradient(180deg,#1B2747,#172038)}.hero__art:after{content:"";position:absolute;right:-60px;top:40px;width:260px;height:260px;border-radius:50%;border:1px solid rgba(214,176,100,.35);box-shadow:0 0 0 18px rgba(214,176,100,.04),inset 0 0 0 30px rgba(214,176,100,.03)}.hero__scrim{position:absolute;inset:0;background:var(--scrim-hero)}.hero__content{position:relative;padding:0 20px 18px;width:100%}.hero__date{font-size:var(--text-base);color:var(--color-gold-bright)}.hero__title{font-size:var(--text-hero);line-height:1.5;text-shadow:0 2px 12px rgba(0,0,0,.5)}.goal-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-row-gap:14px;row-gap:14px;grid-column-gap:4px;column-gap:4px;padding:6px 16px 22px}.goal-picker__item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:0;border:none;background:transparent;cursor:pointer;font-size:calc(17px * var(--fs));line-height:1.4;color:var(--color-text);min-height:var(--tap-min)}.goal-picker__circle{width:54px;height:54px;border-radius:var(--radius-pill);display:flex;align-items:center;justify-content:center;border:1px solid var(--goal-border);background:var(--goal-bg);color:var(--goal);transition:background .15s,box-shadow .15s}.goal-picker__item[aria-pressed=true]{color:var(--color-gold-bright);font-weight:600}.goal-picker__item[aria-pressed=true] .goal-picker__circle{border-color:transparent;background:var(--color-gold-bright);color:var(--color-on-gold);box-shadow:0 0 0 4px var(--color-bg),0 0 0 5px var(--color-gold-bright)}.shirt-card{margin:0 16px;border-radius:var(--radius-xl);padding:3px;background:var(--color-gold)}.shirt-card__inner{position:relative;border-radius:var(--radius-lg);background:var(--color-surface);padding:16px;display:flex;gap:14px;align-items:center}.shirt-card__swatch{width:64px;height:64px;flex:none;border-radius:var(--radius-pill);box-shadow:0 0 0 3px var(--color-surface),0 0 0 4px #D6B06488;display:flex;align-items:center;justify-content:center}.shirt-card__body{flex:1 1;min-width:0}.shirt-card__eyebrow{font-size:var(--text-sm);color:var(--color-gold)}.shirt-card__title{font-family:var(--font-display);font-weight:600;font-size:var(--text-2xl);line-height:1.4}.shirt-card__title--sm{font-size:var(--text-lg)}.shirt-card__meta{font-size:var(--text-sm);color:var(--color-text-muted)}.section-header{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:26px 20px 10px}.section-header__title{font-size:var(--text-xl)}.section-header__link{font-size:calc(17px * var(--fs))}.shortcut-card{margin:14px 16px 0;display:flex;align-items:center;gap:14px;padding:14px 12px 14px 14px;border-radius:var(--radius-lg);background:var(--color-surface-raised);text-decoration:none}.shortcut-card,.shortcut-card:hover{color:var(--color-text)}.shortcut-card__num{width:52px;height:52px;flex:none;border-radius:var(--radius-pill);border:1.5px solid var(--color-gold);color:var(--color-gold);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:calc(28px * var(--fs));line-height:1}.shortcut-card__body{flex:1 1;min-width:0;display:flex;flex-direction:column}.shortcut-card__title{font-family:var(--font-display);font-weight:600;font-size:var(--text-lg)}.shortcut-card__sub{font-size:var(--text-sm);color:var(--color-text-muted)}.shortcut-card__arrow{color:var(--color-gold);flex:none}.festival-card{margin:0 16px;display:block;position:relative;height:200px;border-radius:var(--radius-lg);overflow:hidden;text-decoration:none}.festival-card,.festival-card:hover{color:var(--color-text)}.festival-card__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.festival-card__art{position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,rgba(230,193,101,.55) 0,rgba(230,193,101,0) 22%),radial-gradient(circle at 48% 22%,rgba(230,193,101,.45) 0,rgba(230,193,101,0) 16%),radial-gradient(circle at 80% 34%,rgba(232,132,106,.5) 0,rgba(232,132,106,0) 22%),repeating-linear-gradient(115deg,rgba(230,193,101,.1) 0 14px,transparent 14px 34px),linear-gradient(160deg,#3A2E2A,#273457 60%,#1F2A47)}.festival-card__scrim{position:absolute;inset:0;background:var(--scrim-photo-bottom)}.festival-card__badges{position:absolute;left:14px;top:12px;display:flex;gap:6px}.festival-card__text{position:absolute;left:16px;right:16px;bottom:14px;display:flex;flex-direction:column}.festival-card__name{font-family:var(--font-display);font-size:calc(26px * var(--fs));font-weight:700;line-height:1.4}.festival-card__tagline{font-size:calc(17px * var(--fs));color:var(--color-text-soft)}.credit-badge{position:absolute;font-size:var(--text-xs);line-height:1.6;color:#FFFFFF;background:var(--credit-bg);border-radius:4px;padding:0 6px;opacity:.5}.credit-badge--bottom-left{left:8px;bottom:8px}.credit-badge--top-right{right:10px;top:12px}.credit-badge--bottom-right{right:8px;bottom:6px}.festival-card .credit-badge{max-width:calc(100% - 16px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.festival-card .festival-card__text{bottom:30px}.explore-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;padding:0 16px}.explore-grid__item{display:flex;flex-direction:column;gap:2px;padding:14px;min-height:112px;border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);text-decoration:none}.explore-grid__item:hover{color:var(--color-text);border-color:var(--color-border-strong)}.explore-grid__icon{width:40px;height:40px;border-radius:var(--radius-pill);margin-bottom:6px;display:flex;align-items:center;justify-content:center;color:var(--color-gold);border:1px solid rgba(214,176,100,.4)}.explore-grid__label{font-family:var(--font-display);font-weight:600;font-size:var(--text-md);line-height:1.45}.explore-grid__desc{font-size:var(--text-sm);color:var(--color-text-muted)}.coming-soon{margin:24px 16px 0;padding:28px 20px;border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);display:flex;flex-direction:column;align-items:flex-start;gap:12px}.coming-soon__title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600}.coming-soon__body{gap:8px}.coming-soon__body,.prose{color:var(--color-text-soft);display:flex;flex-direction:column}.prose{padding:0 20px;gap:10px}.note{font-size:var(--text-sm);color:var(--color-text-subtle)}.goal-hero{margin:8px 16px 0;padding:20px;border-radius:var(--radius-lg);border:1px solid var(--goal-border);background:var(--goal-bg);gap:14px}.goal-hero,.goal-hero__icon{display:flex;align-items:center}.goal-hero__icon{width:56px;height:56px;flex:none;border-radius:var(--radius-pill);justify-content:center;border:1px solid var(--goal-border);color:var(--goal)}.goal-hero__title{font-size:var(--text-3xl)}@media (min-width:768px){.app{border-left:1px solid var(--color-divider);border-right:1px solid var(--color-divider)}.hero{min-height:420px}.hero__content{padding:0 32px 24px}.goal-picker{grid-template-columns:repeat(8,minmax(0,1fr));padding:10px 24px 28px}.home-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:0 8px;gap:0 8px;align-items:start}.explore-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.festival-card{height:260px}}.stack{display:flex;flex-direction:column;gap:12px}.tag-row{display:flex;flex-wrap:wrap;gap:6px}.tag{font-size:var(--text-sm);padding:0 9px;border-radius:var(--radius-pill);border:1px solid var(--color-border-strong);color:var(--color-text-soft);line-height:1.6}.tag--discipline{background:var(--color-gold);border-color:var(--color-gold);color:var(--color-on-gold);font-weight:600;padding:0 10px}.chip{cursor:pointer;color:var(--color-text)}.chip[aria-checked=true],.chip[aria-pressed=true]{background:var(--color-gold-bright);border-color:var(--color-gold-bright);color:var(--color-on-gold);font-weight:600}.chip-row.container{padding-top:6px;padding-bottom:2px}.intro{padding-top:4px;padding-bottom:14px}.filter-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:12px;padding-bottom:10px}.filter-bar__count{font-size:calc(17px * var(--fs));color:var(--color-text-muted)}.prompt-card{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);text-decoration:none}.prompt-card:hover{color:var(--color-text);border-color:var(--color-border-strong)}.prompt-card__title{font-family:var(--font-display);font-weight:600;font-size:var(--text-lg);line-height:1.45}.prompt-card__desc{font-size:calc(17px * var(--fs));color:var(--color-text-muted)}.step-title{font-size:var(--text-lg);padding-top:22px;padding-bottom:8px}.form{gap:14px}.field,.form{display:flex;flex-direction:column}.field{gap:6px;border:none;margin:0;padding:0;min-width:0}.field__label{font-size:var(--text-base);font-weight:600;color:var(--color-text-soft);padding:0}.field__sub{font-size:var(--text-sm);color:var(--color-text-muted)}.input,.select{width:100%;min-height:var(--tap-min);padding:8px 12px;border-radius:12px;border:1px solid var(--color-border-strong);background:var(--color-surface-sunken);color:var(--color-text);font:inherit;font-size:calc(18px * var(--fs));line-height:1.5;color-scheme:dark}.input--multi{resize:vertical}.select-wrap .select{width:auto;min-height:40px;padding:4px 12px;font-size:calc(16px * var(--fs));border-radius:var(--radius-pill)}.cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.cards-grid__item{display:flex;flex-direction:column;gap:4px}.prompt-preview{margin:0;padding:14px;border-radius:var(--radius-md);background:var(--color-surface-sunken);border:1px solid var(--color-border);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-body);white-space:pre-wrap;word-break:break-word;color:var(--color-text-soft)}.actions{display:flex;gap:10px;margin:12px 0 6px}.section-header--flush{padding-left:4px;padding-right:4px}.followup{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px 10px 14px;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border)}.btn--sm{min-height:40px;padding:0 14px;font-size:calc(17px * var(--fs));flex:none}.prompt-builder{display:flex;flex-direction:column;gap:4px;padding-top:6px}.prompt-builder .shortcut-card{margin-top:22px}.explore-grid__item:last-child:nth-child(odd){grid-column:1/-1;min-height:0}@media (min-width:768px){.explore-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.explore-grid__item:last-child:nth-child(odd){grid-column:auto;min-height:112px}}.date-select{display:grid;grid-template-columns:.8fr 1.4fr 1fr;grid-gap:8px;gap:8px}.field__error{font-size:calc(17px * var(--fs));color:var(--color-vermilion)}.privacy-note{padding-top:10px}.lucky-result{display:flex;flex-direction:column;gap:14px;padding-top:20px}.lucky-card{border:3px solid var(--color-gold);border-radius:var(--radius-xl);background:var(--color-surface);padding:18px 16px 16px}.lucky-card__eyebrow{font-size:var(--text-sm);color:var(--color-gold)}.lucky-card__numbers{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0 16px}.lucky-num{width:64px;height:64px;border-radius:var(--radius-pill);border:1.5px solid var(--color-gold);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1}.lucky-num__value{font-family:var(--font-display);font-weight:700;font-size:calc(32px * var(--fs));color:var(--color-gold-bright);line-height:1}.lucky-card__actions{display:flex;gap:10px;align-items:center}.core-numbers{margin:0;display:grid;grid-gap:10px;gap:10px}.core-number{padding:12px 14px;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border)}.core-number dt{font-size:var(--text-sm);color:var(--color-text-muted)}.core-number dd{margin:2px 0 0;display:flex;align-items:center;gap:12px;color:var(--color-text-soft)}.core-number__value{font-family:var(--font-display);font-weight:700;font-size:var(--text-3xl);color:var(--color-gold);flex:none;min-width:36px}.how-to{padding:4px 4px 0;display:flex;flex-direction:column;gap:8px}.how-to__title{font-size:var(--text-lg)}.how-to__list{display:flex;flex-direction:column;gap:4px;color:var(--color-text-soft);list-style:disc;padding-left:20px}.shortcut-card--flush{margin:0}.method-box{margin-top:24px;padding-top:16px;padding-bottom:16px;border-top:1px solid var(--color-divider);display:flex;flex-direction:column;gap:6px;color:var(--color-text-muted);font-size:calc(17px * var(--fs))}.method-box strong{color:var(--color-text-soft)}.place-card{width:220px;flex:none;display:flex;flex-direction:column;text-decoration:none}.place-card,.place-card:hover{color:var(--color-text)}.place-card__img{display:block;position:relative;height:150px;border-radius:16px;overflow:hidden;background:var(--color-image-placeholder)}.place-card__img img{width:100%;height:100%;object-fit:cover}.place-card__name{font-size:var(--text-md);font-weight:600;margin-top:8px;line-height:1.45}.place-card__meta{font-size:var(--text-sm);color:var(--color-text-muted)}.place-img-empty{position:absolute;inset:0;display:block;background:radial-gradient(circle at 50% 40%,rgba(214,176,100,.18),transparent 55%),var(--color-image-placeholder)}.carousel{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:0 16px 4px;scroll-padding:0 16px}.carousel>*{scroll-snap-align:start}.place-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px 12px;gap:16px 12px}.place-grid .place-card{width:auto}.place-grid .place-card__img{height:auto;aspect-ratio:4/3}.filter-bar--wrap{flex-wrap:wrap}.filter-bar__selects{display:flex;gap:8px;flex-wrap:wrap}.place-hero{position:relative;height:340px;overflow:hidden;background:var(--color-image-placeholder)}.place-hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.place-hero__scrim{position:absolute;inset:0;background:var(--scrim-hero)}.place-hero__text{position:absolute;left:20px;right:20px;bottom:14px;display:flex;flex-direction:column}.place-hero__type{font-size:var(--text-base);color:var(--color-gold-bright)}.place-hero__name{font-size:var(--text-3xl);line-height:1.45;text-shadow:0 2px 12px rgba(0,0,0,.5)}.place__body{display:flex;flex-direction:column;gap:18px;padding-top:6px}.place__summary{color:var(--color-text-soft);font-size:var(--text-md)}.place__h2{font-size:var(--text-xl);margin-bottom:8px}.info-list{margin:0;padding:4px 14px;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border)}.info-list>div{display:flex;gap:12px;padding:8px 0;border-bottom:1px solid var(--color-divider)}.info-list>div:last-child{border-bottom:none}.info-list dt{flex:none;width:72px;color:var(--color-text-muted)}.info-list dd{margin:0;color:var(--color-text-soft)}.bullet-list{list-style:disc;padding-left:20px;gap:4px}.bullet-list,.step-list{color:var(--color-text-soft);display:flex;flex-direction:column}.step-list{margin:0;padding-left:22px;gap:6px}.step-list li::marker{color:var(--color-gold);font-family:var(--font-display);font-weight:600}.lodging{display:flex;flex-direction:column;gap:12px;margin:8px 0;padding:16px;border-radius:18px;border:1px dashed #3a4775;background:var(--color-surface-sunken)}.lodging__head{display:flex;gap:12px;align-items:flex-start}.lodging__icon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:rgba(214,176,100,.14);color:var(--color-gold-bright)}.lodging__title{margin:0;font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;line-height:1.4}.lodging__note{margin:2px 0 0;font-size:var(--text-sm);color:var(--color-text-soft)}.lodging__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.affiliate-label{flex:none;font-size:var(--text-xs);color:var(--color-text-muted);border:1px solid #3a4775;border-radius:var(--radius-pill);padding:0 8px}.place__sources{font-size:var(--text-sm);color:var(--color-text-muted);display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--color-divider);padding-top:14px}.place__sources summary{cursor:pointer;min-height:32px}.place__sources ul{padding-left:4px;display:flex;flex-direction:column;gap:2px}@media (min-width:768px){.place-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.place-hero{height:440px}.carousel{overflow:visible;flex-wrap:wrap}.carousel--rows2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:16px 12px;gap:16px 12px}.carousel--rows2 .place-card{width:auto}.carousel--rows2 .place-card__img{height:auto;aspect-ratio:4/3}.carousel--rows2>:nth-child(n+7){display:none}}@media (min-width:1000px){.carousel--rows2{grid-template-columns:repeat(4,minmax(0,1fr))}.carousel--rows2>:nth-child(n+7){display:flex}.carousel--rows2>:nth-child(n+9){display:none}}@media (min-width:1180px){.carousel--rows2{grid-template-columns:repeat(5,minmax(0,1fr))}.carousel--rows2>:nth-child(n+9){display:flex}}.admin__main{padding-top:20px;display:flex;flex-direction:column;gap:14px}.admin__head{display:flex;justify-content:space-between;align-items:center;gap:12px}.admin__title{font-size:var(--text-2xl)}.admin-list{display:flex;flex-direction:column;gap:10px}.admin-item{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:flex-start;padding:12px 14px;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border)}.admin-item--error{border-color:var(--color-vermilion)}.admin-item__thumb{flex:0 0 56px;width:56px;height:56px;border-radius:10px;object-fit:cover;background:var(--color-surface-sunken)}.admin-item__thumb--missing{display:flex;align-items:center;justify-content:center;text-align:center;font-size:calc(14px * var(--fs));line-height:1.2;color:var(--color-vermilion);border:1px dashed var(--color-vermilion)}.admin-warn{margin:4px 0;padding:8px 12px;border-radius:var(--radius-md);border:1px dashed var(--color-vermilion);font-size:var(--text-sm)}.admin-item__main{flex:1 1 260px;min-width:0;display:flex;flex-direction:column;gap:2px}.admin-item__name{font-weight:600}.admin-item__actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.admin-item__notes summary{cursor:pointer;font-size:var(--text-sm);color:var(--color-text-muted)}.btn--danger{background:transparent;color:var(--color-vermilion);border:1px solid rgba(232,132,106,.5)}.btn:disabled{opacity:.5;cursor:not-allowed}.input--code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:calc(17px * var(--fs))}.place-card__img .credit-badge{max-width:calc(100% - 16px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip[aria-current=page]{background:var(--color-gold-bright);border-color:var(--color-gold-bright);color:var(--color-on-gold);font-weight:600}.teller-card{display:flex;gap:14px;padding:10px;border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);text-decoration:none}.teller-card:hover{color:var(--color-text);border-color:var(--color-border-strong)}.teller-card__img{width:104px;height:104px;flex:none;border-radius:var(--radius-md);object-fit:cover;background:var(--color-image-placeholder)}.teller-card__body{display:flex;flex-direction:column;gap:4px;min-width:0}.teller-card__name{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;line-height:1.45}.teller-card__meta{font-size:var(--text-sm);color:var(--color-text-muted)}.teller-card__price{font-size:var(--text-sm);color:var(--color-text-soft)}.filter-btn{display:inline-flex;gap:6px}.link-btn{background:none;border:none;padding:0;color:var(--color-gold);text-decoration:underline;cursor:pointer;font:inherit}.sheet-backdrop{position:fixed;inset:0;z-index:60;background:rgba(8,12,24,.6);display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:560px;max-height:85dvh;display:flex;flex-direction:column;background:var(--color-bg);border-radius:22px 22px 0 0;border:1px solid var(--color-divider);border-bottom:none}.sheet__handle{width:40px;height:4px;border-radius:999px;background:var(--color-border-strong);margin:8px auto 0}.sheet__head{display:flex;justify-content:space-between;align-items:center;padding:4px 8px 4px 20px}.sheet__title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600}.sheet__body{overflow-y:auto;padding:4px 20px 16px;display:flex;flex-direction:column;gap:18px}.sheet__footer{display:flex;gap:10px;padding:12px 20px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--color-divider)}.sheet__footer .btn{flex:1 1}.teller-hero{display:flex;flex-direction:column;align-items:center;gap:10px;padding:8px 20px 0;text-align:center}.teller-hero__img{width:180px;height:180px;border-radius:var(--radius-lg);box-shadow:0 0 0 1px var(--color-border)}.teller-hero__name{font-size:var(--text-3xl)}.teller-hero .tag-row{justify-content:center}.contact-list{display:flex;flex-direction:column;gap:8px}.contact-btn{justify-content:flex-start;width:100%}.claim-note{font-size:var(--text-sm);color:var(--color-text-subtle)}.color-full{display:flex;flex-direction:column;gap:12px;padding-top:14px}.color-full .shirt-card{margin:0}.shirt-card__inner--full{flex-direction:column;text-align:center;gap:4px;padding:26px 18px 20px}.color-full__swatch{width:132px;height:132px;border-radius:var(--radius-pill);margin-bottom:14px;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 5px var(--color-surface),0 0 0 6px #D6B06488}.color-full__name{font-family:var(--font-display);font-weight:700;font-size:calc(43px * var(--fs));line-height:1.4}.color-full__role{font-size:calc(17px * var(--fs));color:var(--color-text-soft)}.color-full__avoid{display:inline-flex;align-items:center;gap:8px;margin-top:10px;padding:6px 14px;border-radius:var(--radius-pill);border:1px solid var(--color-border-strong);color:var(--color-text-soft)}.color-full__actions{display:flex;gap:10px;margin-top:16px;width:100%}.color-full__actions .btn{flex:1 1}.color-full__story{margin-top:10px;font-size:calc(17px * var(--fs))}.color-full__ai{width:100%}.color-dot{width:18px;height:18px;border-radius:var(--radius-pill);flex:none;display:inline-block;box-shadow:0 0 0 1px rgba(255,255,255,.15)}.color-dot--lg{width:30px;height:30px}.color-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.color-row{width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:10px 12px;min-height:52px;min-width:0;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;text-align:left}.color-row[aria-pressed=true]{border-color:var(--color-gold-bright)}.color-row__goal{font-size:var(--text-sm);color:var(--color-text-muted)}.color-row__color{margin-left:auto;font-weight:600}.week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:4px;gap:4px}.week-strip__day{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 0;border-radius:12px;font-size:calc(16px * var(--fs))}.week-strip__day--today{background:var(--color-surface-raised);box-shadow:inset 0 0 0 1px var(--color-gold)}.week-strip__name{color:var(--color-text-muted)}.week-strip__color{font-weight:600}.taksa-table summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--color-gold)}.seed-box{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-radius:var(--radius-md);border:1px dashed #3a4775}.seed-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.seed-row__label{flex:1 1 200px}.actions--wrap{flex-wrap:wrap}.fest-hero{position:relative;height:300px;overflow:hidden}.fest-hero__scrim{position:absolute;inset:0;background:var(--scrim-photo-bottom)}.fest-hero__text{position:absolute;left:20px;right:20px;bottom:16px;display:flex;flex-direction:column;gap:6px}.fest-hero__badges{display:flex;flex-wrap:wrap;gap:6px}.fest-note{margin-top:8px}.chip--static{cursor:default;border-color:var(--color-border-strong);color:var(--color-text-soft)}.venue-list{display:flex;flex-direction:column;gap:10px}.venue{padding:12px 14px;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border)}.venue__name{font-family:var(--font-display);font-weight:600;font-size:var(--text-lg)}.venue__desc{color:var(--color-text-soft);margin-top:4px}.fest-health{background:var(--color-surface-sunken);border:1px solid var(--color-border)}.faq{display:flex;flex-direction:column;gap:8px}.faq__item{padding:4px 14px;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border)}.faq__item summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600}.faq__item p{color:var(--color-text-soft);padding-bottom:10px}@media (min-width:768px){.fest-hero{height:380px}}.cal{padding-top:14px}.cal__head{display:flex;align-items:center;justify-content:space-between}.cal__head .icon-btn{font-size:calc(28px * var(--fs));color:var(--color-gold)}.cal__head .icon-btn:disabled{opacity:.3}.cal__title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600}.cal__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:4px;gap:4px;margin-top:6px}.cal__wd{text-align:center;font-size:var(--text-sm);color:var(--color-text-muted);padding:2px 0}.cal__day{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48px;border-radius:10px;border:1px solid transparent;background:var(--color-surface);cursor:pointer;padding:2px 0;line-height:1.2}.cal__num{font-weight:600;font-size:var(--text-md)}.cal__lunar{font-size:calc(13px * var(--fs));color:var(--color-text-muted)}.cal__day--good{background:rgba(214,176,100,.22);border-color:rgba(214,176,100,.55)}.cal__day--caution{background:rgba(132,180,232,.1)}.cal__day--avoid{background:rgba(232,132,106,.16)}.cal__day--avoid .cal__num{color:#F2A894}.cal__day--unknown{opacity:.55}.cal__day--past{opacity:.45}.cal__day--today{box-shadow:inset 0 0 0 2px var(--color-text)}.cal__day[aria-pressed=true]{outline:2px solid var(--color-gold-bright);outline-offset:1px}.cal__holy{position:absolute;top:4px;right:4px;width:6px;height:6px;border-radius:50%;background:var(--color-gold-bright)}.cal__holy--legend{position:static;display:inline-block}.cal__legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:var(--text-sm);color:var(--color-text-soft)}.cal__legend li{display:inline-flex;align-items:center;gap:6px}.cal__swatch{width:14px;height:14px;border-radius:4px;display:inline-block;border:1px solid var(--color-border)}.day-detail{margin-top:12px;padding:14px;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);display:flex;flex-direction:column;gap:6px}.day-detail--good{border-color:var(--color-gold)}.day-detail--avoid{border-color:rgba(232,132,106,.6)}.day-detail__date{font-family:var(--font-display);font-weight:600;font-size:var(--text-lg)}.day-detail__lunar{color:var(--color-gold)}.day-tag--good{background:var(--color-gold);border-color:var(--color-gold);color:var(--color-on-gold);font-weight:600}.day-tag--avoid{border-color:var(--color-vermilion);color:#F2A894}.good-days{display:flex;flex-direction:column;gap:8px}.good-day{width:100%;display:grid;grid-template-columns:auto 1fr;grid-gap:0 12px;gap:0 12px;text-align:left;cursor:pointer;padding:10px 14px;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border)}.good-day__date{font-weight:600}.good-day__why{font-size:var(--text-sm);color:var(--color-gold);justify-self:end}.good-day__lunar{grid-column:1/-1;font-size:var(--text-sm);color:var(--color-text-muted)}.cal__cta{margin-top:16px}.abroad-card{display:flex;align-items:stretch;border-radius:var(--radius-lg);overflow:hidden;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);text-decoration:none}.abroad-card:hover{color:var(--color-text);border-color:var(--color-border-strong)}.abroad-card__img{width:132px;min-height:112px;flex:none;position:relative;display:block;background:var(--color-image-placeholder)}.abroad-card__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.abroad-card__img .credit-badge{max-width:calc(100% - 16px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.abroad-card__body{padding:14px;display:flex;flex-direction:column;gap:2px}.abroad-card__eyebrow{font-size:var(--text-sm);color:var(--color-gold)}.abroad-card__title{font-family:var(--font-display);font-size:calc(20px * var(--fs));font-weight:600;line-height:1.45}.abroad-card__sub{font-size:var(--text-sm);color:var(--color-text-muted)}.abroad-note{padding-top:16px}.home-abroad{margin-top:22px}.chip--near{display:inline-flex;align-items:center;gap:6px;min-height:var(--tap-min)}.chip--near:disabled{opacity:.6;cursor:progress}.place-card__dist{color:var(--color-gold-bright);font-weight:600}.filter-bar__top{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%}.filter-bar--wrap .filter-bar__selects{width:100%;flex-wrap:nowrap}.filter-bar--wrap .select-wrap{flex:1 1;min-width:0}.filter-bar--wrap .select-wrap .select{width:100%}.shirt-swatch--photo{overflow:hidden;border:4px solid;background:#fff!important}.shirt-photo{width:100%;height:100%;object-fit:cover;display:block}.shirt-buy{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:14px;padding:12px 14px;width:100%;border:1px dashed #3a4775;border-radius:18px}.shirt-buy__hook{margin:0;font-family:var(--font-display);font-weight:600;font-size:var(--text-lg);color:var(--color-gold-bright)}.shirt-buy__row{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}.shirt-buy__link{font-weight:600;text-decoration:underline;text-underline-offset:3px}.admin-filter{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.admin-filter__q{flex:1 1 100%}.admin-filter__q .input{width:100%}.admin-pager{display:flex;gap:12px;align-items:center;justify-content:center}.seed-box>summary{cursor:pointer}.shirt-card__link:after{content:"";position:absolute;inset:0;border-radius:var(--radius-lg)}.shirt-card__inner:has(.shirt-card__link){cursor:pointer}.shirt-card__inner .icon-btn{position:relative;z-index:1}.computed-value{display:block;padding:12px 14px;border-radius:var(--radius-md);background:var(--color-surface);border:1px dashed #3a4775;color:var(--color-gold-bright);font-weight:600}.fest-section__intro{color:var(--color-text-soft);margin-bottom:10px}.combo{position:relative;flex:1 1;min-width:0}.combo__input.select{width:100%;min-height:40px;padding:4px 34px 4px 40px;font-size:calc(18px * var(--fs));border-radius:var(--radius-pill)}.combo__input::placeholder{color:var(--color-text-subtle);opacity:.6}.combo__chevron{position:absolute;right:14px;top:50%;width:8px;height:8px;margin-top:-6px;border-right:1.5px solid var(--color-text-soft);border-bottom:1.5px solid var(--color-text-soft);transform:rotate(45deg);pointer-events:none}.combo__btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:var(--color-text-soft);font-size:calc(22px * var(--fs));line-height:1;cursor:pointer}.combo__list{position:absolute;z-index:30;left:0;top:calc(100% + 6px);width:max(100%,min(320px,calc(100vw - 32px)));max-height:min(360px,55vh);overflow-y:auto;margin:0;padding:6px;list-style:none;border-radius:var(--radius-md);border:1px solid var(--color-border-strong);background:var(--color-surface-raised);box-shadow:0 12px 32px rgba(0,0,0,.45)}.combo__option{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:10px;font-size:var(--text-sm);cursor:pointer}.combo__option:hover,.combo__option[aria-selected=true]{background:rgba(214,176,100,.14);color:var(--color-gold-bright)}.combo__count{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.combo__count,.combo__empty{color:var(--color-text-soft)}.combo__empty{padding:10px 12px;font-size:var(--text-sm)}.teller-card--pinned{border-color:rgba(214,176,100,.55)}.teller-card__pin{align-self:flex-start;font-size:var(--text-xs);padding:1px 10px;margin-bottom:2px}.admin-pins__form{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-top:8px}.admin-pins__opt{display:inline-flex;gap:6px;align-items:center;font-size:var(--text-sm)}.stack--flush .festival-card{margin:0}.article-body{color:var(--color-text-soft);display:flex;flex-direction:column;gap:10px}.reading{--read-size:calc(20px * var(--fs))}.reading .article-body{font-size:var(--read-size);line-height:1.85;color:var(--color-text);gap:16px}.reading .article-body .bullet-list,.reading .article-body ol{color:var(--color-text);gap:8px}.reading .article-body h2{font-size:calc(var(--read-size) + 6px);line-height:1.45;margin:24px 0 4px}.reading .article-body h3{font-size:calc(var(--read-size) + 2px);line-height:1.5;margin:16px 0 0}.reading .article-figure figcaption{font-size:calc(16px * var(--fs))}.text-size{display:flex;align-items:center;gap:6px;margin:4px 0 12px}.text-size__label{font-size:calc(17px * var(--fs));color:var(--color-text-soft);margin-right:4px}.text-size__btn{min-width:44px;height:44px;border-radius:10px;border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);font-family:var(--font-display);line-height:1;cursor:pointer}.text-size__btn--m{font-size:16px}.text-size__btn--l{font-size:20px}.text-size__btn--xl{font-size:25px}.text-size__btn[aria-pressed=true]{border-color:var(--color-gold);color:var(--color-gold);background:var(--color-surface-raised)}.article-body p{margin:0}.article-body h2{font-size:var(--text-xl);margin:18px 0 6px}.article-body h3{font-size:var(--text-lg);margin:14px 0 4px}.article-body ol{padding-left:22px;display:flex;flex-direction:column;gap:4px}.article-body blockquote{margin:12px 0;padding:10px 14px;border-left:3px solid var(--color-gold-bright);background:var(--color-surface);border-radius:0 12px 12px 0}.article-figure{margin:14px 0}.article-figure img{width:100%;height:auto;border-radius:var(--radius-md);display:block}.article-figure figcaption{margin-top:4px;font-size:var(--text-xs);color:var(--color-text-muted)}.article-editor__cover{width:100%;max-width:420px;border-radius:var(--radius-md)}.article-editor__pair{display:flex;flex-wrap:wrap;gap:8px}.article-editor__pair .input{flex:1 1 180px}.article-editor__body{font-size:calc(18px * var(--fs));line-height:1.7}.article-editor__preview{padding:12px;border-radius:var(--radius-md);border:1px dashed var(--color-border-strong)}.admin__subtitle{margin:28px 0 4px;font-size:var(--text-xl)}.upload{display:inline-flex;flex-direction:column;gap:4px}.goal-chips{gap:8px 6px}.goal-chips .chip{height:34px;padding:0 12px 0 9px;gap:5px}.disc-nav{padding-top:14px;padding-bottom:4px}.disc-nav__title{margin:0 0 8px;font-family:var(--font-display);font-size:var(--text-lg);font-weight:600}.disc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.disc-tile{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px 8px;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);text-decoration:none;text-align:center}.disc-tile:hover{border-color:var(--color-gold);color:var(--color-text)}.disc-tile__img{width:56px;height:56px;border-radius:12px}.disc-tile__name{font-size:var(--text-sm);font-weight:600;line-height:1.35}.disc-tile__count{font-size:var(--text-xs);color:var(--color-text-muted)}.disc-nav__more{margin-top:8px}.disc-nav__more summary{cursor:pointer;min-height:36px;display:flex;align-items:center;color:var(--color-gold-bright);font-size:var(--text-sm)}.disc-nav__more .disc-grid{margin-top:6px}.combo__option--family{font-weight:600;color:var(--color-gold-bright)}.logo-mark{display:block;border-radius:50%;box-shadow:0 0 0 1px rgba(214,176,100,.35)}.fest-checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.fest-checklist label{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;color:var(--color-text-soft);line-height:1.6}.fest-checklist input{flex:none;width:20px;height:20px;margin-top:3px;accent-color:var(--color-gold)}.fest-checklist strong{color:var(--color-text);font-weight:600}.fest-checklist input:checked+span{opacity:.55;text-decoration:line-through}.fest-steps{margin:0;padding:0;list-style:none;counter-reset:step;display:flex;flex-direction:column;gap:10px}.fest-steps>li{counter-increment:step;position:relative;padding:10px 12px 10px 48px;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border)}.fest-steps>li:before{content:counter(step);position:absolute;left:12px;top:10px;width:26px;height:26px;border-radius:50%;background:var(--color-gold);color:var(--color-on-gold);font-weight:700;display:flex;align-items:center;justify-content:center;font-size:calc(16px * var(--fs))}.carousel--flush{padding-left:0;padding-right:0}.fest-where__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.admin-seed{display:grid;grid-gap:8px;gap:8px;justify-items:start;padding:12px 14px;margin-top:12px;border:1px dashed var(--color-gold);border-radius:12px}.home-reads{margin:18px 16px 0}.home-reads__title{font-family:var(--font-display);font-size:calc(20px * var(--fs));margin:0 0 8px;color:var(--color-gold)}.home-reads__list{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px}.home-reads__item{display:grid;grid-gap:2px;gap:2px;padding:12px 14px;border-radius:var(--radius-lg);background:var(--color-surface-raised);color:var(--color-text);text-decoration:none}.home-reads__name{font-size:calc(18px * var(--fs));font-weight:600;line-height:1.5}.home-reads__meta{font-size:calc(16px * var(--fs));color:var(--color-text-soft)}:root[data-text-size=m]{--fs:1}:root[data-text-size=xl]{--fs:1.25}.active-filters{margin-bottom:10px}.active-filters__chip{border-color:var(--color-gold);color:var(--color-gold)}.phone-input{font-size:calc(22px * var(--fs));letter-spacing:.06em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.phone-sum{display:flex;align-items:center;gap:14px;margin:10px 0 6px;color:var(--color-text-soft)}.phone-sum__value{font-family:var(--font-display);font-weight:700;font-size:calc(44px * var(--fs));color:var(--color-gold-bright);line-height:1;flex:none;min-width:64px;text-align:center}.phone-sum__label{display:block;font-size:var(--text-sm);color:var(--color-text-muted)}.phone-summary{margin:6px 0;color:var(--color-text-soft)}.phone-summary--goal{color:var(--color-gold);font-weight:600}.phone-sub{font-size:var(--text-lg);margin:14px 0 6px}.phone-pairs{list-style:none;margin:10px 0 6px;padding:0;display:grid;grid-gap:8px;gap:8px}.phone-pair{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border-radius:var(--radius-md);background:var(--color-bg-page);border:1px solid var(--color-border);border-left-width:4px}.phone-pair--good{border-left-color:var(--color-gold)}.phone-pair--neutral{border-left-color:var(--color-border-strong)}.phone-pair--bad{border-left-color:var(--color-vermilion)}.phone-pair__num{font-family:var(--font-display);font-weight:700;font-size:calc(26px * var(--fs));line-height:1.2;min-width:40px;color:var(--color-text)}.phone-pair__text{color:var(--color-text-soft);line-height:1.6}.phone-tag{margin:0 6px 4px 0;display:inline-block;max-width:100%;vertical-align:middle}.phone-tag--good{color:var(--color-gold);border-color:var(--color-gold)}.phone-tag--bad{color:var(--color-vermilion);border-color:var(--color-vermilion)}.phone-personal{margin:10px 0 0;display:grid;grid-gap:8px;gap:8px}.phone-personal dt{font-size:var(--text-sm);color:var(--color-text-muted)}.phone-personal dd{margin:2px 0 0;display:flex;align-items:center;gap:10px;color:var(--color-text-soft)}.phone-digit{width:44px;height:44px;border-radius:var(--radius-pill);display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:calc(24px * var(--fs));flex:none}.phone-digit--good{border:1.5px solid var(--color-gold);color:var(--color-gold-bright)}.phone-digit--bad{border:1.5px solid var(--color-vermilion);color:var(--color-vermilion)}.plate-letters{font-family:var(--font-display);font-size:var(--text-lg);letter-spacing:.08em;color:var(--color-text)}.phone-warn{color:var(--color-vermilion);font-weight:600}.plate-totals{list-style:none;margin:6px 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.plate-total{min-width:48px;height:48px;padding:0 8px;border-radius:var(--radius-pill);border:1.5px solid var(--color-gold);display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:calc(22px * var(--fs));color:var(--color-gold-bright)}.place-images{display:grid;grid-gap:10px;gap:10px;padding-top:8px}.place-images__list{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px}.place-images__list li{display:flex;align-items:center;gap:10px}.place-images__preview{width:100%;max-width:360px;border-radius:var(--radius-md)}.admin-photo{position:relative;flex:0 0 88px;width:88px;height:88px;padding:0;border-radius:12px;overflow:hidden;border:1px solid var(--color-border-strong);background:var(--color-surface-sunken);color:var(--color-gold);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:var(--text-sm);font-weight:600}.admin-photo img{width:100%;height:100%;object-fit:cover}.admin-photo--missing{border:2px dashed var(--color-gold);background:transparent}.admin-photo__plus{font-size:calc(30px * var(--fs));line-height:1}.admin-photo__badge{position:absolute;left:0;right:0;bottom:0;padding:2px 0;background:rgba(15,20,36,.75);color:var(--color-gold);font-size:calc(13px * var(--fs));text-align:center}.place-images__pick{width:100%;min-height:52px}.place-images .upload{display:block}.planet-grid{list-style:none;padding-top:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:12px;gap:12px}.planet-card{display:grid;grid-gap:2px;gap:2px;padding:14px;border-radius:var(--radius-lg);background:var(--color-surface-raised);border:1px solid var(--color-border)}.planet-card__num{font-family:var(--font-display);font-size:calc(30px * var(--fs));line-height:1.1;color:var(--color-gold)}.planet-card__name{font-size:calc(18px * var(--fs));color:var(--color-text-soft)}.planet-card__sign{font-size:var(--text-xl);font-weight:600;color:var(--color-text)}.planet-card__tag{justify-self:start}.planet-card__meta{font-size:calc(15px * var(--fs));color:var(--color-text-muted);line-height:1.5}.transit-list{display:grid;grid-gap:18px;gap:18px}.transit-list__month{font-size:var(--text-md);color:var(--color-gold);margin-bottom:8px}.transit-list__items{list-style:none;padding:0;margin:0;display:grid;grid-gap:10px;gap:10px}.transit-item{display:grid;grid-gap:4px;gap:4px;padding:14px;border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border)}.transit-item--now{border-color:var(--color-gold)}.transit-item__date{font-size:calc(16px * var(--fs));color:var(--color-text-soft);display:flex;flex-wrap:wrap;gap:8px;align-items:center}.transit-item__title{font-size:calc(19px * var(--fs));font-weight:600;line-height:1.5}.transit-item__note{font-size:calc(17px * var(--fs));color:var(--color-text-muted);line-height:1.6}.transit-item__links{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:calc(15px * var(--fs))}.planet-meanings{display:grid;grid-gap:12px;gap:12px}.planet-meanings dt{font-weight:600;font-size:calc(18px * var(--fs))}.planet-meanings dd{margin:0;color:var(--color-text-muted);font-size:calc(17px * var(--fs));line-height:1.6}.transit-past{margin-top:24px}.transit-past summary{cursor:pointer;font-size:calc(18px * var(--fs));padding:8px 0}input::placeholder,textarea::placeholder{color:var(--color-text-subtle);opacity:.6}.combo__icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);display:flex;pointer-events:none}.combo__icon,.fest-stale{color:var(--color-text-soft)}.fest-stale{margin:14px 0 0;padding:12px 14px;border-radius:var(--radius-md);border:1px solid var(--color-gold);background:rgba(214,176,100,.08);font-size:calc(17px * var(--fs));line-height:1.6}.pillar-jump{margin-bottom:8px}.pillar-list{display:grid;grid-gap:22px;gap:22px;padding-bottom:32px}.pillar-list__group{scroll-margin-top:80px}.pillar-list__province{font-size:var(--text-lg);margin-bottom:8px}.pillar-list__province a{color:var(--color-gold);text-decoration:none}.pillar-list__items{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px}.pillar-list__item{display:grid;grid-gap:2px;gap:2px;padding:12px 14px;border-radius:var(--radius-lg);background:var(--color-surface-raised);color:var(--color-text);text-decoration:none}.pillar-list__name{font-size:calc(18px * var(--fs));font-weight:600;line-height:1.5}.pillar-list__meta{color:var(--color-text-soft)}.pillar-list__meta,.site-footer{font-size:calc(16px * var(--fs))}.site-footer{margin-top:40px;padding:24px 20px 32px;border-top:1px solid var(--color-divider);color:var(--color-text-muted)}.site-footer__links{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:8px 18px}.site-footer__links a{color:var(--color-text-soft)}.site-footer__note{margin:0 0 8px;line-height:1.6}.site-footer__copy{margin:0;color:var(--color-text-subtle)}.info-page{padding-bottom:8px}.goal-picks{margin:4px 0 20px;padding:16px;border-radius:18px;background:var(--color-surface-sunken);border:1px solid #3a4775}.goal-picks__title{margin:0 0 10px;font-family:var(--font-display);font-size:var(--text-lg);font-weight:600}.goal-picks__list{margin:0;display:grid;grid-gap:10px;gap:10px}.goal-picks__list>div{display:grid;grid-template-columns:5.5em 1fr;grid-gap:8px;gap:8px;align-items:baseline}.goal-picks__list dt{color:var(--color-gold);font-weight:600;font-size:var(--text-sm)}.goal-picks__list dd{margin:0;font-size:var(--text-sm);line-height:1.7}.combo--pick .combo__input.select{padding-left:16px}.combo__list--end{left:auto;right:0}