Spaces:
Runtime error
Runtime error
File size: 3,460 Bytes
e221c83 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
/* [๊ธฐ๋ณธ ์ค์ ] */
body {
background: #f0f2f5;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
font-family: "Spoqa Han Sans Neo", sans-serif;
}
/* --- ๋ฉ์ธ ์ปจํ
์ด๋ --- */
.book-container {
width: 800px;
height: 500px;
position: relative;
perspective: 1500px; /* 3D ์๊ทผ๊ฐ */
background-color: #fff; /* ํผ ๋ฐฐ๊ฒฝ์ */
border-radius: 20px;
box-shadow: 0 14px 28px rgba(0,0,0,0.15), 0 10px 10px rgba(0,0,0,0.12);
overflow: hidden; /* ๋ฅ๊ทผ ๋ชจ์๋ฆฌ ๋ฐ์ผ๋ก ๋๊ฐ๋ ๊ฒ ๋ฐฉ์ง */
}
/* [๋ ์ด์ด 1] ๋ฐ๋ฅ์ ๊น๋ฆฐ ํผ๋ค */
.layer-base {
width: 100%;
height: 100%;
display: flex; /* ์ข์ฐ ๋ฐฐ์น */
position: absolute;
top: 0;
left: 0;
z-index: 1;
}
.base-box {
width: 50%;
height: 100%;
padding: 40px;
box-sizing: border-box;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
}
/* [๋ ์ด์ด 2] ์์ง์ด๋ ํ์ด์ง (Flipper) */
.layer-flipper {
width: 50%; /* ์ ์ฒด ๋๋น์ ์ ๋ฐ */
height: 100%;
position: absolute;
top: 0;
left: 50%; /* ์ค๋ฅธ์ชฝ ์ ๋ฐ์์ ์์ */
transform-origin: left center;
transform-style: preserve-3d;
transition: transform 0.8s cubic-bezier(0.645, 0.045, 0.355, 1.000); /* ๋ถ๋๋ฌ์ด ์ข
์ด ๋๊น ํจ๊ณผ */
z-index: 10;
}
/* ํ์ด์ง๊ฐ ๋์ด๊ฐ ์ํ (์ผ์ชฝ์ผ๋ก -180๋ ํ์ ) */
.layer-flipper.flipped {
transform: rotateY(-180deg);
}
/* --- ํ์ด์ง์ ์๋ฉด/๋ท๋ฉด ๋์์ธ --- */
.page-face {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
backface-visibility: hidden; /* ๋ท๋ฉด ์ ๋ณด์ด๊ฒ */
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
padding: 40px;
box-sizing: border-box;
/* ์๋ด ๋ฌธ๊ตฌ ๋ฐฐ๊ฒฝ (ํ๋์ ๊ทธ๋ผ๋ฐ์ด์
) */
background: linear-gradient(135deg, #6598e5, #5540a3);
color: white;
}
/* ์๋ฉด (ํ์ํฉ๋๋ค) - ๊ธฐ๋ณธ ์ํ */
.front-face {
z-index: 2;
transform: rotateY(0deg);
}
/* ๋ท๋ฉด (๋์์ค์
จ๊ตฐ์) - ๋ฏธ๋ฆฌ 180๋ ๋๋ ค๋์ */
.back-face {
z-index: 1;
transform: rotateY(180deg);
}
/* --- ๋ด๋ถ ์์ ์คํ์ผ (๋ฒํผ, ์
๋ ฅ์ฐฝ ๋ฑ) --- */
h2 { margin-bottom: 20px; font-size: 2rem; font-weight: 700; }
.input-group { width: 100%; margin-bottom: 15px; text-align: left; }
.input-group label { display: block; margin-bottom: 5px; font-size: 0.9rem; color: #666; }
.input-group input { width: 100%; padding: 12px; border: 1px solid #ddd; border-radius: 8px; background: #f4f4f4; box-sizing: border-box; }
/* ๋ก๊ทธ์ธ/๊ฐ์
์ก์
๋ฒํผ */
.action-btn {
width: 100%; padding: 12px; background-color: #5540a3; color: white;
border: none; border-radius: 8px; font-size: 1rem; font-weight: bold;
cursor: pointer; margin-top: 10px; transition: 0.3s;
}
.action-btn:hover { background-color: #443383; }
/* ์ ๋ น ๋ฒํผ (ํ์ด์ง ๋๊ธฐ๊ธฐ์ฉ) */
.ghost-btn {
background: transparent; border: 2px solid white; color: white;
padding: 10px 30px; border-radius: 25px; font-weight: bold;
cursor: pointer; margin-top: 20px; transition: 0.2s;
}
.ghost-btn:hover { background: white; color: #5540a3; }
.content-wrapper p { font-size: 1.1rem; margin-bottom: 20px; line-height: 1.5; } |