Enhance: Authentic seamless 4-flap closed envelope with 100% hidden interior letter
This commit is contained in:
+66
-32
@@ -302,11 +302,14 @@ body {
|
||||
padding: 16px 20px;
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35);
|
||||
z-index: 2;
|
||||
/* In closed state: 100% completely hidden, invisible, non-rendered */
|
||||
visibility: hidden;
|
||||
opacity: 0;
|
||||
transform: translateY(40px) scale(0.92);
|
||||
transform: translateY(50px) scale(0.92);
|
||||
pointer-events: none;
|
||||
transition: transform 0.9s cubic-bezier(0.2, 0.85, 0.25, 1) 0.35s,
|
||||
opacity 0.6s ease 0.35s,
|
||||
visibility 0.6s ease 0.35s,
|
||||
box-shadow 0.8s ease;
|
||||
overflow-y: auto;
|
||||
text-align: center;
|
||||
@@ -325,25 +328,54 @@ body {
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
/* Front Pocket of envelope (covers the lower portion of the letter) */
|
||||
.envelope-front-pocket {
|
||||
/* =========================================
|
||||
FOUR-FLAP REALISTIC CLOSED ENVELOPE SYSTEM
|
||||
Flaps: Left, Right, Bottom, and Top Flap
|
||||
========================================= */
|
||||
.envelope-flap {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
border-radius: 6px;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
/* Left Triangular Flap */
|
||||
.envelope-flap.flap-left {
|
||||
background-color: #ebdcb9;
|
||||
background-image:
|
||||
radial-gradient(ellipse at 50% 65%, rgba(255, 255, 255, 0.25) 0%, rgba(130, 95, 45, 0.2) 100%),
|
||||
radial-gradient(ellipse at 0% 50%, rgba(255, 255, 255, 0.22) 0%, rgba(130, 95, 45, 0.22) 100%),
|
||||
url('/static/img/parchment_texture.jpg');
|
||||
background-size: cover;
|
||||
clip-path: polygon(0 16%, 50% 50%, 100% 16%, 100% 100%, 0 100%);
|
||||
clip-path: polygon(0 0, 50% 50%, 0 100%);
|
||||
z-index: 3;
|
||||
filter: drop-shadow(2px 0 4px rgba(60, 40, 15, 0.25));
|
||||
}
|
||||
|
||||
/* Right Triangular Flap */
|
||||
.envelope-flap.flap-right {
|
||||
background-color: #ebdcb9;
|
||||
background-image:
|
||||
radial-gradient(ellipse at 100% 50%, rgba(255, 255, 255, 0.22) 0%, rgba(130, 95, 45, 0.22) 100%),
|
||||
url('/static/img/parchment_texture.jpg');
|
||||
background-size: cover;
|
||||
clip-path: polygon(100% 0, 50% 50%, 100% 100%);
|
||||
z-index: 3;
|
||||
filter: drop-shadow(-2px 0 4px rgba(60, 40, 15, 0.25));
|
||||
}
|
||||
|
||||
/* Bottom Flap (Folds up from bottom, overlaps left/right flaps, holds the address) */
|
||||
.envelope-flap.flap-bottom {
|
||||
background-color: #dfcd9f;
|
||||
background-image:
|
||||
radial-gradient(ellipse at 50% 80%, rgba(255, 255, 255, 0.28) 0%, rgba(130, 95, 45, 0.25) 100%),
|
||||
url('/static/img/parchment_texture.jpg');
|
||||
background-size: cover;
|
||||
clip-path: polygon(0 100%, 50% 48%, 100% 100%);
|
||||
z-index: 4;
|
||||
border: 2px solid #8e6c43;
|
||||
filter: drop-shadow(0 -3px 6px rgba(60, 40, 15, 0.3));
|
||||
filter: drop-shadow(0 -4px 6px rgba(50, 35, 10, 0.35));
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
justify-content: center;
|
||||
padding-bottom: 22px;
|
||||
pointer-events: none;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.envelope-sketch-border {
|
||||
@@ -357,7 +389,7 @@ body {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
/* Handwritten Address in Emerald Ink on Envelope Front */
|
||||
/* Handwritten Address in Emerald Ink on Envelope Bottom Flap */
|
||||
.envelope-address-block {
|
||||
position: relative;
|
||||
z-index: 5;
|
||||
@@ -366,61 +398,62 @@ body {
|
||||
color: #0d3820; /* Authentic Hogwarts Emerald Ink */
|
||||
padding: 0 15px;
|
||||
text-shadow: 0 0 1px rgba(13, 56, 32, 0.35);
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.addr-school {
|
||||
font-size: clamp(0.92rem, 3.2vw, 1.15rem);
|
||||
font-size: clamp(0.85rem, 2.9vw, 1.08rem);
|
||||
font-weight: 700;
|
||||
color: #082816;
|
||||
margin-bottom: 2px;
|
||||
margin-bottom: 1px;
|
||||
}
|
||||
|
||||
.addr-recipient {
|
||||
font-size: clamp(1.15rem, 3.8vw, 1.4rem);
|
||||
font-size: clamp(1.05rem, 3.4vw, 1.28rem);
|
||||
font-weight: 700;
|
||||
color: #0b3a20;
|
||||
margin-bottom: 2px;
|
||||
margin-bottom: 1px;
|
||||
}
|
||||
|
||||
.addr-location {
|
||||
font-size: clamp(0.85rem, 2.8vw, 1.02rem);
|
||||
font-size: clamp(0.8rem, 2.5vw, 0.96rem);
|
||||
font-style: italic;
|
||||
color: #1e4530;
|
||||
}
|
||||
|
||||
/* Top Triangular Flap (folds down over the pocket) */
|
||||
.envelope-closing-flap {
|
||||
/* Top Closing Flap (Folds down from top, overlaps all flaps, sealed by wax seal) */
|
||||
.envelope-closing-flap.flap-top {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #dfcd9f;
|
||||
background-color: #e5d4a6;
|
||||
background-image:
|
||||
radial-gradient(ellipse at 50% 25%, rgba(255, 255, 255, 0.3) 0%, rgba(130, 95, 45, 0.25) 100%),
|
||||
radial-gradient(ellipse at 50% 20%, rgba(255, 255, 255, 0.35) 0%, rgba(130, 95, 45, 0.25) 100%),
|
||||
url('/static/img/parchment_texture.jpg');
|
||||
background-size: cover;
|
||||
clip-path: polygon(0 0, 100% 0, 50% 57%);
|
||||
clip-path: polygon(0 0, 100% 0, 50% 54%);
|
||||
transform-origin: top center;
|
||||
transform-style: preserve-3d;
|
||||
transition: transform 0.75s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
z-index: 6;
|
||||
border-top: 2px solid #8e6c43;
|
||||
filter: drop-shadow(0 5px 8px rgba(50, 35, 10, 0.5));
|
||||
filter: drop-shadow(0 6px 9px rgba(45, 30, 10, 0.55));
|
||||
}
|
||||
|
||||
.flap-sketch-line {
|
||||
position: absolute;
|
||||
inset: 4px;
|
||||
clip-path: polygon(2% 2%, 98% 2%, 50% 54%);
|
||||
clip-path: polygon(2% 2%, 98% 2%, 50% 52%);
|
||||
border-top: 1px dashed rgba(120, 85, 45, 0.4);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
/* Sketched Wax Seal placed right over the flap tip */
|
||||
/* Sketched Wax Seal placed right over the flap intersection in the center */
|
||||
.sketched-wax-seal {
|
||||
position: absolute;
|
||||
top: 55%;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%) rotate(-3deg);
|
||||
width: 74px;
|
||||
@@ -430,8 +463,8 @@ body {
|
||||
z-index: 7;
|
||||
transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.3s ease, opacity 0.4s ease;
|
||||
box-shadow:
|
||||
0 8px 20px rgba(0, 0, 0, 0.7),
|
||||
0 2px 5px rgba(0, 0, 0, 0.45);
|
||||
0 8px 22px rgba(0, 0, 0, 0.75),
|
||||
0 2px 6px rgba(0, 0, 0, 0.45);
|
||||
}
|
||||
|
||||
.sketched-wax-seal:hover {
|
||||
@@ -480,13 +513,14 @@ body {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.envelope-opened .envelope-closing-flap {
|
||||
.envelope-opened .envelope-closing-flap.flap-top {
|
||||
transform: rotateX(180deg);
|
||||
z-index: 1;
|
||||
filter: drop-shadow(0 -4px 6px rgba(50, 35, 10, 0.4));
|
||||
}
|
||||
|
||||
.envelope-opened .letter-sheet {
|
||||
visibility: visible;
|
||||
opacity: 1;
|
||||
pointer-events: auto;
|
||||
transform: translateY(-145px) scale(1.02);
|
||||
@@ -738,7 +772,7 @@ body {
|
||||
.sketched-wax-seal {
|
||||
width: 62px;
|
||||
height: 62px;
|
||||
top: 55%;
|
||||
top: 50%;
|
||||
}
|
||||
.letter-sheet {
|
||||
top: 10px;
|
||||
@@ -756,8 +790,8 @@ body {
|
||||
line-height: 1.42;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
.envelope-front-pocket {
|
||||
padding-bottom: 14px;
|
||||
.envelope-flap.flap-bottom {
|
||||
padding-bottom: 12px;
|
||||
}
|
||||
.btn-launch-quiz {
|
||||
padding: 12px 20px;
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Caveat:wght@500;700&family=Marck+Script&family=MedievalSharp&display=swap" rel="stylesheet">
|
||||
<link rel="stylesheet" href="/static/css/style.css?v=2.6">
|
||||
<link rel="stylesheet" href="/static/css/style.css?v=2.7">
|
||||
{% block head %}{% endblock %}
|
||||
</head>
|
||||
<body>
|
||||
|
||||
@@ -55,8 +55,14 @@
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<!-- Vordere Umschlagtasche mit handschriftlicher Smaragd-Anschrift -->
|
||||
<div class="envelope-front-pocket">
|
||||
<!-- Linke Klappe des Umschlags -->
|
||||
<div class="envelope-flap flap-left"></div>
|
||||
|
||||
<!-- Rechte Klappe des Umschlags -->
|
||||
<div class="envelope-flap flap-right"></div>
|
||||
|
||||
<!-- Untere Klappe des Umschlags mit handschriftlicher Smaragd-Anschrift -->
|
||||
<div class="envelope-flap flap-bottom">
|
||||
<div class="envelope-sketch-border"></div>
|
||||
<div class="envelope-address-block">
|
||||
<p class="addr-line addr-school" id="envelopeLetter">Hogwarts-Schule für Hexerei und Zauberei</p>
|
||||
@@ -65,8 +71,8 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Obere Klappe des Umschlags (überdeckt die Tasche und wird vom Siegel gehalten) -->
|
||||
<div class="envelope-closing-flap">
|
||||
<!-- Obere Klappe des Umschlags (überdeckt alle Falten und wird vom Siegel gehalten) -->
|
||||
<div class="envelope-closing-flap flap-top" id="envelopeFlap">
|
||||
<div class="flap-sketch-line"></div>
|
||||
</div>
|
||||
|
||||
@@ -183,5 +189,5 @@
|
||||
{% endblock %}
|
||||
|
||||
{% block scripts %}
|
||||
<script src="/static/js/quiz.js?v=2.6"></script>
|
||||
<script src="/static/js/quiz.js?v=2.7"></script>
|
||||
{% endblock %}
|
||||
|
||||
Reference in New Issue
Block a user