*{box-sizing:border-box}body{margin:0;background:#493a30;color:#65432d;font-family:Georgia,serif;display:grid;place-items:center;min-height:100dvh}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;transition:transform .1s;touch-action:manipulation}button:active{transform:translateY(3px) scale(.95)}button:focus-visible{outline:3px solid #46776d;outline-offset:3px}#game{position:relative;width:min(100vw,56.28dvh);height:min(177.68vw,100dvh);overflow:hidden;background:#d9be88}canvas{width:100%;height:100%;display:block;touch-action:none}nav{position:absolute;top:max(12px,env(safe-area-inset-top));left:3%;right:3%;display:flex;gap:7px;align-items:center}nav button{width:clamp(40px,10vw,48px);height:clamp(40px,10vw,48px);background:none;padding:0;flex-shrink:0}nav img{width:100%}#back{background:#fff2d6;border-radius:50%;box-shadow:0 3px #b59a75;font-size:37px;line-height:1}nav span{flex:1;font:12px sans-serif;letter-spacing:2px;background:#fff1d9df;padding:9px 5px;text-align:center;border-radius:12px}header{position:absolute;top:12%;width:100%;text-align:center;pointer-events:none}header small{letter-spacing:2px;font:10px sans-serif;background:#fff2dded;padding:5px 12px;border-radius:10px}h1{font-size:clamp(18px,5vw,25px);font-weight:400;margin:12px 0;text-shadow:0 1px #fff;background:#fff4dfdc;display:inline-block;padding:7px 18px;border-radius:16px}footer{position:absolute;bottom:max(13px,env(safe-area-inset-bottom));width:100%;text-align:center}#tools{display:flex;justify-content:center;gap:20px;margin-bottom:14px}#tools button{width:65px;height:72px;border-radius:26px;background:#fff0d8e8;box-shadow:0 4px #b08b56;padding:5px;position:relative}#tools button.selected{outline:3px solid #648878;transform:translateY(-4px)}#tools img{width:43px;height:43px;object-fit:contain}#tools span{display:block;font-size:12px}footer small{font:8px sans-serif;letter-spacing:1px;background:#fff1dbdf;padding:5px 9px;border-radius:7px}#hint{position:absolute;bottom:18%;left:8%;right:8%;text-align:center;font-size:14px;background:#fff4e3ec;padding:9px;border-radius:14px;pointer-events:none}#hint:empty{display:none}#continue,dialog button{background:#f5e2bc;border:1px solid #ae8953;border-radius:16px;padding:12px 24px;box-shadow:0 3px #ad8756;margin-bottom:14px}dialog{color:#65432d;background:#fff3dc;border:2px solid #c4a276;border-radius:25px;width:min(88vw,380px);max-height:85dvh;padding:24px;line-height:1.55}dialog::backdrop{background:#33271b85}dialog h2{margin-top:0;font-weight:400}dialog ol{padding-left:22px}dialog label{display:block;margin:17px 0}dialog input{width:100%;accent-color:#608577}dialog small{font-size:12px}#error{position:absolute;inset:25% 8%;background:#fff3dc;padding:25px;border-radius:20px} @media(prefers-reduced-motion:reduce){button{transition:none}}
[hidden]{display:none!important}

#tools button[aria-disabled=true]{opacity:.48;box-shadow:0 2px #b08b56}dialog button{display:block;width:100%;min-height:48px;font-family:inherit;font-size:16px;font-weight:400;line-height:1.4;text-align:center;margin:12px 0 0}

#previous{display:block;margin:0 auto 10px;padding:8px 16px;min-height:40px;border-radius:14px;background:#fff0d8e8;font-size:13px;box-shadow:0 2px #b08b56}#previous:disabled{opacity:.45;cursor:default}

/* Journey-only controls. The reviewed Touch Test 08 crafting layout is unchanged. */
.journey-mode footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;padding:0 12px;bottom:max(10px,env(safe-area-inset-bottom))}
.journey-mode #previous,.journey-mode #continue{display:inline-block;margin:0;min-height:42px;padding:10px 14px;font-size:14px;font-weight:400;line-height:1.2}
.journey-mode footer>small{flex-basis:100%;margin-top:3px}
.journey-mode #continue:disabled{opacity:.48;cursor:default}
#journey-tools{position:absolute;bottom:calc(100% + 11px);right:6%;display:flex;justify-content:center}
#journey-tools button{width:68px;height:76px;border-radius:24px;background:#fff0d8ed;box-shadow:0 4px #b08b56;font-size:12px;padding:5px;outline:3px solid #648878}
#journey-tools img{display:block;width:42px;height:43px;object-fit:contain;margin:auto}
#journey-secondary{display:flex;gap:8px;flex-basis:100%;justify-content:center}
#journey-secondary button{min-height:38px;padding:7px 13px;border-radius:13px;background:#fff0d8ed;font:13px Georgia,serif;box-shadow:0 2px #b08b56}
#journey-secondary button:disabled{opacity:.45}
.journey-mode #hint{top:24%;bottom:auto;font-size:13px;left:6%;right:6%}
.journey-mode header{top:12%}
@media(max-height:650px){nav{gap:3px}nav button{width:35px;height:35px}nav span{font-size:10px;padding:7px 2px}h1{font-size:17px;padding:6px 12px}.journey-mode #hint{font-size:11px;padding:6px}.journey-mode #previous,.journey-mode #continue{font-size:12px;padding:8px 10px;min-height:36px}}

/* Shared navigation, instructions and actions, Full Journey 11. */
header{display:none}nav span{background:none;padding:0;letter-spacing:0}nav #back,nav #previous,.journey-mode nav #previous{display:block;margin:0;padding:0;width:42px;height:42px;min-height:42px;border-radius:50%;background:#fff0d8ed;box-shadow:0 3px #b59a75;font:400 28px/42px Georgia,serif;text-align:center}footer,.journey-mode footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;padding:0 12px;bottom:max(10px,env(safe-area-inset-bottom));pointer-events:none}footer button{pointer-events:auto}footer>small{flex-basis:100%;margin-top:3px}#hint,.journey-mode #hint{top:auto;bottom:17%;left:6%;right:6%;font:400 13px/1.4 Georgia,serif;padding:9px 12px}#continue,.journey-mode #continue{margin:0;min-height:42px;padding:10px 20px;font:400 14px/1.2 Georgia,serif}#continue:disabled{opacity:.45;cursor:default}#tools{margin:0}#journey-tools{bottom:calc(100% + 10px)}@media(max-height:650px){#hint,.journey-mode #hint{font-size:11px;padding:6px 9px}nav #back,nav #previous,.journey-mode nav #previous{width:35px;height:35px;min-height:35px;font-size:25px;line-height:35px}}

/* v14: instruction and action dock inside the visible portrait canvas. */
#hint,.journey-mode #hint{bottom:145px;font-size:clamp(11px,2.8vw,14px);max-height:110px;overflow:auto}
footer,.journey-mode footer{bottom:14px;min-height:94px;padding:8px 12px;background:linear-gradient(transparent,rgba(73,58,48,.35));}
footer>small{display:none}#tools{gap:14px}#journey-tools{position:static}#tools button{width:58px;height:67px}
#continue,.journey-mode #continue{background:#fff2d6;color:#65432d;pointer-events:auto;z-index:3}
@media(max-height:650px){#hint,.journey-mode #hint{bottom:115px}footer,.journey-mode footer{min-height:80px}#tools button{height:60px}}

/* Hammock travel chapter. Scoped so the existing lantern composition is retained. */
#journeys{background:#fff2d6ed;border-radius:50%;box-shadow:0 3px #b59a75;font:27px/1 Georgia,serif}
#hammock-place{position:absolute;top:13%;left:7%;right:7%;text-align:center;pointer-events:none;color:#365d56}
#hammock-place small{display:block;font:9px/1.4 Arial,sans-serif;letter-spacing:2px;margin:0 auto 8px;background:#fff8e9e8;width:fit-content;padding:6px 12px;border-radius:20px}
#hammock-place strong{display:inline-block;font:400 clamp(22px,5.5vw,30px)/1.2 Georgia,serif;background:#fff8e9ed;padding:10px 23px;border-radius:18px;box-shadow:0 4px 20px #244c4e12}
#hammock-progress{position:absolute;top:26%;left:0;right:0;display:flex;justify-content:center;gap:7px;pointer-events:none}
#hammock-progress i{width:6px;height:6px;border-radius:10px;background:#fff7e9b3;box-shadow:0 1px 3px #264a4933}
#hammock-progress i.current{width:24px;background:#fff8e8}
#hammock-progress i.done{background:#4d847b}
.hammock-mode #hint{bottom:111px;left:7%;right:7%;font:13px/1.5 Georgia,serif;background:#fff9edee;border:1px solid #fffaf2;box-shadow:0 5px 24px #254d3e17;padding:12px 16px;border-radius:17px;max-height:none}
.hammock-mode footer{min-height:86px;background:linear-gradient(transparent,#244e5133);gap:10px}
.hammock-mode #continue{background:#39786e;color:#fff9e9;border:1px solid #74a398;box-shadow:0 3px #265d55;padding:14px 27px;border-radius:18px;font-size:15px;min-width:170px}
.hammock-mode #continue:disabled{opacity:.55}
.hammock-mode #journey-secondary{flex-basis:auto}
.hammock-mode #journey-secondary button{background:#fff8e9ed;color:#3d6259;box-shadow:0 2px #9eaa95}
@media(max-height:650px){.hammock-mode #hint{bottom:93px;font-size:11px;padding:8px 11px}.hammock-mode footer{min-height:75px}.hammock-mode #continue{font-size:12px;padding:11px 17px;min-width:140px}#hammock-place{top:14%}#hammock-place strong{font-size:21px;padding:8px 17px}#hammock-place small{font-size:8px}#hammock-progress{top:30%}nav #journeys{width:35px;height:35px}}

#hammock-workshop[hidden],#game[hidden]{display:none!important}

#hammock-fibres[hidden]{display:none!important}

*{box-sizing:border-box}body{margin:0;background:#493a30;color:#65432d;font-family:Georgia,serif;display:grid;place-items:center;min-height:100dvh}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;transition:transform .1s;touch-action:manipulation}button:active{transform:translateY(3px) scale(.95)}button:focus-visible{outline:3px solid #46776d;outline-offset:3px}#game{position:relative;width:min(100vw,56.28dvh);height:min(177.68vw,100dvh);overflow:hidden;background:#d9be88}canvas{width:100%;height:100%;display:block;touch-action:none}nav{position:absolute;top:max(12px,env(safe-area-inset-top));left:3%;right:3%;display:flex;gap:7px;align-items:center}nav button{width:clamp(40px,10vw,48px);height:clamp(40px,10vw,48px);background:none;padding:0;flex-shrink:0}nav img{width:100%}#back{background:#fff2d6;border-radius:50%;box-shadow:0 3px #b59a75;font-size:37px;line-height:1}nav span{flex:1;font:12px sans-serif;letter-spacing:2px;background:#fff1d9df;padding:9px 5px;text-align:center;border-radius:12px}header{position:absolute;top:12%;width:100%;text-align:center;pointer-events:none}header small{letter-spacing:2px;font:10px sans-serif;background:#fff2dded;padding:5px 12px;border-radius:10px}h1{font-size:clamp(18px,5vw,25px);font-weight:400;margin:12px 0;text-shadow:0 1px #fff;background:#fff4dfdc;display:inline-block;padding:7px 18px;border-radius:16px}footer{position:absolute;bottom:max(13px,env(safe-area-inset-bottom));width:100%;text-align:center}#tools{display:flex;justify-content:center;gap:20px;margin-bottom:14px}#tools button{width:65px;height:72px;border-radius:26px;background:#fff0d8e8;box-shadow:0 4px #b08b56;padding:5px;position:relative}#tools button.selected{outline:3px solid #648878;transform:translateY(-4px)}#tools img{width:43px;height:43px;object-fit:contain}#tools span{display:block;font-size:12px}footer small{font:8px sans-serif;letter-spacing:1px;background:#fff1dbdf;padding:5px 9px;border-radius:7px}#hint{position:absolute;bottom:18%;left:8%;right:8%;text-align:center;font-size:14px;background:#fff4e3ec;padding:9px;border-radius:14px;pointer-events:none}#hint:empty{display:none}#continue,dialog button{background:#f5e2bc;border:1px solid #ae8953;border-radius:16px;padding:12px 24px;box-shadow:0 3px #ad8756;margin-bottom:14px}dialog{color:#65432d;background:#fff3dc;border:2px solid #c4a276;border-radius:25px;width:min(88vw,380px);max-height:85dvh;padding:24px;line-height:1.55}dialog::backdrop{background:#33271b85}dialog h2{margin-top:0;font-weight:400}dialog ol{padding-left:22px}dialog label{display:block;margin:17px 0}dialog input{width:100%;accent-color:#608577}dialog small{font-size:12px}#error{position:absolute;inset:25% 8%;background:#fff3dc;padding:25px;border-radius:20px} @media(prefers-reduced-motion:reduce){button{transition:none}}
[hidden]{display:none!important}

#tools button[aria-disabled=true]{opacity:.48;box-shadow:0 2px #b08b56}dialog button{display:block;width:100%;min-height:48px;font-family:inherit;font-size:16px;font-weight:400;line-height:1.4;text-align:center;margin:12px 0 0}

#previous{display:block;margin:0 auto 10px;padding:8px 16px;min-height:40px;border-radius:14px;background:#fff0d8e8;font-size:13px;box-shadow:0 2px #b08b56}#previous:disabled{opacity:.45;cursor:default}

/* Journey-only controls. The reviewed Touch Test 08 crafting layout is unchanged. */
.journey-mode footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;padding:0 12px;bottom:max(10px,env(safe-area-inset-bottom))}
.journey-mode #previous,.journey-mode #continue{display:inline-block;margin:0;min-height:42px;padding:10px 14px;font-size:14px;font-weight:400;line-height:1.2}
.journey-mode footer>small{flex-basis:100%;margin-top:3px}
.journey-mode #continue:disabled{opacity:.48;cursor:default}
#journey-tools{position:absolute;bottom:calc(100% + 11px);right:6%;display:flex;justify-content:center}
#journey-tools button{width:68px;height:76px;border-radius:24px;background:#fff0d8ed;box-shadow:0 4px #b08b56;font-size:12px;padding:5px;outline:3px solid #648878}
#journey-tools img{display:block;width:42px;height:43px;object-fit:contain;margin:auto}
#journey-secondary{display:flex;gap:8px;flex-basis:100%;justify-content:center}
#journey-secondary button{min-height:38px;padding:7px 13px;border-radius:13px;background:#fff0d8ed;font:13px Georgia,serif;box-shadow:0 2px #b08b56}
#journey-secondary button:disabled{opacity:.45}
.journey-mode #hint{top:24%;bottom:auto;font-size:13px;left:6%;right:6%}
.journey-mode header{top:12%}
@media(max-height:650px){nav{gap:3px}nav button{width:35px;height:35px}nav span{font-size:10px;padding:7px 2px}h1{font-size:17px;padding:6px 12px}.journey-mode #hint{font-size:11px;padding:6px}.journey-mode #previous,.journey-mode #continue{font-size:12px;padding:8px 10px;min-height:36px}}

/* Shared navigation, instructions and actions, Full Journey 11. */
header{display:none}nav span{background:none;padding:0;letter-spacing:0}nav #back,nav #previous,.journey-mode nav #previous{display:block;margin:0;padding:0;width:42px;height:42px;min-height:42px;border-radius:50%;background:#fff0d8ed;box-shadow:0 3px #b59a75;font:400 28px/42px Georgia,serif;text-align:center}footer,.journey-mode footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;padding:0 12px;bottom:max(10px,env(safe-area-inset-bottom));pointer-events:none}footer button{pointer-events:auto}footer>small{flex-basis:100%;margin-top:3px}#hint,.journey-mode #hint{top:auto;bottom:17%;left:6%;right:6%;font:400 13px/1.4 Georgia,serif;padding:9px 12px}#continue,.journey-mode #continue{margin:0;min-height:42px;padding:10px 20px;font:400 14px/1.2 Georgia,serif}#continue:disabled{opacity:.45;cursor:default}#tools{margin:0}#journey-tools{bottom:calc(100% + 10px)}@media(max-height:650px){#hint,.journey-mode #hint{font-size:11px;padding:6px 9px}nav #back,nav #previous,.journey-mode nav #previous{width:35px;height:35px;min-height:35px;font-size:25px;line-height:35px}}

/* v14: instruction and action dock inside the visible portrait canvas. */
#hint,.journey-mode #hint{bottom:145px;font-size:clamp(11px,2.8vw,14px);max-height:110px;overflow:auto}
footer,.journey-mode footer{bottom:14px;min-height:94px;padding:8px 12px;background:linear-gradient(transparent,rgba(73,58,48,.35));}
footer>small{display:none}#tools{gap:14px}#journey-tools{position:static}#tools button{width:58px;height:67px}
#continue,.journey-mode #continue{background:#fff2d6;color:#65432d;pointer-events:auto;z-index:3}
@media(max-height:650px){#hint,.journey-mode #hint{bottom:115px}footer,.journey-mode footer{min-height:80px}#tools button{height:60px}}

#craft-picker{position:absolute;top:74px;left:50%;transform:translateX(-50%);white-space:nowrap;border-radius:14px;background:#fff0d8ed;padding:8px 15px;font:11px Georgia,serif;letter-spacing:1px;box-shadow:0 2px #b59a75}#craft-picker:active{transform:translateX(-50%) translateY(2px)}.cao-manual li{margin-bottom:13px}.manual-intro{font-style:italic}.manual-note{font-size:12px;border-top:1px solid #c4a276;padding-top:12px}@media(max-height:650px){#craft-picker{top:58px;font-size:10px;padding:6px 10px}}

/* Cao lầu visual revision: new founder storyboard, scoped to this craft. */
.cao-journey #hint{font-family:'Trebuchet MS',Arial,sans-serif;color:#60391e;background:#fff4d8f2;border:1px solid #d9b47b;border-radius:18px;box-shadow:0 2px 0 #ad713750}
.cao-journey #continue{font-family:'Trebuchet MS',Arial,sans-serif;font-weight:700;border:2px solid #b7782a;background:linear-gradient(#fff2b4,#ffd274);border-radius:22px;box-shadow:inset 0 2px #fff9dc,0 4px #a56c33;min-width:130px}
.cao-journey #craft-picker{font-family:'Trebuchet MS',Arial,sans-serif;font-weight:700;background:#fff7df;border:1px solid #d6b47d;letter-spacing:.6px}
dialog.cao-book{font-family:'Trebuchet MS',Arial,sans-serif;width:min(92vw,420px);max-height:92dvh;padding:24px 20px 18px 29px;border:3px solid #bc8243;border-radius:13px 22px 22px 13px;background:linear-gradient(90deg,#c69a61 0,#edc990 7px,#fff3d5 17px,#fff8e6 100%);box-shadow:-5px 5px 0 #a96532,-9px 9px 0 #663e2b, inset 0 0 0 5px #ffefd0;color:#55301b}
.cao-book h2{text-align:center;font-size:28px;font-weight:800;margin:0;line-height:1.1}.book-subtitle{text-align:center;margin:6px 0 14px;font-size:14px;font-weight:700}
.cao-manual.illustrated{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}
.cao-manual.illustrated li{margin:0;text-align:center;position:relative;line-height:1.2}.manual-picture{display:block;border-radius:10px;overflow:hidden;background:#fff9e8;margin-bottom:5px}.manual-picture img{display:block;width:100%;height:100px;object-fit:contain;mix-blend-mode:multiply}.cao-manual b{display:block;font-size:12px}.manual-detail{display:block;font-size:10px;line-height:1.3;margin:4px 0 0;color:#795239}
.cao-book .manual-note{font-size:10px;line-height:1.4;margin:12px 0 8px;padding-top:8px}.cao-book #skip-cao-manual{font-size:12px;min-height:28px;padding:4px;margin:0;background:none;border:0;box-shadow:none;text-decoration:underline}.cao-book #close{font-weight:800;border-radius:22px;background:linear-gradient(#fff2b4,#ffd274);border:2px solid #b7782a;box-shadow:inset 0 2px #fff9dc,0 3px #a56c33;margin:8px 0 0;min-height:42px;padding:8px}
@media(max-height:720px){dialog.cao-book{padding-top:17px;padding-bottom:12px}.manual-picture img{height:72px}.cao-manual.illustrated{gap:8px 12px}.cao-book h2{font-size:24px}.book-subtitle{margin:4px 0 10px}.manual-detail{font-size:9px}}

/* Registered step caption; existing controls and action dock retained. */
#cao-step{position:absolute;top:115px;left:50%;transform:translateX(-50%);max-width:88%;padding:6px 13px;border-radius:12px;color:#60391e;background:#fff7e5eb;font:700 13px/1.3 'Trebuchet MS',Arial,sans-serif;text-align:center;pointer-events:none;white-space:nowrap;box-shadow:0 2px 0 #ad713730}
@media(max-height:650px){#cao-step{top:91px;font-size:11px;padding:5px 10px}}

.late-chapter #hint{font-family:Georgia,serif;background:#fff1dbef;color:#65432d;border-radius:16px;border:1px solid #d1b28a;box-shadow:0 2px 4px #5d3c2326}.late-chapter #continue,.late-chapter #late-secondary{font:400 14px/1.2 Georgia,serif;background:#fff2d6;color:#65432d;border:1px solid #cfad7d;border-radius:18px;min-height:42px;padding:10px 20px;box-shadow:0 3px #aa8054}.late-chapter #late-secondary{background:#f8e3bf;pointer-events:auto}.late-chapter #craft-picker{font:11px Georgia,serif;letter-spacing:1px}.late-manual{padding-left:20px;line-height:1.4}.late-manual li{margin:10px 0;font-size:13px}#late-secondary[hidden]{display:none!important}

.late-chapter header{display:block;top:12%;pointer-events:none}.late-chapter header small{display:none}.late-chapter header h1{font:16px Georgia,serif;margin:0;padding:7px 14px}.late-chapter #hint{top:19%;bottom:auto;font-size:12px;max-height:80px}.late-chapter footer{min-height:64px;bottom:6px}.late-chapter #craft-picker{top:9%;padding:5px 12px;font-size:9px}
@media(max-height:650px){.late-chapter header h1{font-size:13px}.late-chapter #hint{font-size:10px;padding:5px 8px}.late-chapter #craft-picker{top:9%}}

/* Simple host greetings. Bubble, copy and actions are live DOM, never baked into art. */
#craft-greeting{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:#493a30;color:#542f1d;font-family:Georgia,serif}
#craft-greeting[hidden]{display:none!important}
.greeting-screen{position:relative;isolation:isolate;width:min(100vw,56.28dvh);height:min(177.68vw,100dvh);overflow:hidden;background:#fffaf0;container-type:inline-size}
#greeting-back{position:absolute;top:max(2%,env(safe-area-inset-top));left:5%;width:42px;height:42px;border-radius:50%;font:26px Georgia,serif;background:#f5e7d2;z-index:3}
.greeting-heading{position:absolute;top:11%;left:7%;right:7%;text-align:center}.greeting-heading small{font:700 clamp(10px,3cqw,15px) sans-serif;letter-spacing:2px}.greeting-heading h2{margin:10px 0 0;font-size:clamp(21px,6.4cqw,34px);font-weight:700}
.greeting-bubble{position:absolute;z-index:2;top:27%;right:7%;width:67%;min-height:14%;padding:6% 5%;border:2px solid #683e29;border-radius:48% 45% 44% 42% / 40% 44% 40% 43%;background:#fffef8;text-align:center;font-size:clamp(17px,4.8cqw,25px);line-height:1.35;display:grid;place-items:center}
.greeting-bubble:before{content:'';position:absolute;bottom:-14px;left:20%;width:25px;height:25px;background:#fffef8;border-left:2px solid #683e29;border-bottom:2px solid #683e29;transform:skew(-26deg) rotate(-25deg);border-bottom-left-radius:7px}
.greeting-halo{position:absolute;left:8%;right:8%;top:45%;height:37%;background:#fbe8cd;border-radius:50%;z-index:-1}#craft-greeting[data-craft=lantern] .greeting-halo{background:#e9edd8}
#greeting-host{position:absolute;bottom:16%;left:5%;width:90%;height:44%;object-fit:contain;object-position:bottom;pointer-events:none}
#greeting-next{position:absolute;bottom:max(6%,env(safe-area-inset-bottom));left:12%;width:76%;min-height:48px;padding:13px 12px;border:2px solid #fff8e7;border-radius:32px;background:#df6637;color:#fffdf4;box-shadow:0 4px 10px #a8512526;font:700 clamp(17px,4.6cqw,24px)/1.2 Georgia,serif;touch-action:manipulation}
#greeting-next:disabled{opacity:.6}#greeting-save{position:absolute;bottom:0;left:8%;right:8%;font-size:11px;text-align:center}
#craft-greeting button:focus-visible{outline:3px solid #397b75;outline-offset:4px}
@media(max-height:540px){.greeting-heading{top:9%}.greeting-bubble{top:25%;padding:4%}#greeting-back{width:32px;height:32px;font-size:22px}#greeting-next{min-height:38px;padding:9px}}

/* Visible per-step lantern names, separate from instructions and place labels. */
#lantern-step{position:absolute;top:12%;left:50%;transform:translateX(-50%);max-width:88%;padding:7px 14px;border-radius:18px;background:#fff7e5eb;color:#60391e;font:16px/1.3 Georgia,serif;text-align:center;pointer-events:none;z-index:4;width:max-content}
#lantern-step[hidden],.cao-journey #lantern-step,.late-chapter #lantern-step,.hammock-mode #lantern-step{display:none!important}
@media(max-height:650px){#lantern-step{font-size:13px;padding:6px 12px}}

#progress-menu{width:min(88vw,390px);padding:24px;border:2px solid #c4a276;border-radius:25px;background:#fff3dc;color:#65432d;font:15px/1.5 Georgia,serif;max-height:85dvh}#progress-menu h2{font-size:24px;margin:0 0 12px}#progress-menu button{display:block;width:100%;min-height:46px;padding:11px 15px;margin-top:12px;border-radius:18px;background:#f5e2bc;border:1px solid #ae8953;color:#65432d;font:16px Georgia,serif}#progress-menu #progress-resume{background:#dfeddb;border-color:#73947b}#progress-menu .progress-note{font-size:12px;margin:18px 0 0}#progress-menu::backdrop{background:#33271b85}#progress-menu button:focus-visible{outline:3px solid #46776d;outline-offset:3px}#progress-error{font-size:13px}

/* One control-row contract for the main canvas and embedded craft scenes. */
#game nav{position:absolute;top:max(12px,env(safe-area-inset-top));left:3%;right:3%;display:grid;grid-template-columns:repeat(2,40px) minmax(0,1fr) repeat(4,40px);gap:3px;align-items:center;z-index:20;min-height:40px}
#game nav button,#game.journey-mode nav button,#game.hammock-mode nav button{box-sizing:border-box;width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;margin:0!important;padding:0!important;flex-shrink:0;border-radius:50%;font:400 27px/40px Georgia,serif;text-align:center}
#game nav #back{grid-column:1;grid-row:1}#game nav #previous{grid-column:2;grid-row:1}#game nav>span{grid-column:3;grid-row:1;min-width:0;padding:0;background:none}#game nav #journeys{grid-column:4;grid-row:1}#game nav #manual{grid-column:5;grid-row:1}#game nav #faces{grid-column:6;grid-row:1}#game nav #sound{grid-column:7;grid-row:1}
#game nav img{display:block;width:40px!important;height:40px!important;object-fit:contain}
#game nav button[hidden]{display:block!important;visibility:hidden;pointer-events:none}
#game nav #manual,#game nav #faces,#game nav #sound{display:block!important;visibility:visible}
#game nav button:disabled{opacity:.45;cursor:default}

/* Cozy direction: facial overlays and Expressions control retired. */
/* One control-row contract for the main canvas and embedded craft scenes. */
#game nav{position:absolute;top:max(12px,env(safe-area-inset-top));left:3%;right:3%;display:grid;grid-template-columns:repeat(2,40px) minmax(0,1fr) repeat(3,40px);gap:3px;align-items:center;z-index:20;min-height:40px}
#game nav button,#game.journey-mode nav button,#game.hammock-mode nav button{box-sizing:border-box;width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;margin:0!important;padding:0!important;flex-shrink:0;border-radius:50%;font:400 27px/40px Georgia,serif;text-align:center}
#game nav #back{grid-column:1;grid-row:1}#game nav #previous{grid-column:2;grid-row:1}#game nav>span{grid-column:3;grid-row:1;min-width:0;padding:0;background:none}#game nav #journeys{grid-column:4;grid-row:1}#game nav #manual{grid-column:5;grid-row:1}#game nav #sound{grid-column:6;grid-row:1}
#game nav img{display:block;width:40px!important;height:40px!important;object-fit:contain}
#game nav button[hidden]{display:block!important;visibility:hidden;pointer-events:none}
#game nav #manual,#game nav #sound{display:block!important;visibility:visible}
#game nav button:disabled{opacity:.45;cursor:default}

/* Account strip and embedded workspaces share the available play height. */
#game{width:min(100vw,calc(var(--cc-play-height,100dvh) * .5628))!important;height:min(177.68vw,var(--cc-play-height,100dvh))!important}

/* Use the native arrow throughout play; never replace/hide it with a hand or tool cursor. */
#game,#game canvas,#game button,dialog button{cursor:default!important}
