@font-face{font-family:Fraunces;src:url('./fraunces.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Fraunces;src:url('./fraunces-italic.ttf') format('truetype');font-weight:500;font-style:italic;font-display:swap}
@font-face{font-family:Nunito;src:url('./nunito.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Nunito;src:url('./nunito-bold.ttf') format('truetype');font-weight:600 900;font-display:swap}
@font-face{font-family:Caveat;src:url('./caveat.ttf') format('truetype');font-weight:600;font-display:swap}
:root{--cream:#fff2c7;--paper:#f2e6c8;--ink:#422b20;--red:#c8412f;--blue:#27568f;--gold:#ffd14b;--sans:Nunito,system-ui,sans-serif;--serif:Fraunces,Georgia,serif;--hand:Caveat,cursive;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#142620;color:var(--cream);font-family:var(--sans);-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer;color:inherit;border:0}a{color:inherit;text-decoration:none}a,button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}img{display:block;max-width:100%;height:auto}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px dashed var(--gold);outline-offset:7px}.icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icon-library{position:absolute;width:0;height:0;overflow:hidden}[hidden]{display:none!important}.enhanced-only{display:none}.is-interactive .enhanced-only{display:flex}.handwritten{font:600 25px/1.1 var(--hand)}.skip-link{position:fixed;top:8px;left:8px;padding:12px 18px;z-index:100;color:#392918;background:var(--gold);transform:translateY(-150%)}.skip-link:focus{transform:none}
.guide-dialog{position:relative;border:0;padding:0;background:transparent;color:var(--cream);width:min(1120px,calc(100% - 50px));max-width:none;max-height:94svh;overflow:auto;scrollbar-width:thin;scrollbar-color:#b9a064 transparent;margin:auto;box-shadow:none;container-type:inline-size}
.is-interactive .guide-dialog{position:fixed;inset:0;height:fit-content}
.guide-dialog::backdrop{background:#0b1e22b8;backdrop-filter:blur(9px)}.return-to-woods{position:relative;display:inline-flex!important;align-items:center;background:transparent;padding:10px 3px;font:600 25px/1.1 var(--hand);color:#ffebbc;margin:0 0 0 15px;z-index:10;transform:rotate(-2deg)}
.book-intro{text-align:center;padding:0 20px 22px}.book-intro>.handwritten{color:#e9c780;font-size:23px}.book-intro h2{font:500 43px/1.1 var(--serif);letter-spacing:-1.1px;margin:10px 0}.book-intro>p{font-size:12px;line-height:1.8;color:#ebead7;margin:0}.field-book{position:relative;padding:75px 70px 61px;--book-pad-x:70px;isolation:isolate;color:var(--ink);min-height:610px}.book-prop{position:absolute;inset:0;width:100%;height:100%;z-index:-2;filter:drop-shadow(8px 20px 12px #071b2266)}
.book-tabs{position:absolute;top:45px;right:82px;gap:3px;z-index:3;transform:rotate(1.5deg)}.book-tabs button{position:relative;font:600 21px/1.2 var(--hand);padding:12px 15px 11px;background:#f4c765;color:#654827;box-shadow:0 3px 3px #65411c22;transform:translateY(0) rotate(-3deg);border-radius:1px 6px 2px 1px;border-top:1px solid #ffecac;border-bottom:2px solid #bd8c43;transition:transform .2s}.book-tabs button:nth-child(2){background:#2d6598;color:#fff0c7;transform:rotate(2deg);border-color:#427bb0;border-bottom-color:#123f69}.book-tabs button:nth-child(3){background:#c25337;color:#fff1c9;transform:rotate(-2deg);border-color:#de7855;border-bottom-color:#8d352a}.book-tabs button:nth-child(4){background:#78996b;color:#fff1c9;transform:rotate(3deg);border-color:#91ad7c;border-bottom-color:#526d48}.book-tabs button[aria-selected=true]{transform:translateY(-9px) rotate(-1deg);filter:brightness(1.12)}
.book-panel{display:grid;grid-template-columns:1fr 1fr;gap:70px;min-height:455px;animation:page-turn .45s ease-out;transform-origin:left center}/* The painted fern fills the left page corner of book.webp (8.0-14.3% across,
   13.9-25.7% down). The prop spans the dialog, so 1cqi is 1% of the art.
   --page-inset is field-book + writing padding. The label and heading start
   right of the fern; body text follows them only while it keeps its full
   measure, and otherwise flows under the fern, so the page never grows. */
.book-writing{padding:37px 0 0 16px;position:relative;--page-inset:calc(var(--book-pad-x) + 16px);--fern-shift:max(0px,calc(14.3cqi + 12px - var(--page-inset)));--text-measure:335px;--body-shift:min(var(--fern-shift),max(0px,calc(100% - var(--text-measure))))}.ink-stamp{display:flex;align-items:center;gap:8px;font-size:10px;letter-spacing:2px;font-weight:800;color:#9b5134;transform:rotate(-4deg);margin-bottom:20px;margin-left:var(--fern-shift)}.ink-stamp .icon{width:21px;height:21px}.book-writing h3{font:500 39px/1.1 var(--serif);letter-spacing:-1.2px;margin:0 0 20px var(--fern-shift);color:#533b2b}.book-writing>p{font-size:13px;line-height:1.85;margin:0 0 13px var(--body-shift);color:#74634b;max-width:var(--text-measure)}.book-handnote{display:block;margin:26px 0 0 var(--body-shift);color:#3e6686;font-size:22px;transform:rotate(-4deg)}
.book-picture{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;padding-top:35px}.picture-mount{position:relative;padding:9px 9px 30px;background:#fffaf0;box-shadow:2px 7px 10px #6a4f3029;transform:rotate(4deg);width:100%}.picture-mount:before,.portrait-mat:before{content:'';position:absolute;top:-12px;left:35%;width:90px;height:29px;background:#dbb98d99;transform:rotate(-11deg);z-index:5;clip-path:polygon(0 0,100% 7%,97% 100%,3% 91%)}.picture-mount img{height:230px;width:100%;object-fit:cover;object-position:75% center}.book-picture>p{font-size:24px;color:#96654d;transform:rotate(-4deg);text-align:center;margin:27px 0 0}.ink-doodle{position:absolute;color:#997845;font-size:58px;right:0;bottom:4%;transform:rotate(-15deg)}.portrait-mat{position:relative;background:#deb99b;border:8px solid #fffae8;border-bottom-width:27px;transform:rotate(-5deg);width:230px;height:292px;box-shadow:2px 6px 10px #6a4f3033;overflow:visible}.portrait-mat img{width:100%;height:100%;object-fit:contain}.video-page>img{height:320px;width:100%;object-fit:contain;animation:island-float 7s ease-in-out infinite}.video-page>p{margin-top:12px}.book-pagination{position:absolute;left:8%;right:9%;bottom:49px;align-items:center;justify-content:space-between;font-family:var(--hand);color:#967050}.book-pagination button{background:transparent;color:#905d3e;font:600 24px/1.1 var(--hand);padding:9px 0}.book-pagination button:first-child{font-size:33px;padding-right:20px}.book-pagination>span{position:absolute;left:42%;font-size:15px;letter-spacing:3px}.book-afterword{text-align:center;font-size:22px;color:#dbd2ac;margin:14px 0 4px;transform:rotate(-2deg)}
.questions-page .faq-list{padding:38px max(0px,calc(9.2cqi + 12px - var(--book-pad-x))) 0 0}.faq-list details{border-bottom:1px dashed #ad916555}.faq-list summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;font:600 23px/1.2 var(--hand);padding:19px 0;cursor:pointer;color:#5f3d2b}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary>span{font-family:var(--sans);font-size:23px;color:#b27840;transition:transform .2s}.faq-list details[open] summary>span{transform:rotate(45deg)}.faq-list details>p{font-size:12px;line-height:1.75;color:#726348;margin:0 0 17px}.questions-page{min-height:470px}
.share-dialog{width:min(440px,calc(100% - 32px));max-height:90svh;overflow:auto;background:#f1e4bf;border:2px solid #ceb083;border-radius:5px 14px 4px 9px;box-shadow:7px 10px 0 #62412688,0 20px 80px #071b2266;color:var(--ink);padding:35px;text-align:center}.share-dialog::backdrop{background:#0b1e227d;backdrop-filter:blur(6px)}.icon-button{display:grid;place-items:center;width:36px;height:36px;background:transparent}.dialog-close{position:absolute;right:8px;top:8px}.share-dialog>p{font-size:13px;line-height:1.8;color:#736249}.share-dialog h2{font:500 35px/1.15 var(--serif);margin:12px 0 20px}.share-dialog label{display:block;text-align:left;font:600 24px/1.1 var(--hand);margin:20px 0 8px;color:#956031}.share-dialog input{width:100%;padding:13px;font-size:13px;border:1px solid #b4986d;background:#fff6dc;color:#58442e;box-shadow:inset 0 2px 4px #967c5922}.share-dialog .button{margin-top:17px;width:100%;font-size:13px}
@keyframes island-float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-10px) rotate(1deg)}}
@keyframes page-turn{from{opacity:.2;transform:perspective(1000px) rotateY(-9deg)}to{opacity:1;transform:none}}
@media(max-height:800px) and (min-width:901px){.guide-dialog{width:min(1000px,calc(100% - 60px))}.book-intro{padding-bottom:4px}.book-intro h2{font-size:34px;margin:6px 0}.book-intro>p{display:none}.book-intro>.handwritten{font-size:21px}.field-book{padding:65px 65px 56px;--book-pad-x:65px;min-height:510px}.book-panel{min-height:390px;gap:68px}.book-writing{padding-top:28px}.book-writing h3{font-size:32px;margin-bottom:15px}.book-writing>p{font-size:12px}.book-handnote{font-size:20px;margin-top:18px}.book-picture{padding-top:28px}.picture-mount img{height:195px}.book-picture>p{font-size:21px}.book-tabs{top:35px}.book-tabs button{font-size:19px;padding:10px 13px}.book-pagination{bottom:38px}.book-afterword{display:none}}
@media(max-width:1050px){.field-book{padding:68px 55px 60px;--book-pad-x:55px}.book-panel{gap:55px;min-height:420px}.book-writing{padding:27px 0 0 8px;--page-inset:calc(var(--book-pad-x) + 8px)}.book-writing h3{font-size:32px}.book-writing>p{font-size:12px}.book-handnote{font-size:20px;margin-top:18px}.book-tabs{right:67px;top:35px}.book-tabs button{font-size:18px;padding:10px 12px}.picture-mount img{height:205px}.book-picture>p{font-size:20px}.portrait-mat{width:200px;height:260px}.video-page>img{height:280px}.book-pagination{bottom:43px}.book-afterword{font-size:20px}}
@media(max-width:900px){.guide-dialog{width:calc(100% - 26px);max-height:94svh}.return-to-woods{font-size:23px;margin-left:8px}.book-intro{padding:7px 12px 27px}.book-intro h2{font-size:35px}.book-intro>p{font-size:11px}.book-intro>.handwritten{font-size:22px}.field-book{padding:68px 45px 65px;--book-pad-x:45px;min-height:610px}.book-panel{gap:32px;min-height:425px}.book-writing{padding:24px 0 0;--page-inset:var(--book-pad-x)}.book-writing h3{font-size:30px}.book-writing>p{font-size:11px;line-height:1.8}.ink-stamp{font-size:8px;letter-spacing:1px;margin-bottom:16px}.ink-stamp .icon{height:17px;width:17px}.book-handnote{font-size:19px}.book-tabs{right:49px;top:36px;gap:1px}.book-tabs button{font-size:17px;padding:10px 9px}.book-picture{padding-top:25px}.picture-mount{padding:6px 6px 23px}.picture-mount img{height:210px}.book-picture>p{font-size:20px}.portrait-mat{width:165px;height:245px}.video-page>img{height:260px}.book-pagination{bottom:41px}.book-afterword{display:none}.questions-page{grid-template-columns:1fr;gap:0}.questions-page .book-writing>p,.questions-page .book-handnote{display:none}.questions-page .book-writing h3{font-size:28px;margin-bottom:10px}.questions-page .book-writing h3 br{display:none}.questions-page .faq-list{padding-top:0}.faq-list summary{font-size:22px;padding:14px 0}.faq-list details>p{font-size:11px}}
@media(max-width:540px){.guide-dialog{width:calc(100% - 20px);max-height:95svh}.return-to-woods{font-size:22px;padding:10px 6px}.book-intro{padding:4px 12px 25px}.book-intro h2{font-size:31px;margin:9px 0}.book-intro>.handwritten{font-size:21px}.book-intro>p{font-size:10px;line-height:1.8}.field-book{padding:64px 25px 60px;min-height:725px;background:linear-gradient(90deg,#d6c39c33,transparent 10%,transparent 90%,#ba925d22),#f2e5c5;border:7px solid #883c31;border-radius:5px 10px 7px 4px;box-shadow:3px 5px 0 #543126,6px 8px 16px #06191c77;margin:0 5px 15px;isolation:isolate}.field-book:before{content:'';position:absolute;inset:7px;border:1px solid #b5986666;border-radius:2px;pointer-events:none;z-index:-1}.book-prop{display:none}.book-tabs{top:-14px;left:13px;right:13px;justify-content:center;gap:2px}.book-tabs button{font-size:17px;padding:11px 9px;border-top-width:2px}.book-panel{grid-template-columns:1fr;gap:10px;min-height:594px}.book-writing{padding:0 3px;--fern-shift:0px}.ink-stamp{font-size:9px;letter-spacing:1.5px;margin-bottom:15px}.book-writing h3{font-size:32px;line-height:1.1;margin-bottom:16px}.book-writing h3 br{display:none}.book-writing h3 br:after{content:' '}.book-writing>p{font-size:12px;line-height:1.8;margin-bottom:12px;max-width:none}.book-handnote{display:none}.book-picture{padding:12px 10px 0;max-width:100%;min-height:210px}.picture-mount{width:89%;padding:7px 7px 24px;transform:rotate(3deg)}.picture-mount img{height:155px}.book-picture>p{font-size:22px;margin:15px 0 0;line-height:1.1}.ink-doodle{font-size:35px;bottom:9px;right:6px}.portrait-mat{width:168px;height:210px;border-width:6px;border-bottom-width:21px}.video-page>img{height:220px}.book-pagination{left:28px;right:27px;bottom:14px}.book-pagination button{font-size:22px}.book-pagination>span{font-size:12px;letter-spacing:2px;left:35%}.book-pagination button:first-child{font-size:27px}.questions-page{min-height:500px;display:block}.questions-page .book-writing{margin-bottom:15px}.questions-page .book-writing h3{font-size:30px}.questions-page .faq-list{padding:0 3px}.faq-list summary{font-size:23px;padding:19px 0}.faq-list details>p{font-size:12px;line-height:1.8}.field-book:has(.questions-page:not([hidden])){min-height:625px}.share-dialog{padding:31px 24px}.share-dialog h2{font-size:32px}}
@media(max-width:370px){.field-book{padding:62px 20px 58px}.book-tabs{left:8px;right:8px}.book-tabs button{font-size:15px;padding:10px 8px}.book-writing h3{font-size:29px}.book-pagination>span{left:28%}}

/* The forest is the welcome. Its two optional objects stay inside the page. */
.woodland{isolation:isolate;position:relative;min-height:720px;height:100svh;overflow:hidden;background:#273828;--pointer-x:0;--pointer-y:0}
.forest-backdrop{position:absolute;inset:-3%;z-index:-5;transform:translate3d(calc(var(--pointer-x)*-12px),calc(var(--pointer-y)*-7px),0) scale(1.025);will-change:transform}
.forest-backdrop>img{width:100%;height:100%;object-fit:cover;object-position:58% 50%}
.forest-shade{position:absolute;inset:0;z-index:-4;background:linear-gradient(90deg,#101f2ad9,#15262296 25%,#17342b22 53%,transparent 75%),linear-gradient(0deg,#0c251ed6,transparent 24%)}
.forest-particles{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
.welcome-copy{position:relative;z-index:4;width:min(650px,49%);padding-top:clamp(60px,11vh,140px);margin-left:7%}
.welcome-salutation{font-size:26px;color:#f7d786;transform:rotate(-4deg);transform-origin:left;letter-spacing:.2px;margin:0 0 26px 8px}
.welcome-copy h1{position:relative;margin:0 0 15px;line-height:1;transform:rotate(-3deg);transform-origin:left}
.title-welcome{display:block;font:600 32px/.9 var(--hand);padding-left:9px;letter-spacing:1px;color:#fff4cf}
.brand-wordmark{display:block;width:max-content;font:900 clamp(90px,9.2vw,155px)/1.05 var(--sans);letter-spacing:-7px;color:#ffcf43;text-shadow:0 2px 0 #e8a330,1px 3px 0 #d28421,2px 5px 0 #9e421b,3px 7px 0 #833919,5px 10px 0 #422d21,9px 16px 22px #10221b77}
.world-tagline{font:500 clamp(27px,2.6vw,40px)/1.24 var(--serif);letter-spacing:-.4px;margin:28px 0 21px;color:#fff2cd;text-shadow:0 3px 12px #10291d66}
.hero-description{font-size:16px;line-height:1.85;max-width:345px;margin:0 0 30px;color:#f1eddc}
.button{display:inline-flex;align-items:center;justify-content:center;gap:27px;padding:16px 28px;font-size:16px;font-weight:900;line-height:1.4;min-height:55px;position:relative;transform:rotate(-1.5deg);transition:transform .2s,filter .2s;text-shadow:0 1px 1px #4d171d44}
.button-red{background:repeating-linear-gradient(2deg,transparent 0 9px,#7f22131a 9px 10px),linear-gradient(#da5b3f,#bc3829);border:2px solid #e67651;border-bottom:5px solid #762e25;color:#fff3d2;border-radius:4px 9px 5px 2px;box-shadow:3px 5px 0 #3d2828,5px 8px 15px #102a2840}
.button:before,.button:after{content:'';position:absolute;width:4px;height:4px;border-radius:50%;background:#e0a17a;box-shadow:0 1px 1px #672d20;top:50%;margin-top:-2px}.button:before{left:8px}.button:after{right:8px}
.button:hover{transform:rotate(.5deg) translateY(-2px);filter:brightness(1.13)}.button:active{transform:translateY(3px) rotate(-1deg)}.button .icon{width:19px;height:19px}.app-entry>span{font-size:23px;line-height:1}
.gnome-layer{position:absolute;z-index:6;right:27%;bottom:10%;width:clamp(230px,25vw,385px);transform:translate3d(calc(var(--pointer-x)*15px),calc(var(--pointer-y)*8px),0)}
.gnome-figure{width:100%;position:relative;filter:drop-shadow(0 15px 14px #0e221f66);transform-origin:50% 95%;animation:gnome-breathe 6s ease-in-out infinite}
.gnome-figure img{width:100%;height:auto;transition:transform .45s cubic-bezier(.2,1.5,.5,1)}.gnome-layer:hover img{transform:rotate(-4deg) translateY(-7px)}
/* Anchored to the painted star so its light follows Wurt's hand and greeting. */
.star-energy{position:absolute;left:88.75%;top:53.15%;width:34%;aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none}
.star-energy:before{content:'';position:absolute;inset:-20%;border-radius:50%;background:radial-gradient(circle,#fff1a980 0,#ffd34d70 16%,#f7b83335 37%,#ffbe2400 67%);mix-blend-mode:screen;animation:star-pulse 2.8s ease-in-out infinite}
.star-energy:after{content:'';position:absolute;inset:28%;background:#fff2b3;clip-path:polygon(50% 0,62% 34%,100% 37%,70% 60%,80% 100%,50% 77%,17% 98%,28% 60%,0 37%,38% 34%);mix-blend-mode:screen;opacity:.25;animation:star-heart 2.8s ease-in-out infinite}
.star-energy i{position:absolute;left:50%;top:50%;width:4%;height:4%;border-radius:25%;background:#fff5bd;box-shadow:0 0 5px 2px #ffc83b88;opacity:0;animation:star-spark 3.2s ease-out infinite}
.star-energy i:nth-child(1){left:18%;top:39%;animation-delay:-.4s}.star-energy i:nth-child(2){left:73%;top:23%;animation-delay:-1.7s}.star-energy i:nth-child(3){left:86%;top:60%;animation-delay:-2.6s}.star-energy i:nth-child(4){left:39%;top:80%;animation-delay:-1.1s}.star-energy i:nth-child(5){left:49%;top:10%;animation-delay:-2.1s}
@keyframes star-pulse{0%,100%{opacity:.38;transform:scale(.8)}50%{opacity:1;transform:scale(1.22)}}
@keyframes star-heart{0%,100%{opacity:.12;transform:scale(.85) rotate(-8deg)}50%{opacity:.68;transform:scale(1.08) rotate(-8deg)}}
@keyframes star-spark{0%{opacity:0;transform:translate(0,8px) scale(.2) rotate(0)}25%{opacity:1}80%,100%{opacity:0;transform:translate(-4px,-15px) scale(.6) rotate(110deg)}}
.scrapbook-object{position:absolute;z-index:9;right:2%;bottom:13%;width:clamp(260px,26vw,410px);text-align:center;filter:drop-shadow(5px 14px 13px #10241788);perspective:800px}
.scrapbook-miniature{display:block;position:relative;aspect-ratio:1.6;transform:rotate(-11deg) rotateX(13deg) rotateY(-8deg);transition:transform .4s cubic-bezier(.2,.8,.3,1)}
.scrapbook-object:hover .scrapbook-miniature,.scrapbook-object:focus-visible .scrapbook-miniature{transform:rotate(-4deg) rotateX(0deg) rotateY(0deg) translateY(-12px)}
.miniature-book{position:absolute;inset:0;width:100%;height:100%}.miniature-note{position:absolute;top:26%;left:13%;width:30%;font:600 clamp(19px,2vw,29px)/1 var(--hand);color:#75543a;transform:rotate(3deg)}.miniature-note b{font:900 .68em/1.8 var(--sans);color:#b74831}
.miniature-photo{position:absolute;right:12%;top:25%;width:32%;height:48%;background:#fff9e8;padding:4px 4px 13px;transform:rotate(7deg);box-shadow:1px 3px 5px #70573344}.miniature-photo img{width:100%;height:100%;object-fit:cover;object-position:80%}
.scrapbook-label{display:inline-block;font:600 clamp(24px,2vw,30px)/1.2 var(--hand);color:#fff1bd;margin-top:2px;text-shadow:0 2px 5px #122317;transform:rotate(-5deg);border-bottom:1px solid #eed69d80;padding-bottom:5px}.scrapbook-label>span{display:inline-block;margin-left:6px}
/* --garden-fit (welcome-world.js) is below 1 only when the planting would
   cover "Open Wurt.app"; the planting then shrinks toward its anchor. */
.foreground-garden{position:absolute;z-index:10;pointer-events:none;left:-11%;bottom:-15%;width:calc(clamp(260px,34vw,550px) * var(--garden-fit,1));transform:translate3d(calc(var(--pointer-x)*24px),calc(var(--pointer-y)*13px),0) rotate(-12deg);filter:brightness(.63)}
.world-share{position:absolute;bottom:28px;right:36px;z-index:12;gap:10px;align-items:center;padding:10px 0;background:transparent;color:#f6e8c3;font:600 22px/1.2 var(--hand);text-shadow:0 2px 6px #10271e}.world-share .icon{height:18px;width:18px}.world-share:hover span{text-decoration:underline;text-underline-offset:5px}
.forest-floor{position:absolute;bottom:0;left:0;right:0;height:90px;z-index:0;background:linear-gradient(transparent,#12302588);pointer-events:none}
.forest-butterfly{position:absolute;left:65%;top:25%;z-index:3;pointer-events:none;transform:translate3d(calc(var(--pointer-x)*-28px),calc(var(--pointer-y)*-16px),0);transition:transform 1s ease-out}
.butterfly{width:31px;height:25px;display:flex;transform:rotate(-17deg);animation:butterfly-drift 12s ease-in-out infinite}.butterfly i{width:16px;height:24px;background:linear-gradient(45deg,#c77926,#ffedab);border-radius:80% 40% 65% 35%;transform-origin:right center;animation:butterfly-wing .7s ease-in-out infinite alternate;box-shadow:0 0 12px #fce49c66}.butterfly i+i{border-radius:40% 80% 35% 65%;transform-origin:left center;animation-delay:-.25s}
@keyframes gnome-breathe{0%,100%{transform:rotate(-.5deg) translateY(0)}50%{transform:rotate(.5deg) translateY(-5px)}}
@keyframes butterfly-drift{0%,100%{translate:0 0;rotate:-10deg}35%{translate:38px -35px;rotate:20deg}70%{translate:-25px -14px;rotate:-20deg}}
@keyframes butterfly-wing{from{transform:rotateY(0)}to{transform:rotateY(68deg)}}
body.page-hidden *,body.page-hidden *:before,body.page-hidden *:after{animation-play-state:paused!important}
@media(min-width:1650px){.welcome-copy{margin-left:9%}.welcome-salutation{font-size:30px}.hero-description{font-size:18px;max-width:400px}.gnome-layer{right:28%;width:390px}.scrapbook-object{right:5%;bottom:15%;width:400px}}
@media(max-width:1050px){.welcome-copy{margin-left:5%;width:51%;padding-top:75px}.brand-wordmark{font-size:clamp(90px,9.5vw,106px);letter-spacing:-5px}.world-tagline{font-size:30px}.hero-description{font-size:14px;max-width:300px}.gnome-layer{right:24%;width:29%;bottom:10%}.scrapbook-object{width:29%;min-width:230px;right:0;bottom:14%}.miniature-note{font-size:21px}.scrapbook-label{font-size:23px}}
@media(max-height:800px) and (min-width:901px){.woodland{min-height:650px}.welcome-copy{padding-top:45px}.welcome-salutation{margin-bottom:18px;font-size:24px}.brand-wordmark{font-size:clamp(90px,9vw,126px)}.world-tagline{font-size:30px;margin:22px 0 17px}.hero-description{font-size:14px;line-height:1.75;margin-bottom:23px}.gnome-layer{width:260px;bottom:7%}.scrapbook-object{bottom:11%;width:285px}.miniature-note{font-size:23px}.scrapbook-label{font-size:24px}}
@media(max-width:900px){.woodland{min-height:900px;height:100svh}.welcome-copy{width:80%;max-width:500px;padding-top:50px;margin-left:7%}.brand-wordmark{font-size:clamp(85px,14vw,112px);letter-spacing:-5px}.world-tagline{font-size:30px}.hero-description{font-size:15px;max-width:325px}.gnome-layer{right:auto;left:12%;width:36%;max-width:260px;bottom:9%}.scrapbook-object{right:4%;width:43%;min-width:0;bottom:14%}.miniature-note{font-size:clamp(18px,3.5vw,25px)}.scrapbook-label{font-size:25px}.foreground-garden{width:42%;left:-16%;bottom:-3%}.forest-butterfly{left:77%;top:40%}.forest-shade{background:linear-gradient(180deg,#16292194,transparent 60%,#10291e88),linear-gradient(90deg,#17332966,transparent 80%)}.forest-backdrop>img{object-position:69% 50%}}
@media(max-width:540px){.woodland{height:100svh;min-height:800px}.welcome-copy{padding-top:36px;margin:0 26px;width:calc(100% - 52px);max-width:none}.welcome-salutation{font-size:22px;margin:0 0 24px 1px}.title-welcome{font-size:27px;padding-left:5px}.brand-wordmark{font-size:clamp(68px,19.2vw,100px);letter-spacing:-4.5px;text-shadow:0 2px 0 #e8a330,1px 3px 0 #d28421,2px 5px 0 #9e421b,3px 7px 0 #422d21,6px 11px 14px #10221b77}.world-tagline{font-size:28px;line-height:1.17;margin:27px 0 18px}.hero-description{font-size:14px;line-height:1.75;max-width:310px;margin-bottom:25px}.button{font-size:14px;padding:13px 24px;min-height:52px;gap:22px}.gnome-layer{left:6%;bottom:10%;width:44%;max-width:210px}.scrapbook-object{right:1.5%;bottom:15%;width:49%;max-width:250px}.miniature-note{font-size:clamp(16px,4.5vw,23px)}.miniature-photo{padding:3px 3px 9px}.scrapbook-label{font-size:21px;white-space:nowrap;margin-top:10px}.scrapbook-label>span{display:none}.world-share{font-size:21px;right:25px;bottom:22px;gap:8px}.foreground-garden{width:60%;left:-24%;bottom:-4%}.forest-backdrop{inset:-2% -6%}.forest-backdrop>img{object-position:70% 58%}.forest-butterfly{top:52%;left:80%}.forest-shade{background:linear-gradient(180deg,#17252baf,#18322a80 32%,transparent 62%,#0e251bb3)}.book-writing>p{font-size:13px}.book-intro>p{font-size:12px}.faq-list details>p{font-size:13px}}
@media(max-width:370px){.welcome-copy{margin:0 21px;width:calc(100% - 42px)}.welcome-salutation{font-size:20px}.brand-wordmark{font-size:19vw;letter-spacing:-4px}.world-tagline{font-size:26px}.hero-description{font-size:13px;max-width:270px}.scrapbook-label{font-size:18px}.miniature-note{font-size:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.forest-backdrop,.gnome-layer,.foreground-garden,.forest-butterfly{transform:none!important}}
.native-share{display:block;margin:20px auto 0;background:transparent;color:#875034;font:600 23px/1.2 var(--hand);text-decoration:underline;text-underline-offset:4px}
@media(min-width:541px){.book-pagination{bottom:0;color:#ffe5b5}.book-pagination button{color:#fff0bf}}

/* Keep dialogs closed even in browsers without native dialog styling. */
dialog:not([open]){display:none}
/* A living illustration: the brook, canopy lights and little residents. */
.forest-shade,.forest-backdrop{pointer-events:none}
#water-current{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen}
.welcome-copy{padding-top:clamp(103px,14vh,155px)}
.woodland-lights{position:absolute;top:0;left:0;right:0;height:126px;z-index:12;width:100%;padding:0;background:transparent;cursor:pointer}
.light-wire{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#263122;stroke-width:2;filter:drop-shadow(0 2px 1px #0008)}.light-wire path+path{stroke:#97814b;stroke-width:.65}
.light-bulb{position:absolute;width:12px;height:19px;border-radius:45% 45% 48% 48%;background:radial-gradient(ellipse at 34% 28%,#fff8dc 0 9%,var(--bulb-color) 45%,#996936 100%);box-shadow:0 0 7px var(--bulb-color),0 0 23px 4px color-mix(in srgb,var(--bulb-color) 50%,transparent);transform:rotate(var(--swing));animation:bulb-breathe 4.5s ease-in-out infinite;animation-delay:var(--phase)}
.light-bulb:before{content:'';position:absolute;left:3px;right:3px;top:-7px;height:8px;background:linear-gradient(90deg,#21382f,#797744,#273d32);border-radius:2px 2px 0 0}.light-bulb:after{content:'';position:absolute;top:2px;left:3px;width:3px;height:7px;background:#fff9d9bb;border-radius:50%;transform:rotate(-20deg)}
.woodland-lights.is-twinkling .light-bulb{animation:bulb-greet 1.25s ease-out both;animation-delay:var(--greet-delay)}
.stream-touch{position:absolute;z-index:3;background:transparent;cursor:pointer;border-radius:50%;color:#ffefc0;min-width:44px;min-height:44px;padding:0}.water-invite{position:absolute;left:12%;top:40%;opacity:0;white-space:nowrap;font-size:24px;text-shadow:0 2px 7px #152c25;transform:rotate(-7deg);transition:opacity .2s}.stream-touch:hover .water-invite,.stream-touch:focus-visible .water-invite{opacity:1}
.gnome-layer{right:auto;left:39%;bottom:8%;width:clamp(230px,21vw,330px)}
.character-button{display:block;position:relative;width:100%;background:transparent;padding:0;border:0;cursor:pointer;border-radius:50%}.gnome-figure{display:block}.gnome-layer:hover img{transform:none}.character-button:hover img{filter:drop-shadow(0 0 12px #ffea9940)}
.sq-friend{position:absolute;z-index:7;right:7%;bottom:34%;width:clamp(150px,16vw,260px);transform:translate3d(calc(var(--pointer-x)*9px),calc(var(--pointer-y)*5px),0)}
.friend-figure{display:block;filter:drop-shadow(0 12px 12px #0c201f66);animation:friend-breathe 7s ease-in-out infinite;transform-origin:center bottom}.friend-figure>img{width:100%;height:auto}
.speech-bubble{position:absolute;bottom:93%;left:-20%;z-index:8;background:#fff4d8;color:#57412c;padding:15px 21px 17px;min-width:205px;max-width:245px;border:2px solid #d7b985;border-radius:44% 45% 47% 39% / 40% 48% 40% 48%;box-shadow:3px 5px 0 #77573e3d,0 5px 15px #15281728;text-align:center;transform:rotate(-7deg);font:600 22px/1.15 var(--hand);pointer-events:none;animation:bubble-arrive .7s cubic-bezier(.2,1.5,.5,1) both;animation-delay:.35s}
.speech-bubble:before{content:'';position:absolute;bottom:-17px;right:40px;width:27px;height:32px;background:#fff4d8;border-right:2px solid #d7b985;border-bottom:2px solid #d7b985;transform:skewY(30deg) rotate(33deg);border-radius:0 0 75% 0;z-index:-1}
.speech-bubble strong{display:block;font:600 32px/1.1 var(--hand);color:#a64730;margin-bottom:4px}.bubble-copy{display:block;max-width:205px;margin:auto}
.sq-friend .speech-bubble{left:-64%;bottom:84%;transform:rotate(6deg);min-width:180px;max-width:215px;animation-delay:1s}.sq-friend .speech-bubble:before{right:23px;bottom:-13px;transform:skewY(25deg) rotate(5deg);height:24px}.sq-friend .speech-bubble strong{color:#466f71;font-size:30px}
.character.is-greeting .character-button{animation:character-hello 1s ease-in-out}.character.is-greeting .speech-bubble{animation:bubble-pop .6s ease-out}
.scrapbook-object{width:clamp(245px,23vw,345px);right:3%;bottom:9%}.miniature-note{font-size:clamp(18px,1.9vw,27px)}.scrapbook-label{font-size:26px}
.bunny-trail{position:absolute;left:0;right:0;height:130px;bottom:3.5%;z-index:8;pointer-events:none}.bunny-roam{position:absolute;width:200px;left:6%;bottom:0;animation:rabbit-wander 38s linear infinite;transform-origin:center bottom}.bunny{position:relative;display:block;width:100%;background:transparent;padding:0;pointer-events:auto;cursor:pointer;border-radius:50%}.bunny>img{width:100%;height:auto;animation:rabbit-hop 1.05s cubic-bezier(.45,0,.55,1) infinite;transform-origin:50% 82%;filter:drop-shadow(0 7px 3px #132e2666)}.bunny-shadow{position:absolute;left:28%;right:27%;bottom:8%;height:10px;border-radius:50%;background:#13251f66;filter:blur(4px);animation:rabbit-shadow 1.05s ease-in-out infinite}.bunny-heart{position:absolute;top:20%;left:48%;font-size:27px;color:#ffafa0;opacity:0;text-shadow:0 2px 8px #fda77a99;pointer-events:none}.bunny-roam.is-petted{animation-play-state:paused}.is-petted .bunny>img{animation:rabbit-nuzzle .9s ease-in-out 2}.is-petted .bunny-heart{animation:rabbit-heart 1.8s ease-out}
@keyframes bulb-breathe{0%,100%{filter:brightness(.87)}50%{filter:brightness(1.25)}}
@keyframes bulb-greet{0%,100%{filter:brightness(1)}30%{filter:brightness(2.5);scale:1.12}}
@keyframes bubble-arrive{from{opacity:0;scale:.5;translate:0 16px}to{opacity:1;scale:1;translate:0 0}}
@keyframes bubble-pop{0%,100%{scale:1}45%{scale:1.07}}
@keyframes friend-breathe{0%,100%{transform:rotate(.7deg) translateY(0)}50%{transform:rotate(-.7deg) translateY(-4px)}}
@keyframes character-hello{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-5deg) translateY(-5px)}40%,80%{transform:rotate(3deg)}}
@keyframes rabbit-wander{0%,7%{transform:translateX(0) scaleX(1)}44%,49%{transform:translateX(47vw) scaleX(1)}50%{transform:translateX(47vw) scaleX(-1)}93%,99%{transform:translateX(0) scaleX(-1)}100%{transform:translateX(0) scaleX(1)}}
@keyframes rabbit-hop{0%,55%,100%{transform:translateY(0) rotate(0)}22%{transform:translateY(-9px) rotate(-3deg)}40%{transform:translateY(-3px) rotate(2deg)}}
@keyframes rabbit-shadow{0%,55%,100%{scale:1;opacity:.6}22%{scale:.7;opacity:.35}}
@keyframes rabbit-nuzzle{0%,100%{transform:rotate(0)}40%{transform:rotate(-8deg) scale(1.03)}70%{transform:rotate(3deg)}}
@keyframes rabbit-heart{0%{opacity:0;translate:0 6px;scale:.5}25%{opacity:1;scale:1}100%{opacity:0;translate:3px -55px;scale:.75}}
@media(min-width:1650px){.gnome-layer{left:40%;width:340px}.sq-friend{right:11%;width:265px;bottom:33%}.scrapbook-object{right:4%;width:380px}.bunny-roam{width:220px}}
@media(max-height:800px) and (min-width:901px){.welcome-copy{padding-top:94px}.gnome-layer{left:42%;width:235px;bottom:5%}.sq-friend{width:170px;bottom:32%;right:8%}.speech-bubble{min-width:185px;left:-18%;font-size:19px;padding:12px 17px}.speech-bubble strong{font-size:27px}.sq-friend .speech-bubble{left:-70%;min-width:170px}.scrapbook-object{width:250px;right:3%;bottom:8%}.scrapbook-label{font-size:23px}.bunny-roam{width:165px}.world-tagline{font-size:29px}.hero-description{font-size:14px;max-width:300px}}
@media(max-width:1050px) and (min-width:901px){.gnome-layer{left:39%;width:26%;bottom:5%}.sq-friend{right:5%;width:19%;bottom:34%}.sq-friend .speech-bubble{left:-76%;max-width:175px;min-width:170px}.scrapbook-object{width:27%;right:1%;bottom:9%}.speech-bubble{font-size:19px;min-width:180px;max-width:190px;left:-12%}.speech-bubble strong{font-size:27px}.bunny-trail{bottom:3%}.bunny-roam{width:165px}}
@media(max-width:900px){.woodland{min-height:1010px}.welcome-copy{padding-top:107px}.gnome-layer{left:9%;bottom:19%;width:32%;max-width:230px}.sq-friend{right:10%;bottom:24%;width:29%;max-width:205px}.speech-bubble{left:0;bottom:94%;min-width:190px;max-width:220px;font-size:21px}.sq-friend .speech-bubble{left:-20%;bottom:92%;min-width:175px;max-width:195px;font-size:20px}.scrapbook-object{width:40%;right:5%;bottom:7%;max-width:300px}.scrapbook-label{font-size:25px}.bunny-trail{bottom:5%}.bunny-roam{width:175px;left:4%}.woodland-lights{height:100px}.light-bulb{width:10px;height:16px}.forest-butterfly{top:45%}.foreground-garden{bottom:-1%;left:-17%;width:45%}.world-share{bottom:13px;right:28px}.water-invite{font-size:21px}}
@media(max-width:540px){.woodland{min-height:970px}.welcome-copy{padding-top:99px}.title-welcome{font-size:25px}.brand-wordmark{font-size:clamp(68px,19.2vw,100px)}.world-tagline{font-size:27px;margin:22px 0 15px}.hero-description{font-size:14px;line-height:1.7;margin-bottom:21px}.gnome-layer{left:5%;bottom:20%;width:39%;max-width:180px}.sq-friend{right:7%;bottom:25%;width:34%;max-width:170px}.speech-bubble{left:4%;bottom:95%;min-width:153px;max-width:166px;padding:12px 12px 14px;font-size:19px}.speech-bubble strong{font-size:27px}.speech-bubble:before{right:38px;width:21px;height:25px;bottom:-14px}.sq-friend .speech-bubble{left:-13%;bottom:94%;min-width:142px;max-width:158px;padding:11px 9px 13px;font-size:18px}.sq-friend .speech-bubble strong{font-size:25px}.scrapbook-object{right:3%;bottom:8%;width:48%;max-width:245px}.miniature-note{font-size:clamp(16px,4.5vw,23px)}.scrapbook-label{font-size:21px}.bunny-trail{bottom:6%;height:105px}.bunny-roam{width:155px;left:-4%}.bunny-heart{font-size:23px}.woodland-lights{height:84px}.light-bulb{width:8px;height:13px}.light-bulb:before{left:2px;right:2px;height:6px;top:-5px}.light-bulb:after{width:2px;height:5px;left:2px}.foreground-garden{width:61%;left:-25%;bottom:0}.world-share{right:24px;bottom:14px;font-size:21px}.forest-butterfly{top:48%;left:79%}}
@media(max-width:370px){.woodland{min-height:990px}.speech-bubble{min-width:145px;max-width:150px;font-size:17px;left:0}.speech-bubble strong{font-size:25px}.sq-friend .speech-bubble{left:-20%;min-width:137px;font-size:17px}.sq-friend .speech-bubble strong{font-size:23px}.scrapbook-label{font-size:18px}.world-tagline{font-size:25px}.hero-description{font-size:13px}}
@media(prefers-reduced-motion:reduce){.sq-friend{transform:none!important}.bunny-roam{transform:translateX(10vw)}.speech-bubble{opacity:1}}
/* The two hosts stand together, Wurt on the left and Sqwurt on the right. */
.welcome-pair{position:absolute;z-index:7;right:3.5%;bottom:12%;width:39%;max-width:590px;transform:translate3d(calc(var(--pointer-x)*13px),calc(var(--pointer-y)*7px),0);aspect-ratio:1.42}
.welcome-pair .gnome-layer{position:absolute;left:0;right:auto;bottom:0;width:51%;max-width:none;transform:none}
.welcome-pair .sq-friend{position:absolute;left:auto;right:0;bottom:0;width:49%;max-width:none;transform:none}
.welcome-pair .speech-bubble{left:-2%;bottom:97%;min-width:190px;max-width:235px}
.welcome-pair .sq-friend .speech-bubble{left:7%;bottom:97%;min-width:180px;max-width:215px;transform:rotate(6deg)}
.scrapbook-object{left:8%;right:auto;bottom:5.5%;width:26%;max-width:330px;z-index:11}
/* The rabbit emerges from and returns behind this foreground planting. */
.foreground-garden{z-index:10}.world-share{right:30px;bottom:24px}.bunny-trail{z-index:8}
@media(min-width:1650px){.welcome-pair{right:7%;width:40%;max-width:650px}.scrapbook-object{left:9%;width:330px}}
@media(max-height:800px) and (min-width:901px){.welcome-pair{width:39%;right:3%;bottom:11%;max-width:485px}.welcome-pair .speech-bubble{min-width:165px;max-width:190px;font-size:18px;left:0}.welcome-pair .sq-friend .speech-bubble{min-width:155px;max-width:180px;left:6%}.welcome-pair .speech-bubble strong{font-size:25px}.scrapbook-object{left:32%;bottom:3%;width:210px}.scrapbook-label{font-size:22px}}
@media(max-width:1050px) and (min-width:901px){.welcome-pair{width:43%;right:2%;bottom:10%}.welcome-pair .speech-bubble{min-width:150px;max-width:165px;font-size:18px;padding:11px;left:-7%}.welcome-pair .sq-friend .speech-bubble{min-width:147px;max-width:160px;left:0}.welcome-pair .speech-bubble strong{font-size:25px}.scrapbook-object{left:7%;width:28%;bottom:6%}}
@media(max-width:900px){.welcome-pair{width:76%;right:12%;bottom:23%;max-width:470px}.welcome-pair .speech-bubble{left:-3%;bottom:96%;min-width:180px;max-width:210px;font-size:20px}.welcome-pair .sq-friend .speech-bubble{left:4%;bottom:96%;min-width:160px;max-width:190px;font-size:19px}.scrapbook-object{left:auto;right:8%;bottom:7%;width:40%;max-width:300px}.world-share{bottom:14px}}
@media(max-width:540px){.welcome-pair{width:88%;right:6%;bottom:22%;max-width:none}.welcome-pair .speech-bubble{left:-1%;min-width:149px;max-width:163px;padding:11px 10px 14px;font-size:18px}.welcome-pair .sq-friend .speech-bubble{left:4%;min-width:140px;max-width:153px;padding:11px 9px 13px;font-size:18px}.welcome-pair .speech-bubble strong{font-size:26px}.welcome-pair .sq-friend .speech-bubble strong{font-size:24px}.scrapbook-object{left:auto;right:5%;bottom:7%;width:49%;max-width:245px}.world-share{right:24px;bottom:15px}.bunny-trail{bottom:7.5%}}
@media(max-width:370px){.welcome-pair{width:91%;right:4.5%;bottom:22%}.welcome-pair .speech-bubble{left:-1%;min-width:135px;max-width:141px;font-size:16px}.welcome-pair .sq-friend .speech-bubble{min-width:127px;max-width:137px;font-size:16px;left:0}.welcome-pair .speech-bubble strong{font-size:24px}.welcome-pair .sq-friend .speech-bubble strong{font-size:22px}}
@media(prefers-reduced-motion:reduce){.welcome-pair{transform:none!important}}
.welcome-pair .speech-bubble,.welcome-pair .sq-friend .speech-bubble{bottom:calc(100% + 42px);animation-delay:0s}
@media(max-width:540px){.woodland{min-height:1040px}.welcome-pair{bottom:20%}.welcome-pair .speech-bubble,.welcome-pair .sq-friend .speech-bubble{bottom:calc(100% + 34px)}}
.welcome-pair .sq-friend{width:47%}
/* Composition: the welcoming pair at center, scrapbook to the right. */
/* --pair-fit (welcome-world.js) shrinks the hosts about their feet only when a
   greeting would cover the welcome text; the translateY pair keeps the feet put. */
.welcome-pair{left:50%;right:auto;bottom:8%;width:32%;max-width:600px;transform:translateX(-50%) translate3d(calc(var(--pointer-x)*13px),calc(var(--pointer-y)*7px),0) translateY(50%) scale(var(--pair-fit,1)) translateY(-50%)}
.scrapbook-object{left:auto;right:3%;bottom:9%;width:24%;max-width:350px}
@media(min-width:1650px){.welcome-pair{width:34%;max-width:620px}.scrapbook-object{right:4%;max-width:370px}}
@media(max-height:800px) and (min-width:901px){.welcome-pair{left:51%;width:32%;bottom:6%;max-width:430px}.scrapbook-object{left:auto;right:2%;bottom:10%;width:24%;max-width:290px}}
@media(max-width:1050px) and (min-width:901px){.welcome-pair{left:49%;width:36%;bottom:7%}.scrapbook-object{left:auto;right:1%;width:27%;bottom:9%}}
@media(max-width:900px){.welcome-pair{left:50%;right:auto;width:76%;max-width:470px;bottom:23%}.scrapbook-object{left:auto;right:8%;bottom:7%;width:40%;max-width:300px}}
@media(max-width:540px){.welcome-pair{left:50%;width:88%;max-width:none;bottom:20%}.scrapbook-object{right:5%;bottom:7%;width:49%;max-width:245px}}
@media(max-width:370px){.welcome-pair{width:91%}}
@media(prefers-reduced-motion:reduce){.welcome-pair{transform:translateX(-50%) translateY(50%) scale(var(--pair-fit,1)) translateY(-50%)!important}}

@media(min-width:901px) and (max-width:1050px){.hero-description{max-width:calc(26vw - 35px)}}
/* A narrow screen follows the clearing downward. Reserve real space for the
   greetings instead of letting taller characters overlap the introduction. */
@media(max-width:900px){
  .woodland{height:auto;min-height:100svh}
  .welcome-pair{position:relative;left:auto;right:auto;bottom:auto;margin:160px auto 0;transform:translate3d(calc(var(--pointer-x)*13px),calc(var(--pointer-y)*7px),0) translateY(50%) scale(var(--pair-fit,1)) translateY(-50%)}
  .scrapbook-object{display:block;position:relative;left:auto;right:auto;bottom:auto;margin:28px 8% 80px auto}
}
@media(max-width:540px){
  .welcome-pair{margin-top:140px}
  .scrapbook-object{margin:20px 5% 80px auto}
}
@media(max-width:900px) and (prefers-reduced-motion:reduce){.welcome-pair{transform:translateY(50%) scale(var(--pair-fit,1)) translateY(-50%)!important}}

/* A one-time camera journey, only after the visitor opens Wurt.app. */
.entry-status{position:fixed;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;margin:0}
body.is-entering{overflow:hidden;background:#fff1ce}
.is-entering .woodland{transform-origin:var(--entry-x) var(--entry-y);animation:woodland-flight var(--entry-duration) cubic-bezier(.65,0,.75,.55) both;will-change:transform,opacity}
.is-entering .forest-backdrop{animation:forest-bend var(--entry-duration) ease-in both}
.is-entering .welcome-copy{transform-origin:90% 65%;animation:copy-flyby var(--entry-duration) ease-in both}
.is-entering .welcome-pair{animation:friends-flyby var(--entry-duration) ease-in both;will-change:translate,scale}
.is-entering .character-button{animation:goodbye-wave .38s ease-in-out infinite;transform-origin:50% 90%}
.is-entering .sq-friend .character-button{animation-delay:-.18s;animation-direction:reverse}
.is-entering .gnome-figure,.is-entering .friend-figure{animation:goodbye-bounce .42s ease-in-out infinite alternate}
.is-entering .star-energy:before{animation:star-pulse .5s ease-in-out infinite}
.is-entering .speech-bubble{animation:goodbye-bubble var(--entry-duration) ease-in both}
.is-entering .scrapbook-object{transform-origin:0 50%;animation:book-flyby var(--entry-duration) ease-in both}
.is-entering .foreground-garden{transform-origin:100% 0;animation:garden-flyby var(--entry-duration) ease-in both}
.is-entering .woodland-lights{transform-origin:55% 100%;animation:lights-flyby var(--entry-duration) ease-in both}
.is-entering .world-share,.is-entering .stream-touch{opacity:0;pointer-events:none}
.entry-flight{position:fixed;inset:0;z-index:90;pointer-events:none;overflow:hidden;isolation:isolate}
.entry-flight:before{content:'';position:absolute;inset:-50%;background:radial-gradient(ellipse at 52.5% 46.5%,#fff9d9 0,#ffefb6cc 8%,#ffda7633 20%,#fff1c700 40%);opacity:0;animation:entry-light var(--entry-duration) ease-in both}
.entry-flight:after{content:'';position:absolute;inset:0;background:#fff3d5;opacity:0;animation:entry-arrive var(--entry-duration) ease-in both}
.entry-halo{position:absolute;left:55%;top:43%;width:34vmin;height:34vmin;margin:-17vmin;border:2px solid #ffe49788;border-radius:50%;box-shadow:0 0 35px 15px #ffe49740,inset 0 0 45px 10px #fff4c333;opacity:0;animation:entry-halo var(--entry-duration) ease-in both}
.entry-rays{position:absolute;left:55%;top:43%}
.entry-rays i{position:absolute;left:0;top:0;width:20vmax;height:2px;background:linear-gradient(90deg,#ffefb300,#fff4cdbb,#ffed9b00);transform-origin:left center;opacity:0;animation:entry-ray var(--entry-duration) cubic-bezier(.7,0,.8,.6) both;animation-delay:var(--ray-delay)}
@keyframes woodland-flight{0%{transform:perspective(1200px) scale(1) rotate(0);opacity:1}18%{transform:perspective(1200px) scale(.97) rotate(-.3deg)}34%{transform:perspective(1200px) scale(1.03) rotate(.2deg)}66%{transform:perspective(1200px) scale(2.4,2.1) rotate(1deg)}88%{opacity:1}100%{transform:perspective(1200px) scale(13,10) rotate(3deg);opacity:0}}
@keyframes forest-bend{0%,28%{transform:scale(1.025)}62%{transform:perspective(800px) rotateY(-3deg) skewX(-2deg) scale(1.15,1.04)}100%{transform:perspective(800px) rotateY(7deg) skewX(5deg) scale(1.65,1.2)}}
@keyframes copy-flyby{0%{opacity:1;translate:0 0;rotate:0deg}24%{opacity:.3}48%,100%{opacity:0;translate:-28vw -9vh;rotate:-12deg;scale:1.4 .85}}
@keyframes friends-flyby{0%{translate:0 0;scale:1}20%,35%{translate:0 var(--entry-pair-shift);scale:1.025}70%{opacity:1;translate:0 calc(var(--entry-pair-shift) + 8vh);scale:1.2 .96}100%{opacity:0;translate:0 65vh;scale:1.6 .9}}
@keyframes goodbye-wave{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(4deg)}}
@keyframes goodbye-bounce{from{translate:0 0}to{translate:0 -9px}}
@keyframes goodbye-bubble{0%,30%{opacity:1}52%,100%{opacity:0;translate:0 -25px}}
@keyframes book-flyby{0%,25%{translate:0 0;rotate:0deg;scale:1}64%{opacity:1;translate:15vw 6vh;rotate:17deg;scale:1.3 .85}100%{opacity:0;translate:65vw 25vh;rotate:34deg;scale:2 .65}}
@keyframes garden-flyby{0%,22%{translate:0 0;rotate:-12deg}100%{translate:-55vw 35vh;rotate:-35deg;scale:2.2 .7}}
@keyframes lights-flyby{0%,28%{translate:0 0;scale:1}100%{translate:0 -65vh;scale:2 .65}}
@keyframes entry-light{0%,27%{opacity:0;transform:scale(.3)}70%{opacity:.75;transform:scale(1.25)}100%{opacity:1;transform:scale(3)}}
@keyframes entry-halo{0%,26%{opacity:0;transform:perspective(600px) rotateY(25deg) scale(.2)}44%{opacity:.8}100%{opacity:0;transform:perspective(600px) rotateY(-15deg) scale(8)}}
@keyframes entry-ray{0%,36%{opacity:0;transform:rotate(var(--ray-angle)) translateX(5vmin) scaleX(.03)}58%{opacity:.75}96%,100%{opacity:0;transform:rotate(var(--ray-angle)) translateX(85vmin) scaleX(3)}}
@keyframes entry-arrive{0%,83%{opacity:0}100%{opacity:1}}
/* Sound switch: the visitor can always stop the woodland sound (WCAG 1.4.2). */
.sound-toggle{position:absolute;top:16px;right:18px;z-index:13;display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:#10271ecc;color:#f6e8c3;font:600 20px/1.1 var(--hand);text-shadow:0 1px 3px #10271e;box-shadow:0 2px 8px #06191c55}.sound-toggle .icon{width:18px;height:18px}.sound-toggle .sound-off-mark{display:none}.sound-toggle[data-muted=true] .sound-waves{display:none}.sound-toggle[data-muted=true] .sound-off-mark{display:inline}.sound-toggle:hover span{text-decoration:underline;text-underline-offset:4px}
@media(max-width:540px){.sound-toggle{top:12px;right:12px;padding:7px 12px;font-size:18px}}
/* The scrapbook note scales with the book, not the viewport, so it keeps the
   layout measured at 1440x900 (font = 7.8% of book width, 27px / 346px) at every
   size. Browsers without container units keep the pixel sizes above. */
.scrapbook-miniature{container-type:inline-size}.miniature-note{font-size:7.8cqi}
