@font-face{font-family:DM;src:url('assets/font-4.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:DM;src:url('assets/font-6.ttf') format('truetype');font-weight:600;font-display:swap}@font-face{font-family:DM;src:url('assets/font-7.ttf') format('truetype');font-weight:700;font-display:swap}@font-face{font-family:Barlow;src:url('assets/font-2.ttf') format('truetype');font-weight:800;font-display:swap}
:root{--navy:#012249;--red:#DE3137;--cream:#f5edd7;--text:#fff;--muted:#bed0df;--line:#ffffff35;color-scheme:dark;font-family:DM,Arial,sans-serif;background:var(--navy);color:var(--text);font-synthesis:none;font-size:100%}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:radial-gradient(ellipse at 50% 25%,#073356 0,#032646 60%,#02213f 100%);-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #fff;outline-offset:4px}svg{fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;display:block}img{max-width:100%}button{user-select:none}.app-shell{height:100vh;height:100dvh;width:100%;max-width:1400px;margin:auto;display:grid;grid-template-rows:48px minmax(0,1fr) 82px;padding:env(safe-area-inset-top) 18px env(safe-area-inset-bottom);overflow:hidden}.masthead{display:flex;align-items:center;justify-content:space-between;min-width:0;z-index:30}.brand{display:block;object-fit:contain;object-position:left center;width:132px;height:43px;filter:brightness(0) invert(1)}.header-controls{position:relative;display:flex;align-items:center;gap:13px;font-size:.8rem;font-weight:600}.header-controls>span:not([hidden]){border-right:1px solid #ffffff60;padding-right:13px}.language{background:none;display:flex;align-items:center;gap:7px;padding:8px 0 8px 8px;min-height:40px;font-weight:700;font-size:.8rem}.language svg{width:18px;height:18px;stroke-width:2.5}.language-menu{position:absolute;right:0;top:44px;border:1px solid #ffffff40;background:#0e3557;box-shadow:0 10px 25px #00172d80;border-radius:10px;min-width:135px;padding:5px}.language-menu button{display:flex;justify-content:space-between;gap:20px;width:100%;background:none;padding:10px;font-size:.9rem}.builder{min-height:0;display:grid;grid-template-rows:68px minmax(150px,1fr) 50px 260px;grid-template-areas:'title' 'pizza' 'categories' 'ingredients';row-gap:6px}.pizza-title{grid-area:title;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}.pizza-title h1{font-family:Barlow,Impact,sans-serif;font-size:2.55rem;font-weight:800;line-height:1;letter-spacing:-.025em;margin:0}.size-selector{display:flex;width:142px;height:27px;border:1px solid #ffffff5e;border-radius:99px;background:#ffffff0b;box-shadow:inset 0 1px 3px #ffffff12}.size-selector button{flex:1;min-width:0;border-radius:99px;background:none;font-weight:700;font-size:.85rem;padding:2px 10px}.size-selector button.selected{background:#fff;color:var(--navy);box-shadow:0 2px 5px #00000020}.stage-wrap{grid-area:pizza;min-height:0;min-width:0;position:relative;display:flex;align-items:center;justify-content:center;isolation:isolate}.pizza-stage{width:var(--pizza-edge,290px);height:var(--pizza-edge,290px);flex-shrink:0;position:relative;isolation:isolate;user-select:none}.pizza-base,.sauce-layer,.pizza-stage canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;object-fit:contain}.pizza-base{filter:drop-shadow(0 9px 8px #00000065)}.sauce-layer{z-index:1}.pizza-stage canvas{z-index:2}.flour{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:calc(var(--pizza-edge,290px) * 1.2);height:calc(var(--pizza-edge,290px) * 1.2);max-width:none;object-fit:contain;z-index:-1;pointer-events:none;opacity:.67}.undo{position:absolute;top:6px;right:0;z-index:3;width:40px;height:40px;border:1px solid #ffffff35;box-shadow:inset 0 1px 3px #ffffff35,0 4px 8px #00000025;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,#264865,#133454);padding:9px}.undo svg{width:23px;height:23px;stroke-width:2.8}.undo:disabled{opacity:.42}.pizza-stage.is-drop-target:after{content:'';position:absolute;inset:8%;border-radius:50%;border:2px dashed #ffffffa0;z-index:3}.category-tabs{grid-area:categories;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;padding:0;min-height:0}.category-tab{border-radius:11px;padding:5px 11px;display:flex;align-items:center;justify-content:center;min-width:0;box-shadow:inset 0 1px 1px #ffffff20;position:relative}.category-tab.active{outline:2px solid #fff;outline-offset:-1px;box-shadow:0 0 0 2px #fff2}.category-tab svg{height:100%;max-height:40px;width:100%;stroke-width:4}.sauces{background:#2679F9;color:#fff}.cheese{background:#FAC11C;color:#073257}.vegetables{background:#0E9E47;color:#fff}.meat{background:#E52F34;color:#fff}.extras{background:#F3EDD7;color:#073257}.ingredient-workspace{grid-area:ingredients;min-height:0;display:grid;grid-template-rows:38px minmax(0,1fr);row-gap:4px}.tray-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;min-width:0}.tray-heading h2{font-family:Barlow,Impact,sans-serif;font-size:1.9rem;line-height:1;margin:0;font-weight:800;letter-spacing:-.025em}.pagination{display:flex;align-items:center;gap:9px;flex-shrink:0}.pagination>span{font-size:.78rem;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;margin-right:2px}.pagination button{height:30px;width:30px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--navy);padding:7px;box-shadow:0 2px 5px #0002}.pagination button svg{width:16px;height:16px;stroke-width:3.5}.pagination button:disabled{background:#284660;color:#d8e2ed;box-shadow:inset 0 0 0 1px #ffffff35;opacity:.65}.ingredient-tray{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:7px 10px;align-content:start;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#66829a transparent;padding:2px 1px 3px;min-height:0;touch-action:pan-y}.ingredient-card{position:relative;min-width:0;display:flex;flex-direction:column;align-items:stretch;text-align:center;min-height:105px;max-height:100%;}.bowl-trigger{display:flex;flex-direction:column;align-items:center;width:100%;height:100%;min-height:0;gap:2px;background:none;padding:0;touch-action:pan-y;position:relative}.bowl-trigger.interactive{touch-action:none}.bowl-picture{display:block;position:relative;flex:1;min-height:56px;width:100%;max-width:118px;aspect-ratio:1;pointer-events:none;filter:drop-shadow(0 4px 3px #00142565);isolation:isolate}.bowl-picture:before{content:'';position:absolute;inset:0;background:url('assets/redesign/bowl-empty.webp') center/contain no-repeat;z-index:0}.bowl-food{position:absolute;inset:12%;border-radius:50%;overflow:hidden;z-index:1}.bowl-food:after{content:'';position:absolute;inset:-17%;background-image:var(--atlas-url);background-position:var(--atlas-x) var(--atlas-y);background-size:300% 200%;background-repeat:no-repeat;filter:drop-shadow(0 1px 1px #51301933)}.bowl-food.sauce-food{inset:15%;background-image:var(--sauce-art);background-position:center;background-size:126%;border-radius:50%}.bowl-food.sauce-food:after{display:none}.bowl-food.mushroom-food{inset:13%;background:none}.bowl-food.mushroom-food:after{display:none}.ingredient-name{font-size:.73rem;font-weight:600;line-height:1.1;display:block;max-width:100%;white-space:normal}.ingredient-note{display:block;font-size:.54rem;line-height:1.2;color:var(--muted);min-height:.65rem;white-space:normal}.ingredient-card.is-pending .bowl-trigger{opacity:.67}.ingredient-card.is-selected .bowl-picture:after{content:'';position:absolute;inset:4%;border:2px solid #fff;border-radius:50%;z-index:2}.ingredient-action{position:absolute;top:2px;right:0;z-index:4;border:2px solid #fff;background:#0a355c;color:white;border-radius:50%;width:26px;height:26px;display:grid;place-items:center;line-height:1;padding:0;font-size:1.6rem;font-weight:400;box-shadow:0 2px 4px #00142630;touch-action:manipulation}.ingredient-action.selected{background:#128c43;font-size:.9rem;font-weight:700}.ingredient-action:disabled{background:#193f5e;border-color:#ffffff60;color:#ffffff80;font-size:.75rem}.ingredient-action.selected:after{content:'−';position:absolute;right:-4px;bottom:-3px;font-size:.6rem;border-radius:50%;background:#fff;color:var(--navy);width:11px;height:11px;display:grid;place-items:center}.price-dock{border-top:1px solid #18507570;margin:9px -18px 0;padding:12px 18px 9px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#042749a0;border-radius:23px 23px 0 0;z-index:20;min-height:0}.price-summary{display:flex;flex-direction:column;gap:0;min-width:0}.price-summary>span{font-size:.8rem;font-weight:600}.price-summary strong{font-family:Barlow,Impact,sans-serif;font-size:1.65rem;line-height:1.1;white-space:nowrap;font-weight:800;letter-spacing:.01em;font-variant-numeric:tabular-nums}.review-button{background:var(--red);color:#fff;border-radius:99px;min-height:44px;padding:10px 18px;display:flex;justify-content:center;align-items:center;gap:9px;font-size:.92rem;font-weight:700;white-space:nowrap}.review-button svg{width:19px;height:19px;stroke-width:2.5}.price-dock>.review-button{width:53%;max-width:310px}.review-button:hover{background:#fa3443}#flight-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:40}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:-80px;left:15px;background:#fff;color:var(--navy);padding:12px;z-index:70}.skip-link:focus{top:10px}[hidden]{display:none!important}dialog{color:#fff;background:#082e50;border:1px solid #ffffff35;border-radius:22px;max-width:560px;width:calc(100% - 28px);max-height:calc(100dvh - 30px);padding:23px;overflow:auto;box-shadow:0 20px 90px #00162bcc}dialog::backdrop{background:#00182bbd;backdrop-filter:blur(5px)}.review-top{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.eyebrow{font-size:.64rem;letter-spacing:.15em;color:#abc5da}.review-top h2{font-family:Barlow,Impact,sans-serif;font-size:2.4rem;line-height:1;margin:6px 0 23px}.close-button{font-size:1.8rem;background:#ffffff14;border:1px solid #ffffff35;border-radius:50%;width:34px;height:34px;line-height:1}.review-line{display:flex;align-items:baseline;justify-content:space-between;gap:20px;font-size:.88rem;padding:12px 0;border-bottom:1px solid #ffffff1c}.review-line small{display:block;color:#b6cada;font-size:.73rem;margin-top:5px}.review-line strong{font-weight:600;white-space:nowrap}.review-note{color:#d4e1ec;font-size:.78rem;line-height:1.6;margin:20px 0}.review-note.attention{color:#ffdf91;background:#f3c36611;border:1px solid #f3c36635;border-radius:10px;padding:12px}.review-bottom{margin-top:25px;display:flex;align-items:center;justify-content:space-between;gap:15px}.review-bottom>span{font-size:.78rem}.review-bottom strong{display:block;font-size:1.2rem;margin-top:3px;white-space:nowrap}.review-bottom .review-button{font-size:.8rem}.noscript{position:fixed;inset:10px 10px auto;background:#ec2938;color:white;padding:20px;z-index:80}
@media(max-height:740px) and (max-width:759px){.app-shell{grid-template-rows:42px minmax(0,1fr) 70px}.builder{grid-template-rows:62px minmax(135px,1fr) 46px 150px;row-gap:5px}.pizza-title h1{font-size:2.3rem}.ingredient-workspace{grid-template-rows:34px minmax(0,1fr)}.ingredient-tray{grid-template-rows:minmax(0,1fr)}.ingredient-card{min-height:106px}.bowl-picture{max-width:110px}.category-tab{padding:5px 11px}.tray-heading h2{font-size:1.75rem}.price-dock{padding-top:9px;margin-top:6px}.brand{width:125px;height:38px}.ingredient-note{font-size:.53rem}.price-summary strong{font-size:1.5rem}}
@media(max-width:359px){.app-shell{padding-left:12px;padding-right:12px}.price-dock{margin-left:-12px;margin-right:-12px;padding-left:12px;padding-right:12px}.builder{row-gap:4px}.category-tabs{gap:4px}.category-tab{padding-left:8px;padding-right:8px}.ingredient-tray{column-gap:7px}.ingredient-name{font-size:.67rem}.price-dock>.review-button{font-size:.8rem;padding-left:10px;padding-right:10px}.price-summary strong{font-size:1.45rem}}
@media(min-width:760px){.app-shell{padding-left:35px;padding-right:35px;grid-template-rows:74px minmax(0,1fr) 96px}.brand{width:182px;height:64px}.header-controls{font-size:.95rem}.language{font-size:1rem}.builder{grid-template-columns:minmax(0,1.25fr) minmax(340px,1fr);grid-template-rows:91px 66px minmax(0,1fr);grid-template-areas:'title categories' 'pizza ingredients' 'pizza ingredients';column-gap:35px;row-gap:20px;padding:10px 0 18px}.pizza-title h1{font-size:3.8rem}.size-selector{width:195px;height:35px}.size-selector button{font-size:1rem}.stage-wrap{align-items:center;max-width:760px}.undo{width:48px;height:48px;top:8px;right:5px}.undo svg{width:26px;height:26px}.category-tabs{align-self:center;height:66px;gap:8px}.category-tab{border-radius:14px;padding:10px 13px}.category-tab svg{max-height:48px}.ingredient-workspace{grid-template-rows:52px minmax(0,1fr);row-gap:15px;align-self:stretch;max-height:570px}.tray-heading h2{font-size:2.6rem}.pagination{gap:11px}.pagination>span{font-size:.9rem}.pagination button{width:36px;height:36px}.ingredient-tray{gap:20px 13px;grid-template-rows:repeat(2,minmax(0,1fr));padding:3px 3px 8px}.ingredient-card{min-height:150px;max-height:245px}.bowl-picture{max-width:205px;min-height:100px}.ingredient-name{font-size:.93rem;line-height:1.25}.ingredient-note{font-size:.68rem;line-height:1.4;min-height:1rem}.ingredient-action{width:34px;height:34px;font-size:2rem;right:1px;top:5px}.ingredient-action.selected{font-size:1.1rem}.ingredient-action.selected:after{width:14px;height:14px;font-size:.8rem}.price-dock{margin-left:-35px;margin-right:-35px;padding:13px 35px 14px;border-radius:28px 28px 0 0}.price-summary>span{font-size:.92rem}.price-summary strong{font-size:2.25rem}.price-dock>.review-button{min-height:56px;font-size:1.15rem;padding:15px 30px;max-width:365px}}
@media(min-width:760px) and (max-height:660px){.app-shell{grid-template-rows:55px minmax(0,1fr) 76px}.builder{grid-template-rows:76px 54px minmax(0,1fr);row-gap:10px}.pizza-title h1{font-size:3rem}.category-tabs{height:54px}.ingredient-workspace{row-gap:8px;grid-template-rows:42px minmax(0,1fr)}.ingredient-card{min-height:115px}.bowl-picture{min-height:70px}.ingredient-name{font-size:.78rem}.ingredient-note{font-size:.6rem}.ingredient-tray{gap:10px}.price-summary strong{font-size:1.85rem}.brand{height:49px;width:155px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Keep the photographic bowl and its food layer perfectly concentric at every viewport. */
.bowl-picture{width:var(--bowl-edge,86px);height:var(--bowl-edge,86px);max-width:100%;min-height:0;flex:none;aspect-ratio:1}.ingredient-card{min-height:min-content;max-height:none}.bowl-trigger{height:auto;min-height:min-content}.ingredient-tray{grid-template-rows:repeat(2,minmax(min-content,1fr))}.bowl-food-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1}.flour{width:var(--pizza-edge,290px);height:var(--pizza-edge,290px);opacity:.55}@media(max-height:740px) and (max-width:759px){.ingredient-tray{grid-template-rows:minmax(min-content,1fr)}}

.category-tab.extras svg{stroke:#062F62}.category-tab.cheese svg{stroke:#062F62}.tray-heading h2{min-width:0}
/* Reference proportions: reserve the bottom tray first, keeping pizza and every control visible. */
@media(min-height:741px) and (max-width:759px){.app-shell{grid-template-rows:42px minmax(0,1fr) 78px}.builder{grid-template-rows:66px minmax(120px,1fr) 50px clamp(274px,calc(100dvh - 520px),324px);row-gap:4px}.ingredient-workspace{grid-template-rows:32px minmax(0,1fr);row-gap:2px}.tray-heading h2{font-size:1.85rem}.brand{height:39px}}
.ingredient-card.is-pending .bowl-trigger{opacity:.85}.bowl-food.composed-food:after{display:none}.bowl-food.composed-food{background:none}.ingredient-tray{padding-top:0;padding-bottom:0}

@media(max-width:359px){.tray-heading h2{font-size:1.5rem}.pagination{gap:7px}.pagination>span{font-size:.72rem}}
/* Text enlargement may scroll the ingredient tray, never widen or clip the full-screen builder. */
.app-shell,.builder,.pizza-title,.stage-wrap,.category-tabs,.ingredient-workspace,.tray-heading,.ingredient-tray,.price-dock{min-width:0}.builder{width:100%}.ingredient-name,.ingredient-note{overflow-wrap:anywhere}.review-line{flex-wrap:wrap}.review-bottom{flex-wrap:wrap}.close-button{font-size:28px;flex-shrink:0}
@media(max-width:759px){
 .builder{grid-template-columns:minmax(0,1fr)}
 .pizza-title h1{font-size:min(2.55rem,10.8vw)}
 .tray-heading h2{font-size:min(1.9rem,8vw)}
 .pagination>span{font-size:min(.78rem,3.3vw)}
 .price-dock{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:10px}
 .price-dock>.review-button{width:100%;min-width:0;font-size:min(.92rem,4.55vw);padding-left:10px;padding-right:10px;gap:7px}
 .price-summary>span{font-size:min(.8rem,4.4vw)}
 .price-summary strong{font-size:min(1.65rem,8.2vw);letter-spacing:-.01em}
 .review-top h2{font-size:min(2.4rem,10vw)}
 .review-line{font-size:min(.88rem,5.3vw)}
 .review-line small,.review-note{font-size:min(.78rem,4.5vw)}
 .review-bottom .review-button{white-space:normal}
}
@media(max-width:359px){.tray-heading h2{font-size:min(1.5rem,7.8vw)}}
.sr-only{top:0;left:0;margin:0;padding:0;border:0;clip-path:inset(50%)}
@media(max-width:759px){.size-selector button{font-size:min(.85rem,4vw);line-height:1}.price-summary strong{font-size:min(1.65rem,7.25vw)}}

/* Pizza-first composition: one and only one row of three bowls at every size. */
.pizza-stage #sauce-canvas{z-index:1}
.ingredient-tray{grid-template-rows:minmax(min-content,1fr)}
.pagination button{width:50px;height:50px;min-width:50px;min-height:50px;padding:12px;box-shadow:0 4px 12px #00152c40}
.pagination button svg{width:24px;height:24px;stroke-width:3}
.pagination button:disabled{opacity:.5}
.ingredient-workspace{grid-template-rows:52px minmax(0,1fr);row-gap:6px}
@media(max-width:759px){
 .builder{grid-template-rows:minmax(120px,1fr) 50px 192px;grid-template-areas:'pizza' 'categories' 'ingredients';row-gap:6px}
 .tray-heading{gap:8px}.pagination{gap:8px}
 .tray-heading h2{font-size:min(1.8rem,7.1vw)}
 .ingredient-tray{grid-template-rows:minmax(min-content,1fr)}
}
@media(max-width:759px) and (max-height:660px){
 .builder{grid-template-rows:minmax(90px,1fr) 44px 172px;row-gap:4px}
}
@media(min-width:760px){
 .builder{grid-template-rows:66px minmax(0,1fr);grid-template-areas:'pizza categories' 'pizza ingredients';padding-top:12px;row-gap:24px}
 .ingredient-workspace{align-self:center;max-height:330px;height:100%;grid-template-rows:56px minmax(0,1fr);row-gap:18px}
 .ingredient-tray{grid-template-rows:minmax(min-content,1fr)}
 .pagination button{width:54px;height:54px}
}
@media(min-width:760px) and (max-height:660px){
 .builder{grid-template-rows:54px minmax(0,1fr);row-gap:12px}
 .ingredient-workspace{grid-template-rows:54px minmax(0,1fr);row-gap:8px}
}
/* Keep the selected remove badge inside its card so it cannot create a horizontal scrollbar. */
.ingredient-action{right:5px}

/* Independent utensil layer: sauce remains below every settled topping. */
#spoon-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:35}

/* Solid ingredients keep their real alpha silhouette; no round food cookie cutters. */
.bowl-food.composed-food{inset:12%;border-radius:0;overflow:visible;background:none}
.bowl-food.composed-food:after{display:none}
.bowl-food.composed-food.oil-food{inset:19%;border-radius:50%;overflow:hidden}
.flour-base{width:var(--pizza-edge,290px);height:var(--pizza-edge,290px);opacity:.55}
.flour-side{width:calc(var(--pizza-edge,290px) * 1.04);height:calc(var(--pizza-edge,290px) * 1.04);opacity:.3;transform:translate(-49%,-49%) scaleX(-1) rotate(-14deg);mask-image:linear-gradient(to bottom,transparent 18%,#000 37%,#000 67%,transparent 89%);-webkit-mask-image:linear-gradient(to bottom,transparent 18%,#000 37%,#000 67%,transparent 89%)}
.flour-scatter{width:calc(var(--pizza-edge,290px) * 1.28);height:calc(var(--pizza-edge,290px) * 1.28);opacity:.36}

/* Enlarged text preserves badge shape; names remain readable within the scrolling tray. */
.ingredient-action{font-size:26px}.ingredient-action.selected{font-size:14px}.ingredient-action:disabled{font-size:12px}.ingredient-action.selected:after{font-size:10px}
@media(min-width:760px){.ingredient-action{font-size:32px}.ingredient-action.selected{font-size:18px}.ingredient-action.selected:after{font-size:12px}}

/* Keep HVS contact control clear of the pizza review dock on this route only. */
#hvs-exit{display:none!important}
