@font-face{font-family:PatriScript;src:url('patri-script.woff2') format('woff2');font-display:swap}
@font-face{font-family:PatriTall;src:url('patri-tall.woff2') format('woff2');font-display:swap}
.patri-keychain,.patri-keychain-media{display:block;min-width:0}
.patri-keychain [hidden],.patri-keychain-media [hidden]{display:none!important}
.product-information:has(patri-keychain-designer){max-width:1280px;margin-inline:auto;padding-inline:32px}
.product-information:has(patri-keychain-designer) product-component.product-information__grid:not(.product-information--media-none){grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:48px;align-items:start}
.product-information:has(patri-keychain-designer) product-component.product-information__grid:not(.product-information--media-none)>:is(.product-details,.product-information__media){padding-inline:0;min-width:0;grid-column:auto}
.product-information:has(patri-keychain-designer) .product-details{position:static}
.product-information:has(patri-keychain-designer) .product-information__media{position:sticky;top:24px;width:100%}
.patri-keychain-media__stage{position:relative;aspect-ratio:1;background:var(--patri-cream);scroll-margin-top:20px}
.patri-keychain-media__photo{width:100%;height:100%;aspect-ratio:1;object-fit:cover;border-radius:4px}
.patri-keychain-media__start{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);white-space:nowrap;box-shadow:0 2px 18px #20130830}
.patri-keychain-media__start span{margin-left:12px}
.patri-keychain-media__live{position:relative}
.patri-keychain-boundary{position:absolute;box-sizing:border-box;border:1px dashed var(--patri-rust);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;opacity:.75}
.patri-keychain-media canvas{display:block;width:100%;height:auto;aspect-ratio:1}
.patri-keychain-media__badge{position:absolute;top:18px;left:18px;font-size:12px;background:var(--patri-cream);padding:6px 10px;border:1px solid var(--patri-border);border-radius:4px}
.patri-keychain-media__empty{position:absolute;top:64%;left:34%;width:32%;text-align:center;font-size:13px;color:#493320;line-height:1.4}
.patri-keychain-media__views{display:flex;justify-content:center;gap:8px;padding-top:15px}
.patri-keychain-media__views button,.patri-keychain__modes button{min-height:44px;padding:9px 16px;border:1px solid var(--patri-border);background:transparent;border-radius:4px;font:inherit;color:var(--patri-muted);cursor:pointer}
.patri-keychain-media__views button[aria-pressed=true],.patri-keychain__modes button[aria-pressed=true]{border-color:var(--patri-rust);color:var(--patri-rust);background:color-mix(in srgb,var(--patri-rust) 6%,var(--patri-cream))}
.patri-keychain-media__views button:hover,.patri-keychain__modes button:hover{border-color:var(--patri-orange)}
.patri-keychain-media__caption{color:var(--patri-muted);font-size:12px;text-align:center;margin:12px auto!important;max-width:420px;line-height:1.6}
.patri-keychain h2{font-size:29px;line-height:1.2;letter-spacing:-.025em}
.patri-keychain__intro{font-size:14px;color:var(--patri-muted);margin:8px 0 20px!important;line-height:1.6}
.patri-keychain__controls{border:0;padding:0;margin:0;min-width:0;display:grid;gap:18px}
.patri-keychain__controls:disabled{opacity:.55}
.patri-keychain__modes{display:flex;gap:8px;flex-wrap:wrap;font-size:13px}
.patri-keychain label,.patri-keychain legend{font:600 14px/1.5 Arial,sans-serif;color:var(--patri-rust);display:block;margin-bottom:7px}
.patri-keychain textarea,.patri-keychain select{width:100%;max-width:100%;min-width:0;border:1px solid var(--patri-border);border-radius:4px;padding:12px;background:transparent;color:var(--patri-rust);font:16px/1.5 Arial,sans-serif}
.patri-keychain textarea{resize:none;min-height:76px}
.patri-keychain select{min-height:48px;cursor:pointer}
.patri-keychain textarea:focus,.patri-keychain select:focus{border-color:var(--patri-orange)}
.patri-keychain [aria-invalid=true]{outline:2px solid var(--patri-rust);outline-offset:2px}
.patri-keychain__help{font-size:12px;line-height:1.6;color:var(--patri-muted);margin-top:7px!important}
.patri-keychain__fonts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:0;border:0;min-width:0}
.patri-keychain__fonts legend{margin-bottom:9px}
.patri-keychain__fonts label{position:relative;cursor:pointer;margin:0;min-width:0}
.patri-keychain__fonts input{position:absolute;width:1px;height:1px;opacity:0}
.patri-keychain__font{display:flex;align-items:center;justify-content:center;min-height:53px;border:1px solid var(--patri-border);border-radius:4px;font-size:16px;font-weight:400}
.patri-keychain__font--classic{font-family:Georgia,serif}.patri-keychain__font--script{font-family:PatriScript;font-size:23px}.patri-keychain__font--tall{font-family:PatriTall;font-size:24px}
.patri-keychain__fonts input:checked+span{border-color:var(--patri-rust);background:color-mix(in srgb,var(--patri-rust) 6%,var(--patri-cream))}
.patri-keychain__fonts input:focus-visible+span{outline:2px solid var(--patri-orange);outline-offset:3px}
.patri-keychain__upload{border:1px dashed var(--patri-border);border-radius:4px;padding:16px}
.patri-keychain__upload[data-dragging=true]{border-color:var(--patri-orange);background:color-mix(in srgb,var(--patri-orange) 7%,var(--patri-cream))}
.patri-keychain input[type=file]{display:block;width:100%;font:13px/1.5 Arial,sans-serif;margin-top:12px;color:var(--patri-muted)}
.patri-keychain input[type=file]::file-selector-button{min-height:42px;margin-right:10px;padding:8px 14px;border:1px solid var(--patri-rust);border-radius:4px;background:transparent;color:var(--patri-rust);cursor:pointer}
.patri-keychain__file{display:flex;align-items:center;gap:12px;margin-top:12px;font-size:12px;overflow-wrap:anywhere}
.patri-keychain__file span{flex:1;min-width:0}
.patri-keychain__file button,.patri-keychain__text-button{background:transparent;border:0;color:var(--patri-rust);font:13px/1.5 Arial,sans-serif;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:10px 0;min-height:44px}
.patri-keychain__adjustments{border-block:1px solid var(--patri-border);padding-block:12px}
.patri-keychain__adjustments summary{cursor:pointer;min-height:32px;padding:4px 0;font-size:14px}
.patri-keychain__adjustments label{margin-top:16px;font-size:13px}
.patri-keychain input[type=range]{width:100%;accent-color:var(--patri-rust);min-height:30px;cursor:pointer}
.patri-keychain__approval{display:flex!important;align-items:flex-start;gap:12px;font-weight:400!important;font-size:13px!important;line-height:1.6!important;margin:0!important;cursor:pointer}
.patri-keychain__approval input{appearance:auto;flex-shrink:0;width:19px;height:19px;margin-top:2px;accent-color:var(--patri-rust)}
.patri-keychain__error{border-left:3px solid var(--patri-rust);padding:12px;margin-top:14px!important;font-size:13px;background:color-mix(in srgb,var(--patri-rust) 5%,var(--patri-cream))}
.patri-keychain__status{min-height:22px;font-size:13px;margin-top:10px!important;color:var(--patri-muted)}
.patri-keychain__mobile-preview{display:none}
.patri-keychain :is(button,input,select,textarea,a):focus-visible,.patri-keychain-media button:focus-visible{outline:2px solid var(--patri-orange);outline-offset:4px}
.patri-keychain button:disabled{cursor:wait;opacity:.6}
.patri-keychain__font{width:100%}
.patri-keychain__fonts label:has(input:disabled){opacity:.45;cursor:not-allowed}
.patri-keychain-media .patri-button:hover{background:var(--patri-rust)}
.patri-keychain-media__live{overflow:hidden;border-radius:4px}
.patri-keychain-media__workspace{position:relative;transform-origin:49.6% 69%}
.patri-keychain-media__live[data-zoom=true] .patri-keychain-media__workspace{transform:translate(.4%,-19%) scale(1.8)}
.patri-keychain-media__badge{z-index:25;pointer-events:none}
.patri-keychain-media__empty{pointer-events:none}
.patri-keychain-overlay{position:absolute;inset:0;pointer-events:none}
.patri-keychain-hit{position:absolute;min-width:12px;min-height:12px;padding:0;border:0;background:transparent;pointer-events:auto;touch-action:none;cursor:grab;border-radius:0}
.patri-keychain-hit:hover{outline:1px dashed var(--patri-rust);outline-offset:2px}
.patri-keychain-hit:active{cursor:grabbing}
.patri-keychain-selection{position:absolute;border:1.5px solid var(--patri-rust);pointer-events:none;z-index:20}
.patri-keychain-handle{position:absolute;transform:translate(-50%,-50%);z-index:24;width:24px;height:24px;min-height:24px;padding:6px;border:0;background:transparent;pointer-events:auto;touch-action:none;cursor:nwse-resize}
.patri-keychain-handle::after{content:'';display:block;width:100%;height:100%;border:1.5px solid var(--patri-rust);background:var(--patri-cream);border-radius:2px}
.patri-keychain-handle--ne,.patri-keychain-handle--sw{cursor:nesw-resize}
.patri-keychain-handle--rotate{margin-top:-28px;padding:0;background:var(--patri-cream);border:1px solid var(--patri-rust);border-radius:50%;font:20px/1 Arial,sans-serif;color:var(--patri-rust);cursor:grab}
.patri-keychain-handle--rotate::after{display:none}
.patri-keychain-media__tools{padding-top:15px}
.patri-keychain-media__tools>.patri-keychain__help{max-width:440px;margin-inline:auto;text-align:center}
.patri-keychain-media__tools>.patri-keychain__tools{justify-content:center}
.patri-keychain__tools{display:flex;flex-wrap:wrap;gap:8px}
.patri-keychain__tools button{padding:8px 12px;min-height:40px;border:1px solid var(--patri-border);border-radius:4px;background:transparent;font:13px/1.4 Arial,sans-serif;color:var(--patri-rust);cursor:pointer}
.patri-keychain__tools button[aria-pressed=true]{background:color-mix(in srgb,var(--patri-rust) 7%,var(--patri-cream));border-color:var(--patri-rust)}
.patri-keychain__tools button:hover:not(:disabled){border-color:var(--patri-rust)}
.patri-keychain__tools button:disabled{opacity:.4;cursor:not-allowed}
.patri-keychain__layers{margin-top:14px;border-block:1px solid var(--patri-border);padding-block:12px}
.patri-keychain__layers summary{font-size:14px;cursor:pointer;min-height:28px}
.patri-keychain__layers [data-layer-list]{display:grid;gap:5px;margin-block:10px}
.patri-keychain__layer{display:flex;align-items:center;gap:10px;border:1px solid var(--patri-border);padding:3px 10px;border-radius:4px;min-width:0}
.patri-keychain__layer[data-selected=true]{border-color:var(--patri-rust);background:color-mix(in srgb,var(--patri-rust) 4%,var(--patri-cream))}
.patri-keychain__layer input{appearance:auto;width:18px;height:18px;flex-shrink:0;accent-color:var(--patri-rust);cursor:pointer}
.patri-keychain__layer button{flex:1;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-height:36px;padding:4px 0;border:0;background:transparent;color:var(--patri-rust);font:14px/1.4 Arial,sans-serif;cursor:pointer}
.patri-keychain__layer[data-grouped=true]{border-left-width:4px}
.patri-keychain__selection-summary{font-size:12px;min-height:20px;color:var(--patri-muted);margin-top:8px!important}
.patri-keychain__nudge{padding-top:12px}
.patri-keychain__nudge button{flex:1 0 28%}
.patri-keychain__adjustments output{font-weight:400;margin-left:8px}
.patri-keychain-crop{border-block:1px solid var(--patri-border);padding-block:16px}
.patri-keychain-crop h3{font:600 18px/1.4 Arial,sans-serif;margin:0}
.patri-keychain-crop>.patri-keychain__tools{margin-top:12px}
.patri-keychain-crop__stage{position:relative;aspect-ratio:1;max-width:420px;margin:16px auto;overflow:hidden;background:var(--patri-cream);border:1px solid var(--patri-border);border-radius:4px}
.patri-keychain-crop__stage canvas{display:block;width:100%;height:auto}
.patri-keychain-crop__frame{position:absolute}
.patri-keychain-crop__frame[data-shape=circle]{border-radius:50%}
.patri-keychain-crop__frame::before{content:'';position:absolute;inset:0;border:2px solid var(--patri-cream);outline:1px solid var(--patri-rust);border-radius:inherit;box-shadow:0 0 0 600px #20130880;pointer-events:none}
.patri-keychain-crop__move{display:block;width:100%;height:100%;padding:0;background:transparent;border:0;border-radius:inherit;cursor:grab;touch-action:none}
.patri-keychain-crop__move:active{cursor:grabbing}
.patri-keychain-crop__handle{position:absolute;width:32px;height:32px;padding:7px;transform:translate(-50%,-50%);border:0;background:transparent;touch-action:none;cursor:nwse-resize}
.patri-keychain-crop__handle::after{content:'';display:block;width:100%;height:100%;background:var(--patri-cream);border:1px solid var(--patri-rust);border-radius:2px}
.patri-keychain-crop__handle--nw{left:0;top:0}.patri-keychain-crop__handle--ne{left:100%;top:0;cursor:nesw-resize}
.patri-keychain-crop__handle--se{left:100%;top:100%}.patri-keychain-crop__handle--sw{left:0;top:100%;cursor:nesw-resize}
.patri-keychain-crop__actions [data-crop-action=apply]{background:var(--patri-rust);color:var(--patri-cream);border-color:var(--patri-rust)}
@media(max-width:399px){.patri-keychain__fonts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:749px){.product-information:has(patri-keychain-designer){padding-inline:20px}.product-information:has(patri-keychain-designer) .product-information__grid{display:flex;flex-direction:column;gap:20px}.product-information:has(patri-keychain-designer) .product-information__media{position:static;width:100%}.product-information:has(patri-keychain-designer) .product-details{width:100%}.patri-keychain-media__badge{top:10px;left:10px;font-size:11px}.patri-keychain-media__start{bottom:16px;font-size:13px}.patri-keychain__mobile-preview{display:block;text-decoration:underline!important;min-height:44px;padding-block:10px;font-size:14px}.patri-keychain__font{font-size:14px}.patri-keychain__font--script{font-size:21px}.patri-keychain__font--tall{font-size:23px}.patri-keychain-media__empty{font-size:11px}}
