diff --git a/app/static/css/style.css b/app/static/css/style.css index 48c1f43..7e69db5 100755 --- a/app/static/css/style.css +++ b/app/static/css/style.css @@ -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; diff --git a/app/templates/base.html b/app/templates/base.html index 85463cd..c1f0629 100755 --- a/app/templates/base.html +++ b/app/templates/base.html @@ -8,7 +8,7 @@ - + {% block head %}{% endblock %} diff --git a/app/templates/index.html b/app/templates/index.html index 04215cb..31bb7d1 100755 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -55,8 +55,14 @@ - -
+ +
+ + +
+ + +

Hogwarts-Schule für Hexerei und Zauberei

@@ -65,8 +71,8 @@
- -
+ +
@@ -183,5 +189,5 @@ {% endblock %} {% block scripts %} - + {% endblock %}