:root{--bg: #f8f9fa;--bg-soft: #eef3f1;--mint: #2ecc71;--mint-deep: #27ae60;--teal: #1a6b5a;--teal-soft: #2a8f7a;--yellow: #f1c40f;--red: #e74c3c;--ink: #1c2b28;--ink-muted: #5a6f69;--glass: rgba(255, 255, 255, .55);--glass-border: rgba(255, 255, 255, .75);--shadow: 0 18px 50px rgba(26, 107, 90, .08);--radius: 20px;--font-sans: "Plus Jakarta Sans", system-ui, sans-serif;--font-display: "Fraunces", Georgia, serif}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:var(--font-sans);color:var(--ink);background:radial-gradient(ellipse 80% 50% at 10% -10%,rgba(46,204,113,.18),transparent 55%),radial-gradient(ellipse 60% 40% at 90% 5%,rgba(26,107,90,.12),transparent 50%),radial-gradient(ellipse 50% 30% at 50% 100%,rgba(241,196,15,.08),transparent 45%),var(--bg);-webkit-font-smoothing:antialiased}#root{min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit}.glass{background:var(--glass);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid var(--glass-border);box-shadow:var(--shadow);border-radius:var(--radius)}.mint-glow{box-shadow:0 0 0 1px #2ecc7159,0 8px 28px #2ecc7159}@keyframes fadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulseGlow{0%,to{box-shadow:0 0 #2ecc7173}50%{box-shadow:0 0 0 12px #2ecc7100}}@keyframes drawLine{0%{stroke-dashoffset:400}to{stroke-dashoffset:0}}@keyframes scoreCount{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.anim-fade-up{animation:fadeUp .7s ease both}.anim-fade-in{animation:fadeIn .5s ease both}.anim-delay-1{animation-delay:.12s}.anim-delay-2{animation-delay:.24s}.anim-delay-3{animation-delay:.36s}.anim-glow{animation:pulseGlow 2.4s ease-in-out infinite}.app-shell{max-width:1120px;margin:0 auto;padding:1.25rem 1.25rem 4rem}.app-nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;margin-bottom:1.5rem}.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none}.brand-mark{width:36px;height:36px}.brand-name{font-family:var(--font-display);font-weight:700;font-size:1.35rem;letter-spacing:.04em;color:var(--teal)}.nav-link{background:transparent;border:none;color:var(--ink-muted);font-weight:500;padding:.4rem .75rem;border-radius:999px;transition:color .2s,background .2s}.nav-link:hover,.nav-link.active{color:var(--teal);background:#2ecc711f}.hero{display:grid;gap:2rem;align-items:center;min-height:min(72vh,640px);padding:1rem 0 2.5rem}@media(min-width:900px){.hero{grid-template-columns:1.1fr .9fr;gap:3rem}}.hero-copy h1{font-family:var(--font-display);font-size:clamp(2.4rem,5vw,3.75rem);line-height:1.08;margin:0 0 1rem;color:var(--ink);font-weight:700}.hero-sub{font-size:1.05rem;line-height:1.55;color:var(--ink-muted);margin:0 0 1.75rem;max-width:34ch}.cta-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:linear-gradient(135deg,var(--mint),var(--mint-deep));color:#fff;border:none;border-radius:999px;padding:.95rem 1.6rem;font-weight:600;font-size:1rem;transition:transform .2s,filter .2s}.cta-primary:hover{transform:translateY(-2px);filter:brightness(1.05)}.cta-secondary{display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--teal);border:1.5px solid rgba(26,107,90,.35);border-radius:999px;padding:.85rem 1.4rem;font-weight:600;transition:background .2s,border-color .2s}.cta-secondary:hover{background:#2ecc711a;border-color:var(--mint)}.hero-visual{position:relative;padding:1.5rem;min-height:280px}.hero-score{font-family:var(--font-display);font-size:3rem;color:var(--mint-deep);margin:0;animation:scoreCount .8s ease both .3s}.hero-score-label{color:var(--ink-muted);font-size:.9rem;margin:.25rem 0 1.25rem}.mini-chart{width:100%;height:120px;overflow:visible}.mini-chart path{fill:none;stroke:var(--mint);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:400;animation:drawLine 1.6s ease forwards .4s}.section{margin-top:3.5rem}.section-title{font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.1rem);margin:0 0 .5rem}.section-lead{color:var(--ink-muted);margin:0 0 1.5rem;max-width:48ch}.feature-grid{display:grid;gap:1rem;grid-template-columns:1fr}@media(min-width:640px){.feature-grid{grid-template-columns:1fr 1fr}}@media(min-width:960px){.feature-grid{grid-template-columns:repeat(4,1fr)}}.feature-card{padding:1.35rem 1.25rem;transition:transform .25s ease,box-shadow .25s ease}.feature-card:hover{transform:translateY(-4px)}.feature-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#2ecc7126;color:var(--teal);font-size:1.15rem;margin-bottom:.85rem}.feature-card h3{font-family:var(--font-display);font-size:1.1rem;margin:0 0 .4rem}.feature-card p{margin:0;font-size:.9rem;color:var(--ink-muted);line-height:1.45}.hub-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem}.hub-tab{border:1px solid rgba(26,107,90,.2);background:#fff6;color:var(--ink-muted);border-radius:999px;padding:.55rem 1rem;font-weight:600;font-size:.9rem;transition:all .2s}.hub-tab.active{background:var(--teal);color:#fff;border-color:var(--teal)}.hub-panel{padding:1.5rem}.hub-tagline{font-family:var(--font-display);font-size:1.35rem;margin:0 0 .35rem}.hub-tagline-th{color:var(--ink-muted);margin:0 0 1.25rem;font-size:.95rem}.article-list{display:grid;gap:.85rem;margin-bottom:1.25rem}.article-item{padding:1rem 1.1rem;border-radius:14px;background:#ffffff8c;border:1px solid rgba(26,107,90,.08)}.article-item h4{margin:0 0 .35rem;font-size:1rem}.article-item p{margin:0;font-size:.88rem;color:var(--ink-muted);line-height:1.45}.dash-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.dash-header h1{font-family:var(--font-display);font-size:clamp(1.7rem,3vw,2.2rem);margin:0 0 .25rem}.dash-header p{margin:0;color:var(--ink-muted)}.dash-header-actions{display:flex;flex-wrap:wrap;align-items:stretch;gap:.85rem}.pdf-export-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.15rem;border-radius:14px;border:1.5px solid rgba(46,204,113,.55);background:linear-gradient(145deg,#fff,#2ecc711f);color:var(--teal);font-weight:700;font-size:.88rem;cursor:pointer;box-shadow:0 8px 22px #1a6b5a1a;transition:transform .15s,box-shadow .15s;align-self:center}.pdf-export-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 28px #2ecc7138}.pdf-export-btn:disabled{opacity:.55;cursor:not-allowed}.pdf-export-icon{font-size:1.05rem}.pdf-capture-host{position:fixed;left:-10000px;top:0;width:794px;pointer-events:none;z-index:-1}.pdf-report-stack{display:flex;flex-direction:column;gap:24px;width:794px}.pdf-report{width:794px;min-height:1040px;padding:36px 40px 40px;background:#fff;color:#1c2b28;font-family:Noto Sans Thai,Plus Jakarta Sans,sans-serif;box-sizing:border-box}.pdf-page{break-before:page;page-break-before:always}.pdf-page:first-child{break-before:auto;page-break-before:auto}.pdf-page-end{margin:1.25rem 0 0;text-align:center;font-size:.72rem;color:#5a6f69;letter-spacing:.02em}.pdf-section-last{margin-bottom:.5rem}.pdf-header{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid #2ecc71;padding-bottom:14px;margin-bottom:18px}.pdf-brand{display:flex;align-items:center;gap:12px}.pdf-logo{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#2ecc71,#1a6b5a);color:#fff;font-weight:800;font-size:1.25rem;display:grid;place-items:center;font-family:Fraunces,Georgia,serif}.pdf-brand-name{margin:0;font-family:Fraunces,Georgia,serif;font-size:1.35rem;font-weight:700;letter-spacing:.04em}.pdf-brand-tag{margin:.1rem 0 0;font-size:.78rem;color:#5a6f69}.pdf-meta{text-align:right;font-size:.75rem;color:#5a6f69}.pdf-meta p{margin:0}.pdf-meta-strong{font-weight:700;color:#1c2b28!important;margin-top:.2rem!important}.pdf-title{margin:0 0 .35rem;font-family:Fraunces,Georgia,serif;font-size:1.55rem;color:#1a6b5a}.pdf-lead{margin:0 0 1.25rem;font-size:.88rem;color:#5a6f69}.pdf-section{margin-bottom:1.35rem;page-break-inside:avoid}.pdf-section h2{margin:0 0 .65rem;font-size:1.05rem;color:#1a6b5a;border-left:3px solid #2ecc71;padding-left:.55rem}.pdf-h3{margin:.85rem 0 .5rem;font-size:.95rem;color:#1a6b5a}.pdf-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.pdf-card{background:#f7faf8;border:1px solid rgba(26,107,90,.12);border-radius:10px;padding:.7rem .8rem}.pdf-block{margin-top:.55rem}.pdf-block p:last-child{margin:.25rem 0 0;font-size:.86rem;line-height:1.5}.pdf-label{margin:0;font-size:.7rem;font-weight:700;color:#5a6f69;text-transform:uppercase;letter-spacing:.04em}.pdf-value{margin:.25rem 0 0;font-size:.95rem;font-weight:700}.pdf-sub{margin:.25rem 0 0;font-size:.75rem;color:#5a6f69;line-height:1.4}.pdf-weather{margin-top:.75rem;display:flex;align-items:center;gap:1.25rem;padding:.85rem 1rem;border-radius:12px;background:linear-gradient(135deg,#2ecc711f,#f7faf8);border:1px solid rgba(46,204,113,.35)}.pdf-score{margin:.15rem 0 0;font-family:Fraunces,Georgia,serif;font-size:2rem;font-weight:700;color:#1a6b5a}.pdf-status{margin:0;font-weight:700;font-size:1rem}.pdf-heatmap{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.68rem}.pdf-heatmap th,.pdf-heatmap td{border:1px solid rgba(26,107,90,.15);padding:.35rem .2rem;text-align:center;vertical-align:middle}.pdf-heatmap th{background:#eef6f1;font-weight:700}.pdf-slot{text-align:left!important;font-weight:600;width:52px;padding-left:.4rem!important}.pdf-cell{line-height:1.15}.pdf-cell.green{background:#2ecc7147}.pdf-cell.yellow{background:#f1c40f52}.pdf-cell.red{background:#e74c3c47}.pdf-cell-score{display:block;font-weight:800;font-size:.85rem}.pdf-cell-status{display:block;font-size:.52rem;font-weight:700;letter-spacing:.03em;opacity:.85}.pdf-heat-grid{display:flex;flex-direction:column;gap:6px}.pdf-heat-header,.pdf-heat-row{display:grid;grid-template-columns:48px repeat(7,1fr);gap:6px;align-items:stretch}.pdf-heat-day,.pdf-heat-corner{text-align:center;font-size:.68rem;font-weight:700;color:#5a6f69;padding:.2rem 0}.pdf-heat-slot{display:flex;align-items:center;justify-content:flex-end;padding-right:.35rem;font-size:.72rem;font-weight:700;color:#5a6f69;font-family:Noto Sans Thai,sans-serif}.pdf-heat-tile{min-height:52px;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:1px solid transparent;box-sizing:border-box}.pdf-heat-tile.empty{background:#f2f5f4;color:#5a6f69}.pdf-heat-tile.green{background:#2ecc714d;border-color:#2ecc7166;color:#1a6b5a}.pdf-heat-tile.yellow{background:#f1c40f57;border-color:#f1c40f73;color:#8a6d00}.pdf-heat-tile.red{background:#e74c3c4d;border-color:#e74c3c66;color:#a33226}.pdf-heat-score{font-size:1rem;font-weight:800;line-height:1;letter-spacing:-.02em}.pdf-heat-status{font-size:.5rem;font-weight:700;letter-spacing:.05em;opacity:.85}.pdf-heat-legend{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:.65rem;font-size:.7rem;color:#5a6f69}.pdf-legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.3rem;vertical-align:middle}.pdf-legend-dot.green{background:#2ecc71}.pdf-legend-dot.yellow{background:#f1c40f}.pdf-legend-dot.red{background:#e74c3c}.pdf-aa-context{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin-top:.35rem}.pdf-block-wide{grid-column:1 / -1}.pdf-golden{padding:.7rem .85rem;border-radius:10px;background:#2ecc7124;border:1px solid rgba(46,204,113,.4);margin-bottom:.75rem}.pdf-golden p{margin:0}.pdf-hourly-bars{display:flex;align-items:flex-end;gap:4px;height:110px;padding:.35rem 0;overflow:hidden}.pdf-hour-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.52rem;color:#5a6f69}.pdf-hour-bar{width:100%;max-width:18px;border-radius:3px 3px 0 0}.pdf-mode{margin:0 0 .25rem;font-weight:700;font-size:.95rem}.pdf-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin:.55rem 0 .75rem}.pdf-tags span{padding:.25rem .55rem;border-radius:999px;background:#1a6b5a1a;color:#1a6b5a;font-size:.72rem;font-weight:600}.pdf-steps{margin:0;padding:0;list-style:none;display:grid;gap:.55rem}.pdf-steps li{margin:0;font-size:.86rem;line-height:1.45;display:grid;grid-template-columns:28px 1fr;gap:.65rem;align-items:start}.pdf-step-num{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#2ecc71,#1a6b5a);color:#fff;font-size:.78rem;font-weight:700;display:grid;place-items:center;flex-shrink:0}.pdf-steps p{margin:.2rem 0 0;color:#3d524c}.pdf-footer{margin-top:1.5rem;padding-top:.85rem;border-top:1px solid rgba(26,107,90,.2);font-size:.7rem;color:#5a6f69;line-height:1.45}.pdf-footer p{margin:.15rem 0}.weather-card{padding:1.25rem 1.4rem;min-width:220px}.weather-score{font-family:var(--font-display);font-size:2.4rem;color:var(--red);margin:.2rem 0;line-height:1}.weather-status{font-weight:600;color:var(--ink);margin:0}.weather-meta{font-size:.85rem;color:var(--ink-muted);margin:.35rem 0 0}.dash-grid{display:grid;gap:1.25rem}@media(min-width:900px){.dash-grid-2{grid-template-columns:1.1fr .9fr}}.panel{padding:1.25rem 1.35rem}.panel h2{font-family:var(--font-display);font-size:1.25rem;margin:0 0 .35rem}.panel-lead{margin:0 0 1rem;color:var(--ink-muted);font-size:.9rem}.onboard-form{display:grid;gap:1rem}.onboard-form-geo{grid-template-columns:1fr}@media(min-width:900px){.onboard-form-geo{grid-template-columns:1fr 1fr 1.4fr 1.2fr;align-items:start}.onboard-form-geo .onboard-submit{grid-column:1 / -1;justify-self:start}}.field{position:relative}.field label{display:block;font-size:.8rem;font-weight:600;color:var(--ink-muted);margin-bottom:.35rem}.field input{width:100%;padding:.7rem .85rem;border-radius:12px;border:1.5px solid rgba(26,107,90,.2);background:#ffffffb3;color:var(--ink);outline:none;transition:border-color .2s,box-shadow .2s}.field input:focus{border-color:var(--mint);box-shadow:0 0 0 3px #2ecc7133}.field-hint{margin:.35rem 0 0;font-size:.72rem;color:var(--ink-muted);line-height:1.35}.pdpa-note{margin:.45rem 0 0;font-size:.7rem;color:var(--teal);line-height:1.4;opacity:.9}.field-autocomplete{z-index:5}.place-dropdown{list-style:none;margin:.35rem 0 0;padding:.35rem;position:absolute;left:0;right:0;top:calc(100% - 1.1rem);z-index:20;max-height:240px;overflow-y:auto;border-radius:12px;background:#fffffff5;border:1px solid rgba(26,107,90,.18);box-shadow:0 12px 32px #1a6b5a1f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.place-option{width:100%;text-align:left;border:none;background:transparent;padding:.55rem .65rem;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;gap:.1rem;color:var(--ink)}.place-option:hover{background:#2ecc711f}.place-option strong{font-size:.88rem}.place-option span{font-size:.72rem;color:var(--ink-muted)}.gps-btn{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.7rem .85rem;border-radius:12px;border:1.5px solid rgba(46,204,113,.45);background:linear-gradient(135deg,#2ecc7126,#ffffffb3);color:var(--teal);font-weight:700;font-size:.88rem;cursor:pointer;transition:transform .15s,box-shadow .15s}.gps-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #2ecc7133}.gps-btn:disabled{opacity:.7;cursor:wait}.gps-pin{font-size:1rem}.heatmap-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.heatmap{display:grid;grid-template-columns:88px repeat(7,minmax(64px,1fr));gap:6px;min-width:580px}.heatmap-corner,.heatmap-day,.heatmap-slot{font-size:.72rem;font-weight:600;color:var(--ink-muted);text-align:center;padding:.25rem}.heatmap-slot{text-align:right;padding-right:.5rem;display:flex;align-items:center;justify-content:flex-end}.heat-cell{aspect-ratio:1;border-radius:12px;border:1px solid transparent;position:relative;transition:transform .15s,filter .15s,box-shadow .15s;min-height:56px;padding:.35rem .2rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;cursor:pointer;font-family:var(--font-sans)}.heat-cell:hover{transform:scale(1.04);filter:brightness(1.03)}.heat-score{font-size:clamp(.95rem,2.2vw,1.15rem);font-weight:800;line-height:1;letter-spacing:-.02em;color:var(--ink)}.heat-status{font-size:.52rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;line-height:1.2;opacity:.78;color:var(--ink)}.heat-lock{position:absolute;top:4px;right:5px;font-size:.65rem;line-height:1;filter:drop-shadow(0 1px 1px rgba(0,0,0,.15))}.heat-cell.green{background:#2ecc7147;border-color:#2ecc7159}.heat-cell.green .heat-score,.heat-cell.green .heat-status{color:#1a6b5a}.heat-cell.yellow{background:#f1c40f52;border-color:#f1c40f66}.heat-cell.yellow .heat-score,.heat-cell.yellow .heat-status{color:#8a6d00}.heat-cell.red{background:#e74c3c47;border-color:#e74c3c59}.heat-cell.red .heat-score,.heat-cell.red .heat-status{color:#a33226}.heat-cell.locked{box-shadow:inset 0 0 0 1.5px #2ecc718c}.heat-legend{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;margin-top:.9rem;font-size:.78rem;color:var(--ink-muted)}.legend-dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:.35rem;vertical-align:middle}.timeline-svg{width:100%;height:auto;display:block}.timeline-peak{cursor:pointer}.peak-glow{fill:var(--mint);opacity:.35;animation:pulseGlow 2s ease-in-out infinite}.locked-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#f8f9fa73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:inherit;pointer-events:none}.chart-shell{position:relative}.peak-badge{display:inline-flex;align-items:center;gap:.4rem;margin-top:.75rem;padding:.45rem .85rem;border-radius:999px;background:#2ecc7126;color:var(--teal);font-weight:600;font-size:.85rem;border:none;transition:background .2s}.peak-badge:hover{background:#2ecc7147}.insight-text{margin:.75rem 0 0;font-size:.88rem;color:var(--ink-muted);line-height:1.5}.action-algorithm .aa-header{margin-bottom:1.25rem}.action-algorithm .aa-header h2{margin-bottom:.35rem}.aa-section-title{margin:0 0 .75rem;font-family:var(--font-display);font-size:1.05rem;font-weight:600;color:var(--teal);letter-spacing:.01em}.aa-context{margin-bottom:1.35rem}.aa-context-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.aa-context-box{padding:.95rem 1rem;border-radius:14px;background:linear-gradient(145deg,#ffffffb8,#eef3f18c);border:1px solid rgba(46,204,113,.22);box-shadow:0 8px 24px #1a6b5a0f}.aa-context-box--wide{grid-column:1 / -1}.aa-context-label{display:inline-block;margin-bottom:.4rem;padding:.15rem .55rem;border-radius:999px;background:#2ecc7124;color:var(--teal);font-size:.72rem;font-weight:700;letter-spacing:.02em}.aa-context-box p{margin:0;font-size:.9rem;line-height:1.55;color:var(--ink)}.aa-tactics{margin-top:.25rem}@media(max-width:720px){.aa-context-grid{grid-template-columns:1fr}.aa-context-box--wide{grid-column:auto}}.action-steps{list-style:none;margin:0;padding:0;display:grid;gap:.85rem}.action-step{display:grid;grid-template-columns:auto 1fr;gap:.85rem;padding:.9rem 1rem;border-radius:14px;background:#ffffff80;border:1px solid rgba(26,107,90,.1)}.step-num{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--mint),var(--teal));color:#fff;display:grid;place-items:center;font-weight:700;font-size:.85rem}.action-step h3{margin:0 0 .15rem;font-size:1rem}.action-step .th{font-size:.8rem;color:var(--teal-soft);font-weight:500}.action-step p{margin:.35rem 0 0;font-size:.88rem;color:var(--ink-muted);line-height:1.45}.audit-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.chip{padding:.35rem .75rem;border-radius:999px;background:#1a6b5a1a;color:var(--teal);font-size:.8rem;font-weight:600}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c2b2873;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;padding:1rem;z-index:100;animation:fadeIn .25s ease}.modal-card{width:min(420px,100%);padding:1.75rem 1.5rem;position:relative;animation:fadeUp .35s ease}.modal-close{position:absolute;top:.85rem;right:.85rem;border:none;background:transparent;font-size:1.25rem;color:var(--ink-muted);line-height:1;padding:.25rem}.modal-card h2{font-family:var(--font-display);font-size:1.45rem;margin:0 0 .5rem}.modal-card .price{font-family:var(--font-display);font-size:2rem;color:var(--teal);margin:.5rem 0}.modal-card .price span{font-size:.95rem;font-family:var(--font-sans);color:var(--ink-muted);font-weight:500}.modal-copy{color:var(--ink-muted);font-size:.92rem;line-height:1.5;margin:0 0 1.25rem}.pay-buttons{display:grid;gap:.65rem}.pay-btn{border:none;border-radius:14px;padding:.9rem 1rem;font-weight:600;transition:transform .15s,filter .15s}.pay-btn:hover{transform:translateY(-1px);filter:brightness(1.03)}.pay-btn.apple{background:#1c2b28;color:#fff}.pay-btn.card{background:linear-gradient(135deg,var(--mint),var(--mint-deep));color:#fff}.thank-you{text-align:center;padding:.5rem 0}.thank-you h3{font-family:var(--font-display);color:var(--teal);margin:0 0 .5rem}.back-link{background:none;border:none;color:var(--teal);font-weight:600;margin-bottom:1rem;padding:0}.back-link:hover{text-decoration:underline}
