/* daumchat.daum.pw. The frame is in /shared/base.css. What stands up stands on thin layers, as in the game (docs/design.md, Slab): per layer a screen pixel of its shade over one of cream, a pixel narrower each side; --hp is a screen pixel, set by the page. */
.hero{min-height:660px;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding:40px 0 92px}h1{font-size:clamp(48px,5vw,72px);line-height:1.27;letter-spacing:-3px;font-weight:650;margin:0 0 27px}.warm{color:#b27532}.lead{color:var(--dim);font-size:17px;line-height:1.95;margin:0 0 26px}.actions{display:flex;flex-wrap:wrap;gap:22px;align-items:center}
/* The version and loader picker: flat cream cards with a hairline shade-1 edge, the chosen one in the face with no edge, unavailable ones on flat shade-3. */
.pick{display:grid;grid-template-columns:auto 1fr;gap:10px 18px;align-items:center;margin:0 0 26px}.pick-label{font-size:13px;color:var(--dim);white-space:nowrap}.pills{display:flex;flex-wrap:wrap;gap:8px}.pill{padding:6px 13px;border:var(--hp) solid var(--shade1);border-radius:9px;background:var(--cream);font:inherit;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.pill:hover:not(:disabled):not(.on){background:var(--shade3);border-color:#f59e0b}.pill.on{border-color:transparent;background:var(--face);color:var(--ink)}.pill:disabled{border-color:transparent;background:var(--shade3);color:var(--dim);opacity:.55;cursor:default}.pill:focus-visible{outline:3px solid #f59e0b;outline-offset:3px}
/* The download is the send key: the face on three layers, sinking one on hover and all the way when pressed. */
.download{--settle:cubic-bezier(.2,.7,.3,1);display:inline-flex;align-items:center;gap:36px;padding:17px 25px;border-radius:12px;background:var(--face);box-shadow:0 calc(var(--hp)*3) 0 calc(var(--hp)*-2) #fbd7aa,0 calc(var(--hp)*3) 0 calc(var(--hp)*-1) var(--cream),0 calc(var(--hp)*6) 0 calc(var(--hp)*-3) #fbdab1,0 calc(var(--hp)*6) 0 calc(var(--hp)*-2) var(--cream),0 calc(var(--hp)*9) 0 calc(var(--hp)*-4) #fbddb7,0 calc(var(--hp)*9) 0 calc(var(--hp)*-3) var(--cream);font-size:16px;font-weight:600;transition:transform .2s var(--settle),box-shadow .2s var(--settle)}.download:hover{transform:translateY(calc(var(--hp)*2));box-shadow:0 calc(var(--hp)*3) 0 calc(var(--hp)*-2) #fbd7aa,0 calc(var(--hp)*3) 0 calc(var(--hp)*-1) var(--cream),0 calc(var(--hp)*6) 0 calc(var(--hp)*-3) #fbdab1,0 calc(var(--hp)*6) 0 calc(var(--hp)*-2) var(--cream);color:var(--ink)}.download:active{transform:translateY(calc(var(--hp)*6));box-shadow:none;transition-duration:.06s}.download span{font-size:22px}
.version{font-size:14px;white-space:nowrap}.version span{color:var(--dim)}.note{font-size:12px;color:var(--dim);margin-top:25px}
/* The demo's frame: a cream card with a hairline edge on eight layers, as the chat's field stands. */
.preview{margin:8px 0 0;padding:8px 8px 0;border:var(--hp) solid var(--shade1);border-radius:18px;background:var(--cream);box-shadow:0 var(--hp) 0 0 var(--cream),0 calc(var(--hp)*4) 0 calc(var(--hp)*-2) #fbd7aa,0 calc(var(--hp)*4) 0 calc(var(--hp)*-1) var(--cream),0 calc(var(--hp)*7) 0 calc(var(--hp)*-3) #fbdab1,0 calc(var(--hp)*7) 0 calc(var(--hp)*-2) var(--cream),0 calc(var(--hp)*10) 0 calc(var(--hp)*-4) #fbddb7,0 calc(var(--hp)*10) 0 calc(var(--hp)*-3) var(--cream),0 calc(var(--hp)*13) 0 calc(var(--hp)*-5) #fbe0be,0 calc(var(--hp)*13) 0 calc(var(--hp)*-4) var(--cream),0 calc(var(--hp)*16) 0 calc(var(--hp)*-6) #fbe3c5,0 calc(var(--hp)*16) 0 calc(var(--hp)*-5) var(--cream),0 calc(var(--hp)*19) 0 calc(var(--hp)*-7) #fbe6cb,0 calc(var(--hp)*19) 0 calc(var(--hp)*-6) var(--cream),0 calc(var(--hp)*22) 0 calc(var(--hp)*-8) #fbe9d2,0 calc(var(--hp)*22) 0 calc(var(--hp)*-7) var(--cream),0 calc(var(--hp)*25) 0 calc(var(--hp)*-9) #fbecd9,0 calc(var(--hp)*25) 0 calc(var(--hp)*-8) var(--cream)}
figcaption{padding:13px 6px 14px;font-size:12px;color:var(--dim);display:flex;align-items:center;gap:9px}figcaption button{margin-left:auto;padding:0;border:0;background:none;font:inherit;color:var(--ink);cursor:pointer;text-decoration:underline;text-underline-offset:3px;white-space:nowrap;transition:color .15s}figcaption button:hover{color:#94611b}figcaption button:focus-visible{outline:3px solid #f59e0b;outline-offset:4px}.dot{flex-shrink:0;width:6px;height:6px;border-radius:50%;background:#f59e0b}
.details{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;border-top:1px solid var(--shade1);padding:46px 0 64px}.number{font-size:12px;letter-spacing:1px;color:var(--dim)}h2{font-size:22px;letter-spacing:-.5px;font-weight:550;margin:17px 0 13px}.details p{font-size:14px;line-height:1.9;color:var(--dim);max-width:310px;margin:0}.install,.faq{border-top:1px solid var(--shade1);display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:66px 0 70px}.install .eyebrow,.faq .eyebrow{margin-bottom:16px}.install h2,.faq h2{font-size:36px;margin:0 0 20px}.spec{display:grid;grid-template-columns:auto 1fr;margin:34px 0 0;font-size:14px;max-width:440px}.spec dt,.spec dd{margin:0;padding:12px 0;border-top:1px solid var(--shade2)}.spec dt{color:var(--dim);padding-right:32px}.faq dl{margin:0}.faq dt{font-size:16px}.faq dd{margin:7px 0 26px;color:var(--dim);font-size:14px;line-height:1.9}.faq dd:last-child{margin-bottom:0}.faq dd a{color:var(--ink);text-decoration:underline;text-underline-offset:4px}.install p{color:var(--dim);font-size:14px;line-height:1.9}.install ol{list-style:none;margin:0;padding:0}.install li{display:flex;gap:21px;margin-bottom:26px;font-size:16px}.install li>span{font-size:13px;background:var(--shade3);width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex-shrink:0}.install li p{margin:7px 0 0}.install li a{text-decoration:underline;text-underline-offset:4px;white-space:nowrap}
@media(min-width:1500px){.hero{min-height:710px}}@media(max-width:1050px){.hero{gap:32px}h1{font-size:54px}.actions{align-items:flex-start;flex-direction:column;gap:20px}.lead{font-size:16px}.details{gap:25px}h2{font-size:19px}}
@media(max-width:700px){.hero{grid-template-columns:1fr;gap:45px;padding:34px 0 65px;min-height:0}h1{font-size:clamp(44px,10vw,64px);letter-spacing:-2px}.lead{font-size:15px;margin-bottom:22px}.lead br{display:none}.pick{gap:8px 14px;margin-bottom:22px}.pick-label{font-size:12px}.pills{gap:6px}.pill{padding:5px 11px;font-size:12px}.actions{flex-direction:row;align-items:center;gap:22px}.download{font-size:14px;padding:14px 19px;gap:20px}.version{font-size:12px}.version span{display:block;margin-top:5px}.preview{margin:0;padding:6px 6px 0;border-radius:16px}figcaption{padding:11px 4px 12px}.details{grid-template-columns:1fr;padding:32px 0 36px;gap:30px}.details article{display:grid;grid-template-columns:82px 1fr;column-gap:10px}.number{grid-row:1/3;padding-top:4px;font-size:11px}.details h2{margin:0 0 10px}.details p{max-width:none;font-size:13px}.install,.faq{grid-template-columns:1fr;gap:25px;padding:38px 0 20px}.faq{padding-bottom:40px}.install h2,.faq h2{font-size:30px}.spec{margin-top:24px;font-size:13px;max-width:none}.faq dt{font-size:15px}.faq dd{font-size:13px}.install li p{font-size:13px}.install li{gap:15px}}
@media(prefers-reduced-motion:reduce){.download,.pill{transition:none}}
/* The chat demo (demo.js): the world in WebGL, the game's screen over it on a canvas, each GUI unit a whole number of screen pixels. Without WebGL, the sky and the ground in flat bands. */
.demo{position:relative;aspect-ratio:3/2;overflow:hidden;border-radius:11px;background:linear-gradient(#fbdfbd 0 9%,#fbe4c8 9% 18%,#fbe9d2 18% 26%,#fceedd 26% 33%,#fcf4ea 33% 38%,#fcfaf6 38% 43%,#c9cfa9 43% 47%,#b8c398 47% 53%,#a9b887 53% 64%,#d3b087 64%);box-shadow:0 0 0 var(--hp) var(--shade2)}.demo img{display:block;width:100%;height:auto}
.stage{position:absolute;inset:0;outline:none;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.stage:focus-visible{box-shadow:inset 0 0 0 3px #f59e0b}
.stage canvas{position:absolute;left:0;top:0;display:block}.stage.flat .world{visibility:hidden}
/* The field's real input, unseen over the words the canvas draws, for the keys and input methods to type into. */
.stage input{position:absolute;margin:0;padding:0;border:0;outline:none;background:none;color:transparent;caret-color:transparent;font-family:Outfit,"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;font-weight:500;letter-spacing:0;-webkit-user-select:text;user-select:text}.stage input::selection{background:transparent}
.said{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
