:root{--paper:#f7f3ee;--cream:#fffdf9;--ink:#251f21;--muted:#776e70;--line:#e3dcd6;--pink:#d6889f;--deep:#9d536c;--gold:#ae8d5a;font-family:"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:400}input,select,textarea{color:var(--ink)}[hidden]{display:none!important}.eyebrow{font-size:.7rem;font-weight:700;letter-spacing:.2em;color:var(--deep)}.button{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;border:0;padding:15px 17px;border-radius:5px;font-weight:600}.button span{font-size:1.2rem;font-weight:400}.primary{background:#9c586d;color:white}.primary:hover:enabled{background:#85445b}.dark{background:#282225;color:#fff}.dark:hover:enabled{background:#49363f}.quiet-button{border:0;background:transparent;color:#68575d;text-decoration:underline;text-underline-offset:3px;padding:5px;font-size:.8rem}.quiet-button:hover{color:var(--deep)}.access{min-height:100vh;display:grid;place-content:center;gap:22px;padding:24px;background:radial-gradient(circle at 70% 25%,#eed9de 0,transparent 38%),#f8f3ed}.access-card{width:min(430px,calc(100vw - 36px));background:#fffdf9;border:1px solid #e8ded6;padding:33px 38px 36px;box-shadow:0 25px 75px #49373216}.access-logo{display:block;width:155px;height:135px;object-fit:contain;margin:0 auto 15px}.access .eyebrow{display:block;text-align:center}.access h1{text-align:center;font-size:clamp(2rem,5vw,2.8rem);letter-spacing:-.035em;line-height:1.04;margin:11px 0 13px}.access-card>p{text-align:center;color:var(--muted);font-size:.88rem;line-height:1.65;margin-bottom:26px}.access form{display:grid;gap:8px}.access form label,.editor label,.submit label{display:flex;justify-content:space-between;gap:10px;color:#4e4145;font-size:.8rem;font-weight:600}.access form input,.editor>input,.editor>select,.editor textarea,.color-fields select,.submit input{width:100%;height:43px;border:1px solid #d8cdc8;border-radius:4px;background:white;padding:9px 11px;outline:none}.access form input:focus,.editor input:focus,.editor select:focus,.editor textarea:focus,.submit input:focus{border-color:#9c586d;box-shadow:0 0 0 3px #e9c5d080}.access form label:not(:first-child){margin-top:10px}.access form button{margin-top:15px}.access>small{text-align:center;color:#978386}.form-error{min-height:17px;margin:0;color:#a23744;font-size:.79rem}.site-header{height:81px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1380px)/2));background:var(--cream);border-bottom:1px solid var(--line)}.identity{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}.identity img{height:66px;width:77px;object-fit:contain}.identity b{font-family:Georgia,serif;font-size:1.15rem;font-weight:500}.identity small{display:block;color:#92757e;font-size:.56rem;letter-spacing:.16em;margin-top:4px}.header-right{display:flex;align-items:center;gap:30px;color:#8e7e80;font-size:.75rem}main{max-width:1380px;margin:auto;padding:0 28px 80px}.intro{display:grid;grid-template-columns:1fr 460px;align-items:end;gap:50px;padding:53px 0 37px}.intro .eyebrow{grid-column:1/-1;margin-bottom:-34px}.intro h1{font-size:clamp(2.8rem,5vw,5rem);line-height:1;letter-spacing:-.055em;margin:0}.intro p{color:#72666a;font-size:.99rem;line-height:1.75;margin:0 0 4px}.studio{display:grid;grid-template-columns:minmax(385px,.85fr) minmax(520px,1.15fr);gap:18px;align-items:start}.editor,.result{background:#fffdf9;border:1px solid var(--line);box-shadow:0 8px 35px #37282d0b}.editor{padding:33px 34px;display:grid;gap:10px}.section-heading{display:flex;gap:14px;align-items:flex-start;margin-bottom:14px}.section-heading>span{display:grid;place-items:center;flex:none;width:34px;height:34px;background:#f2e8e7;color:var(--deep);border-radius:50%;font-size:.74rem;font-weight:700}.section-heading h2{font-size:1.65rem;margin:0 0 4px;letter-spacing:-.025em}.section-heading p{color:var(--muted);font-size:.79rem;margin:0;line-height:1.5}.editor label small{font-weight:400;color:#998f91}.editor>input,.editor>select{height:46px;margin-bottom:8px}.editor textarea{height:85px;resize:vertical;line-height:1.35;margin-bottom:0}.editor .count{text-align:right;color:#9b8d8f;margin-top:-7px}.rule{height:1px;background:var(--line);margin:18px 0 16px}.upload-row{display:grid;gap:4px}.upload-label{border:1px dashed #ccb1b7;padding:11px 13px;color:var(--deep)!important;background:#fcf6f6;cursor:pointer}.upload-label span{margin-left:auto}.upload-row small,.measure-tip,#customSizeWrap small{font-size:.72rem;color:#96898b;line-height:1.55}.consent{align-items:center!important;justify-content:flex-start!important;font-size:.7rem!important;font-weight:400!important;color:#786e70!important}.consent input{accent-color:#a76477}.inline-message{min-height:13px;color:#6b775d;font-size:.72rem;margin:0}.measure-tip{background:#f7f3ed;padding:10px 12px;margin:0 0 2px}.color-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.color-fields label{font-size:.71rem;margin-bottom:6px}.color-fields select{font-size:.74rem;padding:5px}.color-fields>div{min-width:0}.editor-actions{margin-top:15px}.editor-actions p{color:#9a8c8f;font-size:.69rem;line-height:1.5;margin:7px 0 0}.editor-actions button{font-size:.92rem}#customSizeWrap{display:grid;gap:7px;padding:11px 12px 14px;background:#f8f2ee}#customSizeWrap input{width:100%;accent-color:var(--deep)}.result{position:sticky;top:13px;padding:25px 28px}.result-head{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:19px}.result-head h2{font-size:1.85rem;letter-spacing:-.035em;margin:4px 0 0}.badge{padding:5px 8px;border:1px solid #dfd2cc;color:#81716e;border-radius:3px;font-size:.61rem;font-weight:700;letter-spacing:.11em}.badge.ready{background:#e7eee1;color:#4a6953;border-color:#cbd9c4}.viewer{position:relative;width:100%;height:370px;overflow:hidden;background:radial-gradient(circle at 55% 34%,#f7f4f0,#e8e1da 75%)}.viewer canvas{display:block}.viewer-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px}.viewer-mark{font-family:Georgia,serif;color:#c993a2;font-size:3rem}.viewer-empty h3{font-size:1.5rem;margin:11px 0 8px}.viewer-empty p{max-width:300px;color:#84797b;font-size:.77rem;line-height:1.6;margin:0}.viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:5px;padding:8px 0 19px;color:#9a8e8d;font-size:.67rem;border-bottom:1px solid var(--line)}.viewer-toolbar button{font-size:.67rem}.result-data{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:18px 0;border-bottom:1px solid var(--line)}.result-data>div{padding-right:9px}.result-data>div:not(:first-child){border-left:1px solid var(--line);padding-left:15px}.result-data span,.price span{display:block;color:#8d7e80;font-size:.62rem;letter-spacing:.1em;font-weight:700}.result-data b{display:block;font-family:Georgia,serif;font-weight:400;font-size:1.25rem;margin-top:5px}.price{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:19px 0}.price strong{display:block;font-family:Georgia,serif;font-size:2rem;font-weight:400;margin-top:4px}.price p{max-width:205px;color:#8d8081;font-size:.7rem;line-height:1.5;margin:0}.submit{padding:18px;background:#f5efea;display:grid;gap:10px}.submit input{height:42px}.submit p{margin:0;color:#8d8180;font-size:.68rem;line-height:1.5}.status{min-height:21px;margin:14px 0 0;color:#68585d;font-size:.8rem;line-height:1.5}footer{display:flex;align-items:center;gap:15px;padding:20px max(24px,calc((100vw - 1380px)/2));background:#ebe3dd;border-top:1px solid #dcd1cb;color:#66595c}footer img{width:65px;height:58px;object-fit:contain}footer p{font-family:Georgia,serif;margin:0}footer small{margin-left:auto;color:#938386}
@media(max-width:1050px){.intro{grid-template-columns:1fr;gap:10px;padding-top:35px}.intro .eyebrow{margin-bottom:0}.intro p{max-width:620px}.studio{grid-template-columns:minmax(330px,.85fr) minmax(430px,1.15fr)}.editor{padding:24px}.result{padding:20px}.viewer{height:320px}}
@media(max-width:760px){.site-header{height:72px;padding:0 15px}.identity img{height:56px;width:64px}.identity b{font-size:.95rem}.header-right{gap:9px}.header-right>span{display:none}main{padding:0 14px 40px}.intro{padding:28px 2px 24px}.intro h1{font-size:2.65rem}.intro p{font-size:.85rem}.studio{display:flex;flex-direction:column;gap:12px}.editor,.result{width:100%}.result{position:relative;top:auto;padding:18px}.result-head h2{font-size:1.55rem}.viewer{height:260px}.editor{padding:22px 18px}.section-heading h2{font-size:1.45rem}.color-fields{gap:5px}.color-fields select{font-size:.67rem;padding:4px}.result-data b{font-size:1rem}.price strong{font-size:1.7rem}footer{padding:15px 18px}footer img{width:50px}footer p{font-size:.83rem}footer small{max-width:90px;text-align:right;font-size:.65rem}}
@media(max-width:410px){.intro h1{font-size:2.25rem}.viewer{height:228px}.result-data span{font-size:.55rem}.result-data>div:not(:first-child){padding-left:8px}.price{align-items:start}.price p{max-width:140px}.color-fields{grid-template-columns:1fr 1fr}.color-fields>div:last-child{grid-column:1/-1}}
.progress-box{margin:13px 0 3px;padding:14px;background:#f8f0ed;border:1px solid #e6d6d2;border-radius:4px}.progress-heading{display:flex;justify-content:space-between;gap:10px;color:#684c57;font-size:.79rem}.progress-heading span{font-variant-numeric:tabular-nums}.progress-box progress{display:block;width:100%;height:9px;margin:11px 0;accent-color:#a9607b}.progress-box p{margin:0;color:#7b6d70;font-size:.72rem;line-height:1.45}
@font-face{font-family:PortalLoraItalic;src:url('/assets/fonts/lora-italic.ttf')}@font-face{font-family:PortalLora;src:url('/assets/fonts/lora.ttf')}@font-face{font-family:PortalCormorantItalic;src:url('/assets/fonts/cormorant-italic.ttf')}@font-face{font-family:PortalCormorant;src:url('/assets/fonts/cormorant.ttf')}@font-face{font-family:PortalAllura;src:url('/assets/fonts/allura.ttf')}@font-face{font-family:PortalNunito;src:url('/assets/fonts/nunito.ttf')}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.font-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:8px}.font-choice{border:1px solid #dbcfc9;background:#fff;padding:9px 11px;text-align:left;min-width:0;border-radius:4px}.font-choice[aria-pressed=true]{border:2px solid #9c586d;background:#fff6f7;padding:8px 10px}.font-choice strong{display:block;font-size:1.42rem;line-height:1.14;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.font-choice small{display:block;margin-top:5px;color:#76686c;font-size:.68rem}.font-choice[data-font=lora] strong{font-family:PortalLoraItalic,serif}.font-choice[data-font=lora_regular] strong{font-family:PortalLora,serif}.font-choice[data-font=cormorant] strong{font-family:PortalCormorantItalic,serif}.font-choice[data-font=cormorant_regular] strong{font-family:PortalCormorant,serif}.font-choice[data-font=allura] strong{font-family:PortalAllura,cursive}.font-choice[data-font=nunito] strong{font-family:PortalNunito,sans-serif}
.plate-size{display:block;text-align:left;width:100%;border:2px solid #c68da1;border-radius:6px;padding:13px 15px;background:#fff5f6;color:#362a2d;margin-bottom:1px}.plate-size[aria-pressed=true]{background:#eed4dd;border-color:#944e67;box-shadow:0 0 0 2px #f8e5eb}.plate-size strong{display:block;font-size:.97rem}.plate-size span{display:block;font-size:.75rem;line-height:1.45;color:#67585d;margin-top:4px}.reset-design{margin-top:9px;border:1px solid #c6b5b7;background:transparent;color:#684e57;font-size:.85rem}.reset-design:hover{background:#f7eef0}
.progress-box{position:fixed;bottom:19px;right:19px;width:min(385px,calc(100vw - 30px));z-index:50;box-shadow:0 16px 50px #21171c38;background:#fffdfa;border:1px solid #bd9ba5;border-radius:10px;padding:17px}.progress-heading{align-items:center}.progress-heading button{border:0;background:transparent;font-size:1.35rem;color:#6c5b60}.progress-box p{display:flex;justify-content:space-between;gap:9px;font-size:.74rem}.progress-box small{display:block;color:#766b6d;line-height:1.35}.contact-error{min-height:0;margin:0;color:#a12d37!important;font-weight:650;font-size:.78rem!important}.submit input[aria-invalid=true]{border-color:#b83d49;box-shadow:0 0 0 2px #f0bdc3}.confirmation{position:fixed;inset:0;background:#1f171ca8;z-index:100;display:grid;place-items:center;padding:18px}.confirmation-card{position:relative;background:#fffdfa;padding:30px;width:min(455px,100%);box-shadow:0 20px 70px #0004;border-radius:8px}.confirmation-card h2{font-size:2rem;margin:12px 0}.confirmation-card p{line-height:1.5}.confirmation-close{position:absolute;top:8px;right:12px;border:0;background:transparent;font-size:1.5rem}
@media(max-width:1200px),(pointer:coarse){html,body{max-width:100%;overflow-x:hidden}main{max-width:820px;padding-left:16px;padding-right:16px}.intro{display:block;padding:30px 0 25px}.intro .eyebrow{display:block;margin:0 0 10px}.intro h1{font-size:clamp(2.3rem,5vw,3.8rem);margin-bottom:12px}.intro p{max-width:660px}.studio{display:flex;flex-direction:column}.editor,.result{width:100%;min-width:0}.result{position:relative;top:auto}.viewer{height:clamp(240px,43vw,430px)}}
@media(max-width:600px){.font-choices{grid-template-columns:1fr 1fr}.font-choice strong{font-size:1.25rem}.progress-box{left:15px;right:15px;bottom:15px;width:auto}.progress-box p{display:block}.progress-box p span{display:block;margin:3px 0}.confirmation-card{padding:24px}}
#font.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:0!important;border:0!important;clip:rect(0,0,0,0)!important;overflow:hidden!important}
.phrase-hint{margin:0;color:#817276;font-size:.72rem;line-height:1.4}

.decoration-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:12px 0}.decoration-card{border:1px solid #d8c7cd;background:#fffdfa;border-radius:6px;padding:9px;min-height:62px;color:#49333c;font-size:.74rem}.decoration-card img{display:block;width:100%;height:74px;object-fit:contain;margin-bottom:6px}.decoration-card[aria-pressed=true]{border:2px solid #9d536c;background:#f9e8ee}.size-comparison{border-top:1px solid #e3dcd6;padding:18px 0}.size-comparison h3{margin-bottom:8px}.size-comparison svg{width:100%;max-height:230px}.size-comparison p,.size-comparison a{font-size:.72rem;color:#776e70}.status[data-type=error]{color:#a12d37;font-weight:600}

.descender-dialog{border:1px solid #d9bdc7;border-radius:12px;width:min(490px,calc(100vw - 32px));padding:28px;background:#fffdf9;color:#352a2e;box-shadow:0 20px 65px #0004}.descender-dialog::backdrop{background:#20182090}.descender-dialog h2{font-size:1.8rem}.descender-dialog p{line-height:1.55}.descender-dialog small{display:block;color:#776e70;margin-top:18px}.dialog-actions{display:grid;gap:5px}

.quick-composition{padding:14px 10px;border:1px solid #e3d0d7;background:#fcf4f7;border-radius:8px;margin-top:15px}.quick-composition h3{font-size:1rem;margin-bottom:8px}.quick-stage{display:flex;align-items:flex-end;justify-content:center;min-height:95px;gap:4px;border-bottom:6px solid #e9a2b3}.quick-stage img{width:20%;max-width:85px;max-height:100px;object-fit:contain}.quick-stage .mirrored{transform:scaleX(-1)}.quick-stage .font-choice{border:0;background:transparent;padding:0;text-align:center;min-width:0;flex:1;color:#a55571;overflow:hidden}.quick-stage .font-choice strong{font-size:clamp(1.4rem,3vw,2.2rem);overflow-wrap:anywhere}.quick-stage .long-name strong{font-size:1.35rem}.quick-composition p{font-size:.7rem;line-height:1.4;color:#776e70;margin:10px 0 0}

/* Equal-scale CAD halves meet at the same cut through the sample name. */
.quick-stage{align-items:center;gap:0;border:0;min-height:0}.quick-stage img{max-width:none;max-height:none;height:auto;object-fit:contain;display:block;flex-shrink:0}
