/* A quiet continuation of the Millor experience. */
#fal{
 --fal-gold:#d7bc83;--fal-text:#f4efe4;--fal-muted:#b3c3b6;
 width:min(820px,96vw);max-height:94dvh;padding:0;
 background:radial-gradient(ellipse at 0 0,#244536 0,transparent 52%),#0f2b24;
 color:var(--fal-text);border:1px solid #d7bc8345;border-radius:20px;
 box-shadow:0 24px 100px #0005;scrollbar-color:#d7bc8359 #0f2b24;
}
#fal::backdrop{background:#061a15e8;backdrop-filter:blur(10px)}
#fal .fal-top{
 height:76px;padding:16px 32px;gap:20px;border-color:#d7bc831c;
 position:sticky;top:0;z-index:5;background:#153329f2;backdrop-filter:blur(14px);
}
#fal .fal-brand{background:transparent!important;padding:0!important;flex-shrink:0}
#fal .fal-brand img{width:150px}
#fal .fal-top>span{color:#b8c3ac;font-size:9px;letter-spacing:.17em}
#fal .close{
 background:#ffffff07;color:var(--fal-text);border:1px solid #d7bc8329;
 top:16px;right:24px;width:44px;height:44px;border-radius:50%;font-size:26px;
 display:grid;place-items:center;
}
#fal .fal-layout{display:block}
#fal .fal-aside,#fal .fal-stepper{display:none}
#fal .fal-main{padding:32px 32px 36px;min-width:0}
#fal .uploader-heading{position:relative;padding-right:68px;margin-bottom:28px}
#fal .uploader-heading h1{
 font-family:'Playfair Display',Georgia,serif;font-size:34px;line-height:1.2;
 letter-spacing:-.035em;margin:0 0 12px;color:var(--fal-text);font-weight:400;
}
#fal .uploader-heading p{font-size:14px;line-height:1.75;color:var(--fal-muted);margin:0;margin-right:-62px}
#fal #photo-count{
 position:absolute;right:0;top:0;padding:10px 14px;font-size:13px;line-height:1.4;
 color:var(--fal-gold);border:1px solid #d7bc833d;background:#d7bc8308;border-radius:50px;
}
#fal .fal-photo-grid{grid-template-columns:minmax(0,2fr) repeat(2,minmax(0,1fr));grid-template-rows:190px 190px;gap:14px}
#fal .photo-slot:first-child{grid-row:span 2}
#fal .photo-slot label{
 height:100%;background:#ffffff02;border:1px dashed #d7bc834d;
 border-radius:18px;padding:18px 10px;gap:7px;text-align:center;
 align-items:center;justify-content:center;
 transition:border-color .2s,background .2s;
}
#fal .photo-slot:first-child label{background:radial-gradient(ellipse at 50% 38%,#d7bc8310,transparent 72%)}
#fal .cup-art{position:relative;width:84px;height:84px;color:var(--fal-gold);margin-bottom:1px;flex-shrink:0}
#fal .cup-art svg{width:100%;height:100%}
#fal .photo-slot:first-child .cup-art{width:166px;height:166px;margin-bottom:16px}
#fal .add-badge{
 position:absolute;right:0;bottom:2px;border-radius:50%;background:var(--fal-gold);
 color:#123329;border:3px solid #16372c;width:34px;height:34px;
 display:grid;place-items:center;font:500 24px Arial;
}
#fal .photo-slot strong{font-size:15px;line-height:1.45;color:var(--fal-text);font-weight:500}
#fal .photo-slot strong small{
 display:inline-block;font-family:'DM Sans',Arial,sans-serif;font-size:9px;line-height:1.5;
 letter-spacing:.035em;color:var(--fal-gold);border:1px solid #d7bc8340;background:#d7bc830b;
 border-radius:50px;padding:2px 7px;vertical-align:middle;margin-left:4px;white-space:nowrap;
}
#fal .photo-slot label>span:last-of-type{font-size:12px;color:var(--fal-muted);line-height:1.5;max-width:145px}
#fal .photo-slot:first-child label>span:last-of-type{max-width:100%;font-size:13px}
#fal .photo-slot input{position:absolute;width:1px;height:1px;opacity:0;margin:0}
#fal .photo-slot.has-photo label{border-style:solid;border-color:#d7bc837a}
#fal .photo-slot img{border-radius:17px}
#fal .remove-photo{
 background:#102d25e8;border:1px solid #d7bc8375;color:var(--fal-text);
 top:10px;right:10px;width:44px;height:44px;font-size:25px;display:grid;place-items:center;
}
#fal .file-hint{font-size:11px;line-height:1.6;color:var(--fal-muted);margin-top:16px}
#fal #photo-message{color:#e1c796;font-size:12px;line-height:1.7;overflow-wrap:anywhere}
#fal .fal-personal{
 border:1px solid #d7bc8336;border-radius:18px;padding:0;margin-top:28px;
 background:linear-gradient(110deg,#d7bc8308,transparent);
}
#fal .fal-personal summary{
 display:flex;align-items:center;gap:16px;padding:22px 20px;cursor:pointer;list-style:none;
}
#fal .fal-personal summary::-webkit-details-marker{display:none}
#fal .personal-emblem{
 width:48px;height:48px;border:1px solid #d7bc8342;border-radius:50%;
 display:grid;place-items:center;color:var(--fal-gold);font-size:27px;flex-shrink:0;
}
#fal .fal-personal summary>span:not(.personal-emblem):not(.personal-chevron){min-width:0}
#fal .fal-personal summary strong{
 font:400 24px/1.25 'Playfair Display',Georgia,serif;color:var(--fal-text);display:block;
}
#fal .fal-personal summary small{display:block;font-size:12px;color:var(--fal-muted);line-height:1.6;margin-top:5px}
#fal .personal-pills{display:flex;gap:7px;margin-top:10px;flex-wrap:wrap}
#fal .personal-pills b{
 font-size:10px;line-height:1.5;font-weight:500;border:1px solid #d7bc8336;
 background:#d7bc8309;border-radius:50px;padding:4px 10px;color:#d5dfce;
}
#fal .personal-chevron{margin-left:auto;color:var(--fal-gold);font-size:22px;flex-shrink:0}
#fal details[open] .personal-chevron{transform:rotate(180deg)}
#fal .personal-fields{padding:0 22px 24px;border-top:1px solid #d7bc8319}
#fal .name-label,#fal legend{color:var(--fal-muted);font-size:12px;line-height:1.5}
#fal #fal-name{
 background:#ffffff03;border-color:#d7bc833d;color:var(--fal-text);border-radius:12px;
 padding:13px 15px;min-height:48px;font-size:16px;
}
#fal #fal-name::placeholder{color:#8eab96}
#fal .topic-options{gap:8px}
#fal .topic-options button{
 min-height:44px;padding:10px 15px;border-radius:12px;border-color:#d7bc833d;
 color:#c7d3c2;background:#ffffff03;font-size:12px;
}
#fal .topic-options button[aria-pressed=true]{color:#102d25;background:var(--fal-gold);border-color:var(--fal-gold)}
#fal .fal-submit-area{margin-top:28px}
#fal #read-demo{
 background:var(--fal-gold);color:#102d25;border-radius:14px;font-size:15px;
 font-weight:600;min-height:58px;padding:16px 20px;line-height:1.5;
}
#fal #read-demo:disabled{background:#3b5145;color:#d5ccb8;cursor:not-allowed}
#fal #read-demo[aria-busy=true]{background:#d7bc83a6}
#fal .fal-heading h2{color:var(--fal-text);font-size:42px;font-weight:400;line-height:1.2}
#fal .fal-heading p:not(.eyebrow){color:var(--fal-muted);line-height:1.75}
#fal .eyebrow{color:var(--fal-gold);letter-spacing:.18em}
#fal .result-banner{
 background:#d7bc8309;color:#dbc18e;border:1px solid #d7bc8332;
 border-radius:14px;padding:16px 18px;font-size:12px;line-height:1.6;
}
#fal .result-tabs{border-color:#d7bc832a;gap:28px;margin-top:28px}
#fal .result-tabs button{color:var(--fal-muted);min-height:48px;font-size:14px;padding:12px 0}
#fal .result-tabs button[aria-selected=true]{color:var(--fal-gold);border-color:var(--fal-gold)}
#fal #reading{background:#ffffff04;border:1px solid #d7bc832a;border-radius:18px;padding:30px;margin-top:26px}
#fal #reading h3{color:var(--fal-text);font-size:31px;font-weight:400;line-height:1.3;letter-spacing:-.025em}
#fal #reading p:not(.eyebrow){color:#c5d1c0;font-size:16px;line-height:1.9;overflow-wrap:anywhere}
#fal blockquote{
 color:#dbc18e;background:#d7bc8306;border-color:var(--fal-gold);border-radius:0 12px 12px 0;
 font-size:18px;line-height:1.65;margin-top:28px;padding:18px 22px;
}
#fal .result-footer .button{background:var(--fal-gold);color:#102d25;border-radius:14px;min-height:50px;margin-top:24px}
#fal .fal-personal summary:focus-visible,#fal .photo-slot:focus-within label,
#fal button:focus-visible,#fal a:focus-visible,#fal input:focus-visible{outline:2px solid var(--fal-gold);outline-offset:3px}
@media(hover:hover) and (pointer:fine){
 #fal .photo-slot label:hover{border-color:#d7bc8399;background:#d7bc8307}
 #fal .close:hover,#fal .remove-photo:hover{background:#d7bc8315;border-color:#d7bc838a}
 #fal #read-demo:not(:disabled):hover,#fal .result-footer .button:hover{background:#e4cd9d}
}
@media(max-width:640px){
 #fal{width:100%;height:100dvh;max-height:100dvh;margin:0;border-radius:0;border:0}
 #fal .fal-top{height:72px;padding:14px 20px}
 #fal .fal-brand img{width:135px}
 #fal .close{top:14px;right:16px}
 #fal .fal-main{padding:28px 20px calc(30px + env(safe-area-inset-bottom,0px))}
 #fal .uploader-heading{margin-bottom:24px}
 #fal .uploader-heading h1{font-size:30px}
 #fal .uploader-heading p{font-size:13px;line-height:1.75}
 #fal #photo-count{font-size:12px;padding:9px 12px}
 #fal .fal-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:230px 176px 176px;gap:12px}
 #fal .photo-slot:first-child{grid-column:span 2;grid-row:auto}
 #fal .photo-slot label{padding:12px 8px;align-items:center;justify-content:center;gap:6px}
 #fal .photo-slot:first-child .cup-art{width:116px;height:116px;margin-bottom:5px}
 #fal .cup-art{width:76px;height:76px}
 #fal .photo-slot strong{font-size:15px}
 #fal .photo-slot label>span:last-of-type{font-size:11px;text-align:center;max-width:135px}
 #fal .photo-slot:first-child label>span:last-of-type{font-size:12px}
 #fal .fal-personal{margin-top:26px}
 #fal .fal-personal summary{padding:20px 16px;gap:12px}
 #fal .personal-emblem{width:42px;height:42px;font-size:23px}
 #fal .fal-personal summary strong{font-size:22px}
 #fal .fal-personal summary small{font-size:11px}
 #fal .personal-chevron{font-size:20px}
 #fal .personal-fields{padding:0 16px 20px}
 #fal .topic-options button{font-size:12px;padding:10px 13px}
 #fal .file-hint{font-size:10px}
 #fal .fal-heading h2{font-size:35px}
 #fal .fal-heading p:not(.eyebrow){font-size:13px}
 #fal .result-tabs{gap:26px}
 #fal .result-tabs button{font-size:13px}
 #fal #reading{padding:24px 20px}
 #fal #reading h3{font-size:28px}
 #fal #reading p:not(.eyebrow){font-size:15px;line-height:1.9}
 #fal blockquote{font-size:17px;padding:16px 18px}
 #fal .result-footer .button{width:100%}
}
@media(max-width:360px){
 #fal .fal-main{padding-left:16px;padding-right:16px}
 #fal .uploader-heading h1{font-size:28px}
 #fal .fal-personal summary{gap:10px;padding:18px 12px}
 #fal .fal-personal summary strong{font-size:20px}
 #fal .personal-emblem{width:36px;height:36px;font-size:21px}
 #fal .topic-options{gap:6px}
 #fal .topic-options button{padding:10px 11px;font-size:11px}
 #fal .photo-slot strong{font-size:14px}
}
@media(prefers-reduced-motion:reduce){#fal .photo-slot label{transition:none}}

/* The same cup flow now lives at its own URL. */
body.fal-page{overflow:hidden;background:#0b2622}body.fal-page #fal{display:block;margin:24px auto;width:min(1180px,96vw);height:calc(100dvh - 48px);max-height:calc(100dvh - 48px);overflow:auto;border:1px solid #d5b77940;border-radius:18px}body.fal-page #fal .close{position:absolute;display:grid;place-items:center;text-decoration:none}body.fal-page #fal .fal-layout{min-height:calc(100% - 82px)}@media(max-width:640px){body.fal-page #fal{width:100%;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0}}

/* Photograph each angle directly from the camera. */
#fal .photo-slot .capture-photo{
 display:flex;flex-direction:column;align-items:center;justify-content:center;
 width:100%;height:100%;min-width:0;position:relative;overflow:hidden;
 border:1px dashed #d7bc834d;border-radius:18px;padding:18px 10px;gap:7px;
 background:#ffffff02;color:var(--fal-text);font:inherit;text-align:center;cursor:pointer;
 transition:border-color .2s,background .2s;
}
#fal .photo-slot:first-child .capture-photo{background:radial-gradient(ellipse at 50% 38%,#d7bc8310,transparent 72%)}
#fal .photo-slot .capture-photo>span:last-of-type{font-size:12px;color:var(--fal-muted);line-height:1.5;max-width:145px}
#fal .photo-slot:first-child .capture-photo>span:last-of-type{font-size:13px;max-width:100%}
#fal .photo-slot.has-photo .capture-photo{border-style:solid;border-color:#d7bc837a}
#fal .capture-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:17px}
#fal .capture-photo:focus-visible{outline:2px solid var(--fal-gold);outline-offset:3px}
#fal .capture-photo:disabled{cursor:wait;opacity:.65}
#fal .remove-photo{width:44px;height:44px}
#fal-camera{
 --camera-gold:#d7bc83;--camera-text:#f4efe4;--camera-muted:#b3c3b6;
 width:min(560px,96vw);max-width:none;max-height:92dvh;margin:auto;padding:24px;
 border:1px solid #d7bc8355;border-radius:24px;overflow:auto;overscroll-behavior:contain;
 background:radial-gradient(ellipse at 0 0,#244536 0,transparent 60%),#0f2b24;
 color:var(--camera-text);box-shadow:0 24px 100px #0007;scrollbar-color:#d7bc8359 #0f2b24;
}
#fal-camera[open]{display:flex;flex-direction:column}
#fal-camera::backdrop{background:#061a15ed;backdrop-filter:blur(10px)}
#fal-camera [hidden]{display:none!important}
#fal-camera .camera-top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-shrink:0}
#fal-camera .camera-top>div{min-width:0}
#fal-camera .eyebrow{font-size:9px;line-height:1.6;letter-spacing:.2em;color:var(--camera-gold);margin:0 0 7px}
#fal-camera #camera-title{font:400 30px/1.15 'Playfair Display',Georgia,serif;letter-spacing:-.025em;margin:0;color:var(--camera-text)}
#fal-camera #camera-close{
 display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;padding:0;
 border:1px solid #d7bc833d;border-radius:50%;background:#ffffff05;color:var(--camera-text);
 font:400 27px/1 Arial;cursor:pointer;
}
#fal-camera #camera-guide{font-size:13px;line-height:1.65;color:var(--camera-muted);margin:16px 0;flex-shrink:0;overflow-wrap:anywhere}
#fal-camera .camera-viewfinder{
 position:relative;display:flex;align-items:center;justify-content:center;isolation:isolate;
 width:100%;aspect-ratio:4/3;min-height:150px;max-height:48dvh;flex:1 1 auto;
 background:#081c17;border:1px solid #d7bc8326;border-radius:18px;overflow:hidden;
}
#fal-camera #camera-video{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#081c17}
#fal-camera #camera-video.mirrored,#fal-camera .camera-video.mirrored{transform:scaleX(-1)}
#fal-camera .camera-frame{
 position:absolute;inset:12% 16%;z-index:1;pointer-events:none;border-radius:16px;opacity:0;
 background:
  linear-gradient(var(--camera-gold),var(--camera-gold)) left top/25px 2px no-repeat,
  linear-gradient(var(--camera-gold),var(--camera-gold)) left top/2px 25px no-repeat,
  linear-gradient(var(--camera-gold),var(--camera-gold)) right top/25px 2px no-repeat,
  linear-gradient(var(--camera-gold),var(--camera-gold)) right top/2px 25px no-repeat,
  linear-gradient(var(--camera-gold),var(--camera-gold)) left bottom/25px 2px no-repeat,
  linear-gradient(var(--camera-gold),var(--camera-gold)) left bottom/2px 25px no-repeat,
  linear-gradient(var(--camera-gold),var(--camera-gold)) right bottom/25px 2px no-repeat,
  linear-gradient(var(--camera-gold),var(--camera-gold)) right bottom/2px 25px no-repeat;
}
#fal-camera .camera-empty{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;background:#102b25;text-align:center}
#fal-camera .camera-empty>svg{width:44px;height:44px;color:var(--camera-gold)}
#fal-camera #camera-status{font-size:13px;line-height:1.7;max-width:340px;margin:0;color:var(--camera-muted);overflow-wrap:anywhere}
#fal-camera .camera-viewfinder.is-ready .camera-empty{display:none}
#fal-camera .camera-viewfinder.is-ready .camera-frame{opacity:.85}
#fal-camera .camera-actions{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:14px;margin:22px 0 0;flex-shrink:0}
#fal-camera .camera-actions button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-width:0;min-height:44px;padding:8px 3px;border:0;background:none;color:var(--camera-muted);font-size:11px;line-height:1.45;text-align:center;overflow-wrap:anywhere}
#fal-camera .camera-actions button>svg{width:23px;height:23px;color:var(--camera-gold)}
#fal-camera #camera-switch{grid-column:1;grid-row:1}
#fal-camera #camera-capture{grid-column:2;grid-row:1;width:118px;padding:3px 8px;color:var(--camera-text);gap:12px}
#fal-camera #camera-capture>svg{
 width:68px;height:68px;padding:20px;border:3px solid #f4efe4;border-radius:50%;
 outline:1px solid #d7bc83b3;outline-offset:4px;background:var(--camera-gold);color:#102d25;
 box-shadow:0 5px 24px #0003;
}
#fal-camera #camera-capture>span{font-size:13px;font-weight:500;line-height:1.4}
#fal-camera #camera-retry{grid-column:3;grid-row:1;color:var(--camera-gold)}
#fal-camera .camera-actions button:disabled{opacity:.4;cursor:not-allowed}
#fal-camera .camera-tip{margin:17px 0 0;text-align:center;font-size:11px;line-height:1.65;color:var(--camera-muted);flex-shrink:0}
#fal-camera button:focus-visible{outline:2px solid var(--camera-gold);outline-offset:5px}
@media(hover:hover) and (pointer:fine){
 #fal .capture-photo:not(:disabled):hover{border-color:#d7bc8399;background:#d7bc8307}
 #fal-camera #camera-close:hover{background:#d7bc8312;border-color:#d7bc838a}
 #fal-camera .camera-actions button:not(:disabled):hover{color:var(--camera-text)}
 #fal-camera #camera-capture:not(:disabled):hover>svg{background:#e4cd9d}
}
@media(max-width:640px){
 #fal .photo-slot .capture-photo{padding:12px 8px;gap:6px}
 #fal .photo-slot .capture-photo>span:last-of-type{font-size:11px;max-width:135px}
 #fal .photo-slot:first-child .capture-photo>span:last-of-type{font-size:12px;max-width:100%}
 #fal-camera{
  width:100%;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0;
  padding:calc(20px + env(safe-area-inset-top,0px)) 20px calc(20px + env(safe-area-inset-bottom,0px));
 }
 #fal-camera .camera-viewfinder{max-height:none;aspect-ratio:auto;min-height:150px}
 #fal-camera .camera-top{gap:12px}
 #fal-camera #camera-title{font-size:28px}
 #fal-camera #camera-guide{font-size:12px;margin:16px 0}
 #fal-camera .camera-actions{gap:10px;margin-top:24px}
 #fal-camera .camera-tip{font-size:10px}
}
@media(max-width:360px),(max-height:620px){
 #fal-camera{padding-left:16px;padding-right:16px}
 #fal-camera #camera-title{font-size:25px}
 #fal-camera .eyebrow{font-size:8px;margin-bottom:4px}
 #fal-camera #camera-guide{font-size:11px;margin:12px 0;line-height:1.5}
 #fal-camera .camera-actions{gap:8px;margin-top:18px}
 #fal-camera #camera-capture{width:108px;gap:10px}
 #fal-camera #camera-capture>svg{width:58px;height:58px;padding:16px}
 #fal-camera #camera-capture>span{font-size:12px}
 #fal-camera .camera-actions button{font-size:10px}
 #fal-camera .camera-empty{padding:18px;gap:12px}
 #fal-camera .camera-empty>svg{width:35px;height:35px}
 #fal-camera #camera-status{font-size:12px;line-height:1.6}
 #fal-camera .camera-tip{margin-top:12px;font-size:10px;line-height:1.5}
}
@media(prefers-reduced-motion:reduce){#fal .capture-photo{transition:none}}
