:root{--yellow-500:#ffd800;--yellow-600:#ffc900;--green-700:#1f6b52;--green-800:#174f3e;--ink-900:#171a18;--ink-600:#59615c;--paper-0:#fff;--mist-50:#f3f7f4;--line-200:#d7e2db;--red-700:#a8322d;--primary-color:var(--yellow-500);--primary-hover:var(--yellow-600);--secondary-color:var(--green-700);--card-bg-highlight:#edf4ef;--card-border:var(--line-200);--text-main:var(--ink-900);--text-muted:var(--ink-600);--success-color:var(--green-700);--accent-color:#8a6600;--danger-color:var(--red-700)}html{scroll-behavior:smooth}*{box-sizing:border-box}body{background:var(--mist-50);min-width:320px;min-height:100vh;color:var(--text-main);-webkit-font-smoothing:antialiased;margin:0;font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,system-ui,sans-serif}button,input,select,textarea{font:inherit}button,summary,a{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}button:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid var(--yellow-500);outline-offset:3px}[hidden]{display:none!important}#root{width:100%;max-width:620px;margin:0 auto;padding:24px 16px 116px}h1,h2,h3,p{margin:0}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-container{gap:20px;display:grid}.header{align-items:flex-start;gap:14px;padding:4px 2px 10px;display:flex}.logo{background:var(--yellow-500);width:44px;height:44px;color:var(--green-800);border-radius:11px;flex:0 0 44px;justify-content:center;align-items:center;display:inline-flex;transform:rotate(-3deg)}.header-copy{min-width:0}.park-name{color:var(--green-700);margin-bottom:3px;font-size:.84rem;font-weight:800}.header h1{color:var(--ink-900);letter-spacing:-.04em;font-size:clamp(1.65rem,7vw,2.15rem);font-weight:900;line-height:1.18}.subtitle{color:var(--text-muted);margin-top:7px;font-size:.92rem;line-height:1.55}.section-panel{border:1px solid var(--line-200);background:var(--paper-0);border-radius:16px;padding:20px}.section-heading{color:var(--green-700);grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-bottom:20px;display:grid}.step-number{background:var(--yellow-500);width:32px;height:32px;color:var(--ink-900);border-radius:50%;justify-content:center;align-items:center;font-size:.92rem;font-weight:900;display:inline-flex}.section-heading h2{color:var(--ink-900);font-size:1.15rem;font-weight:850;line-height:1.3}.section-heading p{color:var(--text-muted);margin-top:2px;font-size:.76rem;line-height:1.45}.calendar{border:1px solid var(--line-200);background:var(--mist-50);border-radius:12px;padding:12px}.cal-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.cal-title{color:var(--ink-900);font-variant-numeric:tabular-nums;font-size:.98rem;font-weight:800}.cal-nav{border:1px solid var(--line-200);background:var(--paper-0);width:44px;height:44px;color:var(--green-700);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;transition:background .14s,border-color .14s;display:inline-flex}.cal-nav:hover{border-color:var(--yellow-600);background:#fffbea}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.cal-week{color:var(--text-muted);text-align:center;padding:6px 0;font-size:.7rem;font-weight:700}.cal-week.is-weekend,.cal-cell.is-weekend{color:var(--red-700)}.cal-cell{aspect-ratio:1;min-height:40px;color:var(--ink-900);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;font-size:.86rem;font-weight:700;position:relative}.cal-cell.is-blank{cursor:default}.cal-cell.is-holiday{background:#fff3f2}.cal-cell:hover:not(.is-blank):not(.is-selected){border-color:var(--line-200);background:var(--paper-0)}.cal-cell.is-today{border:2px solid var(--green-700)}.cal-cell.is-selected{border-color:var(--yellow-500);background:var(--yellow-500);color:var(--ink-900)}.cal-dot{background:var(--green-700);border-radius:50%;width:5px;height:5px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.date-summary{flex-wrap:wrap;align-items:center;gap:7px;margin-top:14px;display:flex}.date-summary-main{color:var(--ink-900);flex-wrap:wrap;align-items:center;gap:7px;font-size:.92rem;font-weight:800;display:flex}.date-tag{border:1px solid #0000;border-radius:999px;align-items:center;min-height:26px;padding:3px 9px;font-size:.7rem;font-weight:750;display:inline-flex}.date-tag.is-weekday{color:var(--green-700);background:#edf6f1;border-color:#b9d3c8}.date-tag.is-weekend{color:var(--red-700);background:#fff3f2;border-color:#e9c3bf}.date-tag.is-promo{border-color:var(--yellow-600);color:#493b00;background:#fff8c9}.promo-disclosure{background:#fffbea;border:1px solid #ead46e;border-radius:10px;margin-top:14px;overflow:hidden}.promo-disclosure summary{color:#493b00;cursor:pointer;align-items:center;gap:8px;min-height:46px;padding:10px 12px;font-size:.82rem;font-weight:800;list-style:none;display:flex}.promo-disclosure summary::-webkit-details-marker{display:none}.promo-disclosure summary:after{content:"+";margin-left:auto;font-size:1.15rem}.promo-disclosure[open] summary:after{content:"−"}.promo-note-list{gap:8px;padding:0 12px 12px;display:grid}.promo-note{color:#4c4526;border-top:1px solid #493b0024;padding-top:9px;font-size:.78rem;line-height:1.55}.tickets-list{border-top:1px solid var(--line-200)}.ticket-group-container{border-bottom:1px solid var(--line-200)}.ticket-row{justify-content:space-between;align-items:center;gap:14px;min-height:78px;padding:14px 0;display:flex}.ticket-info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.ticket-name-row{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.ticket-dot,.breakdown-dot{border-radius:50%;flex:0 0 8px;width:8px;height:8px}.ticket-name{font-size:1rem;font-weight:850;color:var(--ink-900)!important}.ticket-price-badge{color:var(--green-700);font-variant-numeric:tabular-nums;font-size:.78rem;font-weight:800}.ticket-meta{color:var(--text-muted);font-size:.75rem;line-height:1.4}.counter-group{flex:none;grid-template-columns:44px 30px 44px;align-items:center;gap:2px;display:grid}.counter-btn{border:1px solid var(--line-200);background:var(--paper-0);width:44px;height:44px;color:var(--green-700);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;transition:background .13s,border-color .13s,transform 80ms;display:inline-flex}.counter-btn:hover:not(:disabled){border-color:var(--yellow-600);background:var(--yellow-500)}.counter-btn:active:not(:disabled){transform:scale(.96)}.counter-btn:disabled{opacity:.34;cursor:not-allowed}.counter-value{min-width:30px;color:var(--ink-900);font-variant-numeric:tabular-nums;text-align:center;font-size:1rem;font-weight:850}.bday-subpanel{border-radius:10px;margin:-2px 0 14px;padding:12px}.eligibility-heading{color:var(--ink-900);justify-content:space-between;align-items:center;gap:10px;padding-bottom:7px;font-size:.78rem;font-weight:850;display:flex}.eligibility-heading span{color:var(--text-muted);font-weight:650}.bday-subpanel-row{border-top:1px solid #1f6b521f;justify-content:space-between;align-items:center;gap:10px;min-height:58px;padding:7px 0;display:flex}.bday-label{color:var(--ink-600);align-items:center;gap:7px;font-size:.8rem;line-height:1.35;display:flex}.counter-group.mini{grid-template-columns:44px 26px 44px}.counter-group.mini .counter-value{min-width:26px;font-size:.88rem}.result-card{--text-main:#fff;--text-muted:#dcebe4;background:var(--green-700);color:#fff;border-radius:18px;padding:24px 22px 20px;animation:.18s ease-out both ticket-in;position:relative;overflow:hidden;box-shadow:0 12px 32px #171a1824}.result-card:before,.result-card:after{content:"";background:var(--mist-50);border-radius:50%;width:22px;height:22px;position:absolute;top:126px}.result-card:before{left:-11px}.result-card:after{right:-11px}@keyframes ticket-in{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}.result-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.ticket-kicker{color:var(--yellow-500);font-size:.73rem;font-weight:850}.result-header h2{color:#fff;margin-top:2px;font-size:1.2rem;font-weight:850}.visit-date-stamp{color:#fff;text-align:right;border:1px solid #ffffff47;border-radius:8px;max-width:48%;padding:6px 9px;font-size:.72rem;font-weight:750}.price-hero{border-bottom:2px dashed #ffd800c2;grid-template-columns:1fr auto;align-items:end;gap:5px 14px;margin:18px 0 20px;padding-bottom:20px;display:grid}.price-hero>span{color:var(--text-muted);font-size:.78rem;font-weight:700}.price-hero strong{color:#fff;font-variant-numeric:tabular-nums;letter-spacing:-.04em;grid-area:1/2/span 2;font-size:clamp(2rem,10vw,2.75rem);font-weight:900;line-height:1}.price-hero small{color:var(--yellow-500);font-size:.78rem;font-weight:800}.breakdown-box{margin-bottom:16px}.breakdown-item{border-bottom:1px solid #ffffff1f;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 0;display:grid}.breakdown-left{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.breakdown-dot{border:1px solid #ffffffa8}.breakdown-name{color:#fff;font-size:.9rem;font-weight:800}.breakdown-promo{color:var(--text-muted);font-size:.72rem}.breakdown-qty{color:#fff;border:1px solid #fff3;border-radius:999px;padding:2px 6px;font-size:.68rem;font-weight:750}.breakdown-val{color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.9rem;font-weight:850}.breakdown-summary{flex-wrap:wrap;gap:8px 12px;padding-top:12px;display:flex}.summary-chip{color:var(--text-muted);align-items:center;gap:6px;font-size:.72rem;font-weight:650;display:inline-flex}.checkout-hint{background:var(--yellow-500);min-height:48px;color:var(--ink-900);border-radius:9px;justify-content:center;align-items:center;gap:8px;margin:18px 0 12px;padding:10px 14px;font-size:.88rem;font-weight:850;display:flex}.hint-note{color:#fff;background:#ffd8001f;border:1px solid #ffd8007a;border-radius:9px;align-items:flex-start;gap:8px;padding:10px 12px;font-size:.76rem;line-height:1.5;display:flex}.disclaimer{color:var(--text-muted);text-align:center;font-size:.66rem;line-height:1.55}.sticky-quote{z-index:20;right:12px;bottom:max(12px, env(safe-area-inset-bottom));background:var(--ink-900);color:#fff;border:1px solid #ffffff2e;border-radius:14px;justify-content:space-between;align-items:center;gap:14px;max-width:596px;min-height:66px;margin:0 auto;padding:10px 10px 10px 16px;display:flex;position:fixed;left:12px;box-shadow:0 10px 28px #171a183d}.sticky-quote div{flex-direction:column;gap:2px;display:flex}.sticky-quote span{color:#cbd2ce;font-size:.7rem;font-weight:650}.sticky-quote strong{font-variant-numeric:tabular-nums;font-size:1rem;font-weight:850}.sticky-quote a{background:var(--yellow-500);min-height:44px;color:var(--ink-900);border-radius:9px;justify-content:center;align-items:center;padding:0 16px;font-size:.84rem;font-weight:850;text-decoration:none;display:inline-flex}@media (width<=440px){#root{padding-left:12px;padding-right:12px}.section-panel{padding:16px}.app-container>.section-panel:first-of-type{padding:8px}.calendar{padding:4px}.cal-grid{gap:2px 0}.ticket-row{gap:8px}.ticket-meta{max-width:18ch}.counter-group{grid-template-columns:44px 26px 44px}.counter-btn{width:44px;height:44px}.counter-group.mini{grid-template-columns:44px 24px 44px}.price-hero{grid-template-columns:1fr}.price-hero strong{grid-area:auto;margin:2px 0 3px}}
