@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--bg:#f8f7f2;--ink:#282f2b;--green:#355c48;--muted:#72766e;--line:#e0e2d9;--white:#fffefa}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:36px}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #8bab79;outline-offset:5px}.wrap{width:min(1180px,calc(100% - 80px));margin:auto}.header{height:112px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:inline-flex;align-items:center;font-family:'Manrope',sans-serif;font-size:27px;font-weight:800;letter-spacing:-1.4px}.brandmark{display:inline-grid;place-items:center;border:1.8px solid var(--green);border-radius:9px;width:29px;height:29px;margin-right:9px;font-size:25px;line-height:1;color:var(--green);transform:rotate(-7deg)}.brand-dot{color:var(--green)}nav{display:flex;gap:32px;font-size:14px;font-weight:500}nav a:hover,.text-link:hover{color:var(--green);text-decoration:underline;text-underline-offset:5px}.button{display:inline-flex;align-items:center;justify-content:center;gap:26px;background:var(--green);color:white;padding:15px 24px;border-radius:7px;font-size:14px;font-weight:550;border:1px solid var(--green);transition:background .15s}.button:hover{background:#254a38}.button.small{padding:10px 17px;gap:19px}.hero{display:grid;grid-template-columns:1fr 1.08fr;align-items:center;min-height:610px;padding-top:28px;padding-bottom:65px;gap:8px}.eyebrow{font-size:11px;font-weight:650;letter-spacing:1.9px;color:var(--green);display:flex;align-items:center;gap:9px}.eyebrow>span{width:6px;height:6px;border-radius:50%;background:var(--green)}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:'Manrope',sans-serif}h1{font-size:clamp(52px,5.5vw,76px);line-height:1.12;letter-spacing:-4.1px;font-weight:550;margin:23px 0}h1 em{font-style:normal;color:var(--green)}.hero-copy>p{color:#6d726a;font-size:18px;line-height:1.75}.hero-actions{display:flex;gap:25px;align-items:center;margin-top:31px}.text-link{font-size:14px;display:flex;gap:15px}.hero-note{font-size:12px;color:var(--muted);margin-top:21px}.hero-note span{margin-right:8px;color:var(--green)}.hero-visual{position:relative;min-width:0;height:505px}.host-art{position:absolute;top:3px;right:-15px;width:100%;height:355px;object-fit:contain;mix-blend-mode:multiply}.art-note{position:absolute;right:37px;top:3px;font-size:12px;color:var(--muted);z-index:1;transform:rotate(4deg)}.mini-app{position:absolute;bottom:15px;left:22px;width:390px;border:1px solid #dce0d5;border-radius:12px;background:var(--white);box-shadow:0 18px 40px #334a3211;transform:rotate(-3deg);padding:19px;z-index:2}.mini-title{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:600}.subtle{color:var(--muted);font-size:12px;font-weight:400}.live-dot{display:inline-block;width:6px;height:6px;background:#5b8960;border-radius:50%;margin-right:7px}.mini-tables{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:21px 0}.mini-table{text-align:center;padding:14px 3px;border:1px solid #c8d6bc;border-radius:6px;font-size:13px;font-weight:600}.mini-table small{display:block;font-size:9px;font-weight:400;margin-top:6px}.available{background:#eaf0e4;color:#48613e}.dining{background:#f3e9da;color:#826b49}.reserved{background:#eae9f0;color:#736984}.cleaning{background:#eceeed;color:#6d7773}.mini-bottom{border-top:1px solid var(--line);padding-top:12px;display:flex;justify-content:space-between;font-size:10px}.mini-bottom b{margin-left:8px;font-weight:500}.mini-bottom a{color:var(--green)}.welcome-chip{position:absolute;bottom:13px;right:-7px;background:#edf1e6;border:1px solid #dce2d3;border-radius:10px;padding:12px 15px;display:flex;gap:10px;align-items:center;transform:rotate(4deg);z-index:3;font-size:11px}.welcome-chip>span{border-radius:50%;background:#d4e0c9;padding:1px 7px;color:var(--green)}.welcome-chip small{display:block;color:var(--muted);font-size:10px}.intro-strip{display:flex;align-items:center;justify-content:space-between;gap:22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px 0;color:#7b7f76}.intro-strip>span{font-size:9px;letter-spacing:1.3px;line-height:1.8}.intro-strip p{font-family:'Manrope',sans-serif;font-size:15px;font-weight:600}.intro-strip i{font-size:12px;font-style:normal;color:#a7b39b}.section{padding-top:100px;padding-bottom:100px}h2{font-size:43px;line-height:1.22;letter-spacing:-1.8px;font-weight:550;margin-top:17px} .section-heading>p{margin-top:20px;color:var(--muted);font-size:16px}.three-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:54px}.problems .three-grid{margin-top:49px}.icon{width:38px;height:38px;display:flex;align-items:center;color:var(--green);margin-bottom:18px}.icon svg{width:29px;height:29px;stroke:currentColor;fill:none;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}h3{font-size:18px;font-weight:650;letter-spacing:-.4px}.three-grid article>p,.feature-grid article>p{font-size:14px;line-height:1.8;color:var(--muted);margin-top:12px}.how{background:#efefe7;border-block:1px solid #e7e8dd}.centered{text-align:center}.centered .eyebrow{justify-content:center}.steps{margin-top:52px;gap:40px}.steps article{border-top:1px solid #cfd6c8;padding-top:24px}.step-number{display:block;font-size:12px;color:var(--green);margin-bottom:16px}.step-ui{height:66px;background:#f8f8f2;border:1px solid #e0e3d7;border-radius:8px;margin-top:27px;display:flex;gap:9px;align-items:center;justify-content:center;padding:9px;font-size:11px;white-space:nowrap}.step-ui>span{padding:5px 7px}.step-ui>span:first-child{background:#e7ecdf;border-radius:4px}.guest-row b{border-radius:50%;background:#e6eadf;padding:7px 9px;font-size:10px;color:var(--green)}.guest-row>span:last-child{margin-left:auto;color:var(--muted)}.showcase{padding-bottom:70px}.product-app{margin-top:47px;border:1px solid #d9ddd2;border-radius:12px;background:#fffefa;box-shadow:0 15px 45px #2f48300a;overflow:hidden;text-align:left}.app-header{padding:22px 26px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:15px}.app-header>div{display:flex;align-items:center;gap:26px}.app-brand{font-weight:750;font-size:18px;letter-spacing:-.7px}.app-brand>span{color:var(--green)}.restaurant{border-left:1px solid var(--line);padding-left:24px;font-size:12px}.restaurant>span{margin-left:20px}.demo-label{font-size:11px;color:var(--muted);background:#f0f1e9;border-radius:5px;padding:5px 9px}.app-body{display:grid;grid-template-columns:1fr 300px}.floor{padding:28px}.floor-heading{display:flex;justify-content:space-between;gap:15px;align-items:center}.floor-heading h3{font-size:21px;font-weight:550}.floor-heading p{font-size:12px;color:var(--muted);margin-top:3px}.reset{border:1px solid var(--line);border-radius:5px;background:transparent;padding:6px 9px;font-size:11px;color:var(--muted)}.filters{display:flex;flex-wrap:wrap;gap:6px;margin:26px 0}.filters button{padding:7px 10px;border:1px solid transparent;background:transparent;color:var(--muted);font-size:12px;border-radius:6px}.filters button.active{background:#edf1e7;color:var(--green);border-color:#dbe2d1}.filters button span{font-size:10px;margin-left:5px}.floor-caption{display:flex;justify-content:space-between;letter-spacing:1px;font-size:9px;color:var(--muted);margin:20px 0}.floor-caption span{letter-spacing:0}.table-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:98px;align-items:stretch;align-content:start;gap:21px;padding:5px 4px 17px;min-height:241px}.table-card{position:relative;height:98px;min-height:98px;width:100%;border:1px solid #cdd9c3;border-radius:7px;display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:14px;animation:fade-up .45s cubic-bezier(.22,1,.36,1) both;animation-delay:var(--d,0s)}.table-card:before,.table-card:after{content:'';position:absolute;width:42%;height:5px;border:1px solid currentColor;opacity:.22;border-radius:4px;background:inherit;left:29%}.table-card:before{top:-7px}.table-card:after{bottom:-7px}.table-card.dining{border-color:#e1d6c2}.table-card.reserved{border-color:#dad6e1}.table-card.cleaning{border-color:#d9dfdc}.table-card b{font-weight:600}.table-card small{font-size:10px;margin-top:5px}.table-card .seat-count{font-size:9px;opacity:.75;margin-top:2px}.legend{display:flex;gap:19px;flex-wrap:wrap;margin-top:23px;color:var(--muted);font-size:10px}.legend>span{display:flex;align-items:center;gap:5px}.legend i{width:7px;height:7px;border-radius:50%;border:1px solid #0001}.queue{border-left:1px solid var(--line);padding:29px 20px;background:#fafaf5}.queue-heading{display:flex;align-items:center;justify-content:space-between}.queue-heading h3{font-size:15px}.queue-heading>span{font-size:10px;background:#e9ece2;border-radius:5px;padding:3px 6px}.queue>p{font-size:11px;color:var(--muted);margin:6px 0 19px}.queue-item{background:var(--white);border:1px solid var(--line);border-radius:7px;padding:13px;margin-bottom:10px;animation:fade-up .4s cubic-bezier(.22,1,.36,1) both;animation-delay:var(--d,0s)}.guest-info{display:flex;align-items:center;gap:10px;font-size:12px}.avatar{display:grid;place-items:center;border-radius:50%;background:#efede4;width:30px;height:30px;font-size:10px;color:#737766}.guest-info strong{font-weight:550}.guest-info small{display:block;color:var(--muted);font-size:10px}.seat-button{width:100%;padding:7px 10px;background:var(--green);color:white;border:0;border-radius:4px;font-size:11px;margin-top:11px}.seat-button:hover{background:#254a38}.demo-tip{display:flex;gap:12px;margin-top:20px;padding:0 4px;color:var(--muted);font-size:11px}.demo-tip>span{font-size:21px;color:var(--green)}.app-footer{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:12px 25px;font-size:10px;color:var(--muted)}.demo-status{font-size:12px;color:var(--green);text-align:center;margin-top:18px;min-height:20px}.features-heading{display:flex;justify-content:space-between;gap:30px;align-items:flex-end}.features-heading>p{font-size:15px;color:var(--muted);padding-bottom:5px}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);column-gap:65px;row-gap:43px;margin-top:53px}.feature-grid article{border-top:1px solid var(--line);padding-top:26px}.feature-grid .icon{margin-bottom:12px}.feature-grid h3{font-size:17px}.use-cases{background:#eeefe7}.use-grid{gap:22px;margin-top:45px}.use-grid article{border:1px solid #d8dece;border-radius:9px;padding:28px;background:#f8f8f0}.use-label{font-size:9px;letter-spacing:1px;color:var(--green)}.use-grid h3{font-size:23px;line-height:1.5;font-weight:500;margin-top:23px}.faq{display:grid;grid-template-columns:1fr 1.35fr;gap:70px}.faq>div>p{color:var(--muted);font-size:14px;margin-top:22px}details{border-bottom:1px solid var(--line)}details:first-child{border-top:1px solid var(--line)}summary{font-size:15px;font-weight:500;padding:22px 35px 22px 0;position:relative;cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}summary:after{content:'+';position:absolute;right:4px;top:19px;color:var(--green);font-size:22px;font-weight:400}details[open] summary:after{content:'−'}details p{font-size:14px;color:var(--muted);padding:0 28px 22px 0;line-height:1.8}.final-cta{background:#e7eddf;border-radius:16px;text-align:center;padding:65px 20px}.final-cta .eyebrow{justify-content:center}.final-cta h2{font-size:48px;margin-top:20px}.final-cta p{font-size:16px;color:#6d7768;margin-top:20px}.final-cta .button{margin-top:28px}.cta-note{display:block;font-size:11px;color:#77816f;margin-top:17px}.footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;padding-top:64px;padding-bottom:26px}.footer .brand{font-size:24px}.footer p{font-size:12px;color:var(--muted);margin-top:11px}.footer-bottom{width:100%;display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:40px;padding-top:22px;font-size:10px;color:var(--muted)}
@media(min-width:1400px){.hero{min-height:660px}.hero-visual{height:535px}.host-art{height:390px}.mini-app{bottom:15px}}
@media(max-width:1000px){.wrap{width:calc(100% - 48px)}.header nav{gap:20px}.hero{gap:0}.hero-actions{gap:18px;flex-wrap:wrap}h1{font-size:58px;letter-spacing:-3px}.hero-visual{height:440px}.host-art{right:-10px;height:300px;top:25px}.mini-app{left:0;width:340px}.welcome-chip{right:-9px;bottom:-15px}.art-note{right:0;font-size:10px}.three-grid{gap:25px}.app-body{grid-template-columns:1fr 250px}.floor{padding:23px}.table-grid{gap:17px}.feature-grid{column-gap:35px}.intro-strip{gap:15px}.intro-strip p{font-size:12px}.intro-strip>span{font-size:8px}.faq{gap:45px}.hero .eyebrow{font-size:9px}}
@media(max-width:760px){.wrap{width:calc(100% - 40px)}.header{height:84px}.header nav{display:none}.header .brand{font-size:23px}.header .small{font-size:11px;padding:9px 12px;gap:10px}.hero{grid-template-columns:1fr;padding-top:28px;padding-bottom:54px;gap:26px}.hero-copy{text-align:center}.hero-copy .eyebrow{justify-content:center;font-size:9px;letter-spacing:1.3px}h1{font-size:59px;line-height:1.12;margin:22px 0;letter-spacing:-3px}.hero-copy>p{font-size:16px}.hero-actions{justify-content:center;gap:20px}.hero-note{margin-top:16px}.hero-visual{height:440px;width:min(490px,100%);margin:auto}.host-art{height:315px;top:5px;right:0}.art-note{top:0;right:30px;font-size:10px}.mini-app{width:83%;left:4%;bottom:20px;padding:16px}.welcome-chip{right:0;bottom:-5px;padding:9px 12px}.intro-strip{flex-wrap:wrap;justify-content:center;text-align:center;gap:12px;padding:24px 0}.intro-strip>span{width:100%;font-size:9px}.intro-strip>span br{display:none}.intro-strip p{font-size:11px}.intro-strip i{font-size:8px}.section{padding-top:68px;padding-bottom:68px}h2{font-size:35px;letter-spacing:-1.4px}.section-heading>p{font-size:14px}.section-heading>p br{display:none}.three-grid{grid-template-columns:1fr;gap:32px}.problems .three-grid{margin-top:35px}.problems .three-grid article{border-top:1px solid var(--line);padding-top:24px}.icon{margin-bottom:10px}.steps{gap:28px;margin-top:35px}.steps article{display:grid;grid-template-columns:35px 1fr;column-gap:5px}.step-number{grid-row:1 / 4;margin-top:4px}.steps article>p,.steps .step-ui{grid-column:2}.step-ui{justify-content:flex-start;margin-top:16px;padding-left:14px}.product-app{margin-top:30px}.app-header{padding:16px;align-items:flex-start}.app-header>div{gap:5px;flex-direction:column;align-items:flex-start}.restaurant{padding:0;border:0;font-size:10px}.restaurant>span{margin-left:5px}.demo-label{font-size:9px;margin-top:6px}.app-body{grid-template-columns:1fr}.floor{padding:20px 16px}.floor-heading h3{font-size:19px}.filters{gap:2px;margin:20px 0}.filters button{padding:6px 7px;font-size:10px}.filters button span{font-size:9px;margin-left:3px}.table-grid{gap:19px 12px;min-height:220px;padding:4px 0 10px;grid-auto-rows:86px}.table-card{height:86px;min-height:86px}.table-card small{font-size:9px}.table-card .seat-count{font-size:8px}.legend{font-size:9px;gap:12px;margin-top:19px}.queue{border-left:0;border-top:1px solid var(--line);padding:21px 16px}.queue-item{padding:11px}.demo-tip{margin-top:13px}.app-footer{font-size:8px;padding:11px 15px}.features-heading{display:block}.features-heading>p{font-size:14px;margin-top:20px}.feature-grid{grid-template-columns:1fr 1fr;column-gap:24px;row-gap:29px;margin-top:30px}.feature-grid h3{font-size:16px}.feature-grid article>p{font-size:13px}.use-grid{margin-top:32px;gap:15px}.use-grid article{padding:25px}.use-grid h3{font-size:24px;margin-top:16px}.faq{grid-template-columns:1fr;gap:30px}.faq>div>p{margin-top:14px}.final-cta{padding:48px 18px}.final-cta h2{font-size:38px}.final-cta .eyebrow{font-size:9px;letter-spacing:1.3px}.final-cta p{font-size:14px}.footer{padding-top:43px;gap:27px}.footer nav{font-size:12px;gap:22px}.footer-bottom{margin-top:2px;font-size:9px}.mini-table small{font-size:8px}.mini-bottom{font-size:9px}.mini-bottom b{margin-left:4px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.site-loader{display:none!important}.hero-copy,.hero-visual,.header,.reveal,.table-card,.queue-item,.mini-app,.welcome-chip{opacity:1!important;transform:none!important}}

/* Consistent, always-visible action icons. */
.button,.button.small{gap:10px;border-radius:8px;min-height:44px}
.text-link,.mini-bottom a,.reset,.seat-button{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.text-link{align-items:center}
.action-icon{display:block;width:20px;height:20px;min-width:20px;flex:0 0 20px;opacity:1;visibility:visible;stroke-width:1.5;vertical-align:middle;pointer-events:none}
@media(max-width:760px){.action-icon{width:18px;height:18px;min-width:18px;flex-basis:18px}.header .small{gap:8px}.seat-button,.reset{min-height:44px}}

.demo-tip .tip-icon{color:var(--green);margin-top:2px}

/* Brand mark from the TablePing logo. */
.brandmark{border:0;border-radius:0;transform:none;font-size:0;background:transparent;width:32px;height:32px;padding:0}
.brandmark svg{width:100%;height:100%;display:block}
.brand:hover .brandmark,.brand:hover .brand-logo{animation:mark-ping .9s ease}
.header .brand{line-height:0}
.brand-logo{display:block;height:42px;width:auto;background:transparent}

/* Page loader */
html.is-loading,html.is-loading body{overflow:hidden}
.site-loader{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;background:#fff;transition:opacity .55s ease,visibility .55s ease}
.site-loader.is-done{opacity:0;visibility:hidden;pointer-events:none}
.loader-stage{position:relative;width:min(260px,56vw);display:grid;place-items:center;gap:22px}
.loader-logo{width:100%;height:auto;display:block;animation:loader-logo 2.4s ease-in-out infinite}
.loader-dots{display:flex;align-items:center;justify-content:center;gap:7px}
.loader-dots span{width:7px;height:7px;border-radius:50%;background:var(--green);animation:loader-dot 1.05s ease-in-out infinite}
.loader-dots span:nth-child(2){animation-delay:.14s}
.loader-dots span:nth-child(3){animation-delay:.28s}

/* Page entrance */
.header,.hero-copy,.hero-visual{opacity:0}
body.is-ready .header{animation:fade-up .7s cubic-bezier(.22,1,.36,1) both}
body.is-ready .hero-copy{animation:fade-up .8s cubic-bezier(.22,1,.36,1) .08s both}
body.is-ready .hero-visual{animation:fade-up .85s cubic-bezier(.22,1,.36,1) .16s both}

.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1)}
.reveal.is-visible{opacity:1;transform:none}
.three-grid>article.reveal:nth-child(2),.feature-grid>article.reveal:nth-child(2),.use-grid>article.reveal:nth-child(2){transition-delay:.08s}
.three-grid>article.reveal:nth-child(3),.feature-grid>article.reveal:nth-child(3),.use-grid>article.reveal:nth-child(3){transition-delay:.16s}
.feature-grid>article.reveal:nth-child(4){transition-delay:.08s}
.feature-grid>article.reveal:nth-child(5){transition-delay:.16s}
.feature-grid>article.reveal:nth-child(6){transition-delay:.24s}

/* Standard motion */
@keyframes fade-up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes loader-logo{0%{opacity:0;transform:scale(.94)}16%{opacity:1;transform:scale(1)}50%{transform:scale(1.035)}100%{transform:scale(1)}}
@keyframes loader-dot{0%,80%,100%{opacity:.28;transform:translateY(0)}40%{opacity:1;transform:translateY(-5px)}}
@keyframes mark-ping{0%{transform:scale(1)}40%{transform:scale(1.08)}100%{transform:scale(1)}}
@keyframes live-ping{0%{transform:scale(.6);opacity:.55}100%{transform:scale(2.6);opacity:0}}
@keyframes float-card{0%,100%{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(-3deg) translateY(-7px)}}
@keyframes float-chip{0%,100%{transform:rotate(4deg) translateY(0)}50%{transform:rotate(4deg) translateY(-5px)}}

.button,.button.small{transition:background .2s ease,transform .2s ease,box-shadow .2s ease}
.button:hover,.button.small:hover{transform:translateY(-2px);box-shadow:0 10px 22px #355c4824}
.button:active,.button.small:active{transform:translateY(0)}
.text-link,.reset,.seat-button,.filters button,.mini-bottom a{transition:color .2s ease,background .2s ease,border-color .2s ease,transform .2s ease}
.filters button:hover{color:var(--green)}
.filters button.active{transition:background .2s ease,color .2s ease,border-color .2s ease}
.reset:hover{color:var(--green);border-color:#c5cebb}
.seat-button:active{transform:scale(.98)}
.table-card{transition:transform .22s ease,box-shadow .22s ease}
.table-card:hover{transform:translateY(-3px);box-shadow:0 8px 18px #334a3212}
.queue-item{transition:transform .22s ease,box-shadow .22s ease}
.queue-item:hover{transform:translateY(-2px);box-shadow:0 8px 16px #334a3210}
.use-grid article{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.use-grid article:hover{transform:translateY(-4px);box-shadow:0 14px 28px #334a3212;border-color:#c5d0b8}
.live-dot{position:relative}
.live-dot:after{content:'';position:absolute;inset:-5px;border-radius:50%;border:1px solid #5b8960;animation:live-ping 1.8s ease-out infinite}
.mini-app{animation:float-card 5.5s ease-in-out infinite}
.welcome-chip{animation:float-chip 5s ease-in-out infinite}
details p{transition:opacity .25s ease}
details[open] p{animation:fade-up .35s ease both}
@media(max-width:760px){.loader-stage{width:min(210px,62vw);gap:18px}.header .brand-logo{height:34px}}

